Version 2.10.0-82.0.dev

Merge commit '3a1f732c0fd25e9baf7f665f7099cf009f4f7d6a' into 'dev'
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 386dd91..bca2267 100644
--- a/pkg/_fe_analyzer_shared/lib/src/parser/forwarding_listener.dart
+++ b/pkg/_fe_analyzer_shared/lib/src/parser/forwarding_listener.dart
@@ -141,6 +141,11 @@
   }
 
   @override
+  void beginUncategorizedTopLevelDeclaration(Token token) {
+    listener?.beginUncategorizedTopLevelDeclaration(token);
+  }
+
+  @override
   void beginExtensionDeclarationPrelude(Token extensionKeyword) {
     listener?.beginExtensionDeclarationPrelude(extensionKeyword);
   }
@@ -387,8 +392,8 @@
   }
 
   @override
-  void beginThenControlFlow(Token token) {
-    listener?.beginThenControlFlow(token);
+  void handleThenControlFlow(Token token) {
+    listener?.handleThenControlFlow(token);
   }
 
   @override
@@ -480,6 +485,11 @@
   }
 
   @override
+  void handleEndingBinaryExpression(Token token) {
+    listener?.handleEndingBinaryExpression(token);
+  }
+
+  @override
   void endBlock(
       int count, Token beginToken, Token endToken, BlockKind blockKind) {
     listener?.endBlock(count, beginToken, endToken, blockKind);
@@ -995,8 +1005,13 @@
   }
 
   @override
-  void endTopLevelDeclaration(Token token) {
-    listener?.endTopLevelDeclaration(token);
+  void endTopLevelDeclaration(Token nextToken) {
+    listener?.endTopLevelDeclaration(nextToken);
+  }
+
+  @override
+  void beginFields(Token lastConsumed) {
+    listener?.beginFields(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 0d57f76..c898b58 100644
--- a/pkg/_fe_analyzer_shared/lib/src/parser/listener.dart
+++ b/pkg/_fe_analyzer_shared/lib/src/parser/listener.dart
@@ -55,22 +55,22 @@
     logEvent("AsyncModifier");
   }
 
+  /// Ended by either [endAwaitExpression] or [endInvalidAwaitExpression].
   void beginAwaitExpression(Token token) {}
 
+  /// One of the two possible corresponding end events for
+  /// [beginAwaitExpression].
   void endAwaitExpression(Token beginToken, Token endToken) {
     logEvent("AwaitExpression");
   }
 
+  /// One of the two possible corresponding end events for
+  /// [beginAwaitExpression].
   void endInvalidAwaitExpression(
       Token beginToken, Token endToken, MessageCode errorCode) {
     logEvent("InvalidAwaitExpression");
   }
 
-  void endInvalidYieldStatement(Token beginToken, Token starToken,
-      Token endToken, MessageCode errorCode) {
-    logEvent("InvalidYieldStatement");
-  }
-
   void beginBlock(Token token, BlockKind blockKind) {}
 
   void endBlock(
@@ -111,8 +111,11 @@
 
   /// Called before parsing a class or named mixin application.
   ///
-  /// At this point only the `class` keyword have been seen, so we know a
-  /// declaration is coming but not its name or type parameter declarations.
+  /// At this point only the `class` or `mixin` keyword have been seen,
+  /// so we know a declaration is coming but not its name or type
+  /// parameter declarations.
+  ///
+  /// Ended by [endTopLevelDeclaration].
   void beginClassOrNamedMixinApplicationPrelude(Token token) {}
 
   /// Handle the beginning of a class declaration.
@@ -208,11 +211,18 @@
     logEvent("MixinDeclaration");
   }
 
+  /// Begins a not-further-categorized top-level declaration.
+  ///
+  /// Ended by [endTopLevelDeclaration].
+  void beginUncategorizedTopLevelDeclaration(Token token) {}
+
   /// Handle the beginning of an extension methods declaration.  Substructures:
   /// - metadata
   ///
   /// At this point only the `extension` keyword have been seen, so we know a
   /// declaration is coming but not its name or type parameter declarations.
+  ///
+  /// Ended by [endTopLevelDeclaration].
   void beginExtensionDeclarationPrelude(Token extensionKeyword) {}
 
   /// Handle the beginning of an extension methods declaration.  Substructures:
@@ -315,6 +325,8 @@
     logEvent("ExpressionStatement");
   }
 
+  /// Note that this is ended by [endClassFactoryMethod],
+  /// [endMixinFactoryMethod] or [endExtensionFactoryMethod].
   void beginFactoryMethod(
       Token lastConsumed, Token externalToken, Token constToken) {}
 
@@ -366,7 +378,7 @@
   /// - Type
   /// - Variable declarations (count times)
   ///
-  /// Doesn't have a corresponding begin event, use [beginMember] instead.
+  /// Started by [beginFields].
   void endClassFields(
       Token abstractToken,
       Token externalToken,
@@ -386,7 +398,7 @@
   /// - Type
   /// - Variable declarations (count times)
   ///
-  /// Doesn't have a corresponding begin event, use [beginMember] instead.
+  /// Started by [beginFields].
   void endMixinFields(
       Token abstractToken,
       Token externalToken,
@@ -408,7 +420,7 @@
   /// - Type
   /// - Variable declarations (count times)
   ///
-  /// Doesn't have a corresponding begin event, use [beginMember] instead.
+  /// Started by [beginFields].
   void endExtensionFields(
       Token abstractToken,
       Token externalToken,
@@ -829,6 +841,10 @@
     logEvent("StringJuxtaposition");
   }
 
+  /// Called for class-like members (class, mixin, extension), but each member
+  /// should also have a more specific begin/end pair, e.g.
+  /// [beginFactoryMethod]/[endClassFactoryMethod]/[endMixinFactoryMethod]/
+  /// [endExtensionFactoryMethod].
   void beginMember() {}
 
   /// Handle an invalid member declaration. Substructures:
@@ -837,7 +853,10 @@
     logEvent("InvalidMember");
   }
 
-  /// This event is added for convenience. Normally, one should override
+  /// This event is added for convenience to the listener.
+  /// Members will actually be begin/end'ed by more specific
+  /// events as well.
+  /// Normally listeners should probably override
   /// [endClassFields], [endMixinFields], [endExtensionFields],
   /// [endClassMethod], [endMixinMethod], [endExtensionMethod],
   /// [endClassConstructor], [endMixinConstructor],
@@ -846,8 +865,11 @@
     logEvent("Member");
   }
 
-  /// Handle the beginning of a method declaration.  Substructures:
+  /// Handle the beginning of a class-like method declaration.  Substructures:
   /// - metadata
+  /// Note that this is ended with [endClassConstructor], [endClassMethod],
+  /// [endExtensionConstructor], [endExtensionMethod], [endMixinConstructor] or
+  /// [endMixinMethod].
   void beginMethod(Token externalToken, Token staticToken, Token covariantToken,
       Token varFinalOrConst, Token getOrSet, Token name) {}
 
@@ -1075,11 +1097,21 @@
     logEvent("RethrowStatement");
   }
 
-  /// This event is added for convenience. Normally, one should use
+  /// This event is added for convenience for the listener.
+  /// All top-level declarations will actually be begin/end'ed by more specific
+  /// events as well, e.g. [beginClassDeclaration]/[endClassDeclaration],
+  /// [beginEnum]/[endEnum] etc.
+  ///
+  /// Normally listeners should probably override
   /// [endClassDeclaration], [endNamedMixinApplication], [endEnum],
   /// [endFunctionTypeAlias], [endLibraryName], [endImport], [endExport],
-  /// [endPart], [endPartOf], [endTopLevelFields], or [endTopLevelMethod].
-  void endTopLevelDeclaration(Token token) {
+  /// [endPart], [endPartOf], [endTopLevelFields], or [endTopLevelMethod]
+  /// instead.
+  ///
+  /// Started by one of [beginExtensionDeclarationPrelude],
+  /// [beginClassOrNamedMixinApplicationPrelude], [beginTopLevelMember] or
+  /// [beginUncategorizedTopLevelDeclaration].
+  void endTopLevelDeclaration(Token nextToken) {
     logEvent("TopLevelDeclaration");
   }
 
@@ -1095,18 +1127,24 @@
   }
 
   /// Marks the beginning of a top level field or method declaration.
-  /// Doesn't have a corresponding end event.
-  /// See [endTopLevelFields] and [endTopLevelMethod].
+  /// See also [endTopLevelFields] and [endTopLevelMethod].
+  ///
+  /// Ended by [endTopLevelDeclaration].
   void beginTopLevelMember(Token token) {}
 
+  /// Marks the beginning of a fields declaration.
+  /// Note that this is ended with [endTopLevelFields], [endClassFields],
+  /// [endMixinFields] or [endExtensionFields].
+  void beginFields(Token lastConsumed) {}
+
   /// Handle the end of a top level variable declaration.  Substructures:
   /// - Metadata
   /// - Type
   /// - Repeated [count] times:
   ///   - Variable name (identifier)
   ///   - Field initializer
-  /// Doesn't have a corresponding begin event.
-  /// Use [beginTopLevelMember] instead.
+  ///
+  /// Started by [beginFields].
   void endTopLevelFields(
       Token externalToken,
       Token staticToken,
@@ -1291,6 +1329,12 @@
     logEvent("BinaryExpression");
   }
 
+  /// Called for `.`, `?.` and `..`.
+  void handleEndingBinaryExpression(Token token) {
+    // TODO(jensj): push implementation into subclasses
+    endBinaryExpression(token);
+  }
+
   /// Called when the parser encounters a `?` operator and begins parsing a
   /// conditional expression.
   void beginConditionalExpression(Token question) {}
@@ -1311,24 +1355,30 @@
   }
 
   /// Called before parsing a "for" control flow list, set, or map entry.
+  /// Ended by either [endForControlFlow] or [endForInControlFlow].
   void beginForControlFlow(Token awaitToken, Token forToken) {}
 
   /// Called after parsing a "for" control flow list, set, or map entry.
+  /// One of the two possible corresponding end events for
+  /// [beginForControlFlow].
   void endForControlFlow(Token token) {
     logEvent('endForControlFlow');
   }
 
   /// Called after parsing a "for-in" control flow list, set, or map entry.
+  /// One of the two possible corresponding end events for
+  /// [beginForControlFlow].
   void endForInControlFlow(Token token) {
     logEvent('endForInControlFlow');
   }
 
   /// Called before parsing an `if` control flow list, set, or map entry.
+  /// Ended by either [endIfControlFlow] or [endIfElseControlFlow].
   void beginIfControlFlow(Token ifToken) {}
 
   /// Called before parsing the `then` portion of an `if` control flow list,
   /// set, or map entry.
-  void beginThenControlFlow(Token token) {}
+  void handleThenControlFlow(Token token) {}
 
   /// Called before parsing the `else` portion of an `if` control flow list,
   /// set, or map entry.
@@ -1340,6 +1390,8 @@
   /// Substructures:
   /// - if conditional expression
   /// - expression
+  /// One of the two possible corresponding end events for
+  /// [beginIfControlFlow].
   void endIfControlFlow(Token token) {
     logEvent("endIfControlFlow");
   }
@@ -1349,6 +1401,8 @@
   /// - if conditional expression
   /// - then expression
   /// - else expression
+  /// One of the two possible corresponding end events for
+  /// [beginIfControlFlow].
   void endIfElseControlFlow(Token token) {
     logEvent("endIfElseControlFlow");
   }
@@ -1589,12 +1643,22 @@
     logEvent("handleVoidKeywordWithTypeArguments");
   }
 
+  /// Ended by either [endYieldStatement] or [endInvalidYieldStatement].
   void beginYieldStatement(Token token) {}
 
+  /// One of the two possible corresponding end events for
+  /// [beginYieldStatement].
   void endYieldStatement(Token yieldToken, Token starToken, Token endToken) {
     logEvent("YieldStatement");
   }
 
+  /// One of the two possible corresponding end events for
+  /// [beginYieldStatement].
+  void endInvalidYieldStatement(Token beginToken, Token starToken,
+      Token endToken, MessageCode errorCode) {
+    logEvent("InvalidYieldStatement");
+  }
+
   /// The parser noticed a syntax error, but was able to recover from it. The
   /// error should be reported using the [message], and the code between the
   /// beginning of the [startToken] and the end of the [endToken] should be
diff --git a/pkg/_fe_analyzer_shared/lib/src/parser/literal_entry_info_impl.dart b/pkg/_fe_analyzer_shared/lib/src/parser/literal_entry_info_impl.dart
index 60d378f..9e559f1 100644
--- a/pkg/_fe_analyzer_shared/lib/src/parser/literal_entry_info_impl.dart
+++ b/pkg/_fe_analyzer_shared/lib/src/parser/literal_entry_info_impl.dart
@@ -145,7 +145,7 @@
     assert(optional('if', ifToken));
     parser.listener.beginIfControlFlow(ifToken);
     Token result = parser.ensureParenthesizedCondition(ifToken);
-    parser.listener.beginThenControlFlow(result);
+    parser.listener.handleThenControlFlow(result);
     return result;
   }
 
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 4aabc5b..0b5c365 100644
--- a/pkg/_fe_analyzer_shared/lib/src/parser/parser_impl.dart
+++ b/pkg/_fe_analyzer_shared/lib/src/parser/parser_impl.dart
@@ -637,6 +637,7 @@
   /// ```
   Token parseLibraryName(Token libraryKeyword) {
     assert(optional('library', libraryKeyword));
+    listener.beginUncategorizedTopLevelDeclaration(libraryKeyword);
     listener.beginLibraryName(libraryKeyword);
     Token token = parseQualified(libraryKeyword, IdentifierContext.libraryName,
         IdentifierContext.libraryNameContinuation);
@@ -677,6 +678,7 @@
   /// ```
   Token parseImport(Token importKeyword) {
     assert(optional('import', importKeyword));
+    listener.beginUncategorizedTopLevelDeclaration(importKeyword);
     listener.beginImport(importKeyword);
     Token token = ensureLiteralString(importKeyword);
     Token uri = token;
@@ -875,6 +877,7 @@
   /// ```
   Token parseExport(Token exportKeyword) {
     assert(optional('export', exportKeyword));
+    listener.beginUncategorizedTopLevelDeclaration(exportKeyword);
     listener.beginExport(exportKeyword);
     Token token = ensureLiteralString(exportKeyword);
     token = parseConditionalUriStar(token);
@@ -974,6 +977,7 @@
 
   Token parsePartOrPartOf(Token partKeyword, DirectiveContext directiveState) {
     assert(optional('part', partKeyword));
+    listener.beginUncategorizedTopLevelDeclaration(partKeyword);
     if (optional('of', partKeyword.next)) {
       directiveState?.checkPartOf(this, partKeyword);
       return parsePartOf(partKeyword);
@@ -1098,6 +1102,7 @@
   /// ```
   Token parseTypedef(Token typedefKeyword) {
     assert(optional('typedef', typedefKeyword));
+    listener.beginUncategorizedTopLevelDeclaration(typedefKeyword);
     listener.beginFunctionTypeAlias(typedefKeyword);
     TypeInfo typeInfo = computeType(typedefKeyword, /* required = */ false);
     Token token = typeInfo.skipType(typedefKeyword);
@@ -1733,6 +1738,7 @@
   /// ```
   Token parseEnum(Token enumKeyword) {
     assert(optional('enum', enumKeyword));
+    listener.beginUncategorizedTopLevelDeclaration(enumKeyword);
     listener.beginEnum(enumKeyword);
     Token token =
         ensureIdentifier(enumKeyword, IdentifierContext.enumDeclaration);
@@ -2510,6 +2516,8 @@
       DeclarationKind kind,
       String enclosingDeclarationName,
       bool nameIsRecovered) {
+    listener.beginFields(beforeStart);
+
     // Covariant affects only the setter and final fields do not have a setter,
     // unless it's a late field (dartbug.com/40805).
     // Field that are covariant late final with initializers are checked further
@@ -4598,7 +4606,7 @@
             // [parsePrimary] instead.
             token = parsePrimary(
                 token.next, IdentifierContext.expressionContinuation);
-            listener.endBinaryExpression(operator);
+            listener.handleEndingBinaryExpression(operator);
 
             Token bangToken = token;
             if (optional('!', token.next)) {
@@ -4703,7 +4711,7 @@
           token, noTypeParamOrArg, /* checkedNullAware = */ false);
     } else {
       token = parseSend(token, IdentifierContext.expressionContinuation);
-      listener.endBinaryExpression(cascadeOperator);
+      listener.handleEndingBinaryExpression(cascadeOperator);
     }
     Token next = token.next;
     Token mark;
@@ -4713,7 +4721,7 @@
         Token period = next;
         token = parseSend(next, IdentifierContext.expressionContinuation);
         next = token.next;
-        listener.endBinaryExpression(period);
+        listener.handleEndingBinaryExpression(period);
       } else if (optional('!', next)) {
         listener.handleNonNullAssertExpression(next);
         token = next;
@@ -7208,6 +7216,7 @@
         token = next.endGroup;
       }
     }
+    listener.endMember();
     return token;
   }
 
@@ -7230,6 +7239,7 @@
         token = next.endGroup;
       }
     }
+    listener.endMember();
     return token;
   }
 
@@ -7240,6 +7250,7 @@
     // TODO(brianwilkerson): If the declaration appears to be a valid typedef
     // then skip the entire declaration so that we generate a single error
     // (above) rather than many unhelpful errors.
+    listener.endMember();
     return token;
   }
 
diff --git a/pkg/_fe_analyzer_shared/lib/src/parser/stack_listener.dart b/pkg/_fe_analyzer_shared/lib/src/parser/stack_listener.dart
index a29d6f0..e9d29da 100644
--- a/pkg/_fe_analyzer_shared/lib/src/parser/stack_listener.dart
+++ b/pkg/_fe_analyzer_shared/lib/src/parser/stack_listener.dart
@@ -294,9 +294,9 @@
   }
 
   @override
-  void endTopLevelDeclaration(Token token) {
+  void endTopLevelDeclaration(Token nextToken) {
     debugEvent("TopLevelDeclaration");
-    checkEmpty(token.charOffset);
+    checkEmpty(nextToken.charOffset);
   }
 
   @override
diff --git a/pkg/analyzer/test/generated/parser_fasta_listener.dart b/pkg/analyzer/test/generated/parser_fasta_listener.dart
index 130997a..4a88ce75 100644
--- a/pkg/analyzer/test/generated/parser_fasta_listener.dart
+++ b/pkg/analyzer/test/generated/parser_fasta_listener.dart
@@ -1154,7 +1154,8 @@
 
   @override
   void endTopLevelDeclaration(Token token) {
-    // There is no corresponding beginTopLevelDeclaration
+    // There is no corresponding beginTopLevelDeclaration.
+    // It is insteads started by another begin, see listener.
     //_expectBegin('TopLevelDeclaration');
     expectIn('CompilationUnit');
     super.endTopLevelDeclaration(token);
diff --git a/pkg/compiler/lib/src/kernel/dart2js_target.dart b/pkg/compiler/lib/src/kernel/dart2js_target.dart
index 891c462..f56563a 100644
--- a/pkg/compiler/lib/src/kernel/dart2js_target.dart
+++ b/pkg/compiler/lib/src/kernel/dart2js_target.dart
@@ -68,6 +68,9 @@
   @override
   bool get supportsLateFields => false;
 
+  @override
+  bool get useStaticFieldLowering => false;
+
   // TODO(johnniwinther,sigmund): Remove this when js-interop handles getter
   //  calls encoded with an explicit property get or disallows getter calls.
   @override
diff --git a/pkg/dev_compiler/lib/src/kernel/target.dart b/pkg/dev_compiler/lib/src/kernel/target.dart
index 33e19e8..8a54269 100644
--- a/pkg/dev_compiler/lib/src/kernel/target.dart
+++ b/pkg/dev_compiler/lib/src/kernel/target.dart
@@ -34,6 +34,9 @@
   @override
   bool get supportsLateFields => false;
 
+  @override
+  bool get useStaticFieldLowering => false;
+
   // TODO(johnniwinther,sigmund): Remove this when js-interop handles getter
   //  calls encoded with an explicit property get or disallows getter calls.
   @override
diff --git a/pkg/front_end/lib/src/base/command_line_options.dart b/pkg/front_end/lib/src/base/command_line_options.dart
index d8c5e33..f288ff5 100644
--- a/pkg/front_end/lib/src/base/command_line_options.dart
+++ b/pkg/front_end/lib/src/base/command_line_options.dart
@@ -9,6 +9,8 @@
   static const String nnbdWeakMode = "--nnbd-weak";
 
   static const String forceLateLowering = "--force-late-lowering";
+  static const String forceStaticFieldLowering =
+      "--force-static-field-lowering";
   static const String forceNoExplicitGetterCalls =
       "--force-no-explicit-getter-calls";
 
diff --git a/pkg/front_end/lib/src/fasta/builder/field_builder.dart b/pkg/front_end/lib/src/fasta/builder/field_builder.dart
index 59afedc..6dcd093 100644
--- a/pkg/front_end/lib/src/fasta/builder/field_builder.dart
+++ b/pkg/front_end/lib/src/fasta/builder/field_builder.dart
@@ -174,6 +174,33 @@
               isCovariant);
         }
       }
+    } else if (libraryBuilder.isNonNullableByDefault &&
+        libraryBuilder.loader.target.backendTarget.useStaticFieldLowering &&
+        (isStatic || isTopLevel) &&
+        hasInitializer) {
+      if (isFinal) {
+        _fieldEncoding = new LateFinalFieldWithInitializerEncoding(
+            name,
+            fileUri,
+            charOffset,
+            charEndOffset,
+            reference,
+            lateIsSetReferenceFrom,
+            getterReferenceFrom,
+            setterReferenceFrom,
+            isCovariant);
+      } else {
+        _fieldEncoding = new LateFieldWithInitializerEncoding(
+            name,
+            fileUri,
+            charOffset,
+            charEndOffset,
+            reference,
+            lateIsSetReferenceFrom,
+            getterReferenceFrom,
+            setterReferenceFrom,
+            isCovariant);
+      }
     } else {
       assert(lateIsSetReferenceFrom == null);
       assert(getterReferenceFrom == null);
diff --git a/pkg/front_end/lib/src/fasta/builder/type_alias_builder.dart b/pkg/front_end/lib/src/fasta/builder/type_alias_builder.dart
index 0e438d5..f6a2aeb 100644
--- a/pkg/front_end/lib/src/fasta/builder/type_alias_builder.dart
+++ b/pkg/front_end/lib/src/fasta/builder/type_alias_builder.dart
@@ -11,17 +11,9 @@
         InvalidType,
         Nullability,
         TypeParameter,
-        Typedef,
-        TypedefType,
-        VariableDeclaration,
-        getAsTypeArguments;
+        Typedef;
 
-import 'package:kernel/type_algebra.dart'
-    show
-        FreshTypeParameters,
-        getFreshTypeParameters,
-        substitute,
-        uniteNullabilities;
+import 'package:kernel/type_algebra.dart' show substitute, uniteNullabilities;
 
 import '../fasta_codes.dart'
     show
@@ -33,12 +25,7 @@
 
 import '../problems.dart' show unhandled;
 
-import '../source/source_library_builder.dart' show SourceLibraryBuilder;
-
 import 'class_builder.dart';
-import 'fixed_type_builder.dart';
-import 'formal_parameter_builder.dart';
-import 'function_type_builder.dart';
 import 'library_builder.dart';
 import 'metadata_builder.dart';
 import 'named_type_builder.dart';
@@ -47,27 +34,90 @@
 import 'type_declaration_builder.dart';
 import 'type_variable_builder.dart';
 
-class TypeAliasBuilder extends TypeDeclarationBuilderImpl {
-  final TypeBuilder type;
-
-  final List<TypeVariableBuilder> _typeVariables;
+abstract class TypeAliasBuilder implements TypeDeclarationBuilder {
+  TypeBuilder get type;
 
   /// The [Typedef] built by this builder.
-  final Typedef typedef;
+  Typedef get typedef;
 
   DartType thisType;
 
-  TypeAliasBuilder(List<MetadataBuilder> metadata, String name,
-      this._typeVariables, this.type, LibraryBuilder parent, int charOffset,
-      {Typedef typedef, Typedef referenceFrom})
-      : typedef = typedef ??
-            (new Typedef(name, null,
-                typeParameters: TypeVariableBuilder.typeParametersFromBuilders(
-                    _typeVariables),
-                fileUri: parent.library.fileUri,
-                reference: referenceFrom?.reference)
-              ..fileOffset = charOffset),
-        super(metadata, 0, name, parent, charOffset);
+  String get debugName;
+
+  LibraryBuilder get parent;
+
+  LibraryBuilder get library;
+
+  List<TypeVariableBuilder> get typeVariables;
+
+  int varianceAt(int index);
+
+  bool get fromDill => false;
+
+  DartType buildThisType();
+
+  /// [arguments] have already been built.
+  DartType buildTypesWithBuiltArguments(LibraryBuilder library,
+      Nullability nullability, List<DartType> arguments);
+
+  List<DartType> buildTypeArguments(
+      LibraryBuilder library, List<TypeBuilder> arguments,
+      [bool notInstanceContext]);
+
+  /// Returns `true` if this typedef is an alias of the `Null` type.
+  bool get isNullAlias;
+
+  @override
+  DartType buildType(LibraryBuilder library,
+      NullabilityBuilder nullabilityBuilder, List<TypeBuilder> arguments,
+      [bool notInstanceContext]);
+
+  /// Returns the [TypeDeclarationBuilder] for the type aliased by `this`,
+  /// based on the given [typeArguments]. It expands type aliases repeatedly
+  /// until it encounters a builder which is not a [TypeAliasBuilder].
+  ///
+  /// If [isInvocation] is false: In this case it is required that
+  /// `typeArguments.length == typeVariables.length`. The [typeArguments] are
+  /// threaded through the expansion if needed, and the resulting declaration
+  /// is returned.
+  ///
+  /// If [isInvocation] is true: In this case [typeArguments] are ignored, but
+  /// [invocationCharOffset] and [invocationFileUri] must be non-null. If `this`
+  /// type alias expands in one or more steps to a builder which is not a
+  /// [TypeAliasBuilder] nor a [TypeVariableBuilder] then that builder is
+  /// returned. If this type alias is cyclic or expands to an invalid type or
+  /// a type that does not have a declaration (say, a function type) then `this`
+  /// is returned (when the type was invalid: with `thisType` set to
+  /// `const InvalidType()`). If `this` type alias expands to a
+  /// [TypeVariableBuilder] then the type alias cannot be used in a constructor
+  /// invocation. Then an error is emitted and `this` is returned.
+  TypeDeclarationBuilder unaliasDeclaration(List<TypeBuilder> typeArguments,
+      {bool isInvocation = false,
+      int invocationCharOffset,
+      Uri invocationFileUri});
+
+  /// Compute type arguments passed to [ClassBuilder] from unaliasDeclaration.
+  /// This method does not check for cycles and may only be called if an
+  /// invocation of `this.unaliasDeclaration(typeArguments)` has returned a
+  /// [ClassBuilder].
+  ///
+  /// The parameter [typeArguments] would typically be obtained from a
+  /// [NamedTypeBuilder] whose `declaration` is `this`. It must be non-null.
+  ///
+  /// Returns `null` if an error occurred.
+  ///
+  /// The method substitutes through the chain of type aliases denoted by
+  /// [this], such that the returned [TypeBuilder]s are appropriate type
+  /// arguments for passing to the [ClassBuilder] which is the end of the
+  /// unaliasing chain.
+  List<TypeBuilder> unaliasTypeArguments(List<TypeBuilder> typeArguments);
+}
+
+abstract class TypeAliasBuilderImpl extends TypeDeclarationBuilderImpl
+    implements TypeAliasBuilder {
+  TypeAliasBuilderImpl(List<MetadataBuilder> metadata, String name,
+      LibraryBuilder parent, int charOffset)
+      : super(metadata, 0, name, parent, charOffset);
 
   String get debugName => "TypeAliasBuilder";
 
@@ -75,111 +125,6 @@
 
   LibraryBuilder get library => super.parent;
 
-  // TODO(CFE TEAM): Some of this is a temporary workaround.
-  List<TypeVariableBuilder> get typeVariables => _typeVariables;
-  int varianceAt(int index) => typeVariables[index].parameter.variance;
-  bool get fromDill => false;
-
-  Typedef build(SourceLibraryBuilder libraryBuilder) {
-    typedef.type ??= buildThisType();
-
-    TypeBuilder type = this.type;
-    if (type is FunctionTypeBuilder) {
-      List<TypeParameter> typeParameters =
-          new List<TypeParameter>(type.typeVariables?.length ?? 0);
-      for (int i = 0; i < typeParameters.length; ++i) {
-        TypeVariableBuilder typeVariable = type.typeVariables[i];
-        typeParameters[i] = typeVariable.parameter;
-      }
-      FreshTypeParameters freshTypeParameters =
-          getFreshTypeParameters(typeParameters);
-      typedef.typeParametersOfFunctionType
-          .addAll(freshTypeParameters.freshTypeParameters);
-
-      if (type.formals != null) {
-        for (FormalParameterBuilder formal in type.formals) {
-          VariableDeclaration parameter = formal.build(libraryBuilder, 0);
-          parameter.type = freshTypeParameters.substitute(parameter.type);
-          if (formal.isNamed) {
-            typedef.namedParameters.add(parameter);
-          } else {
-            typedef.positionalParameters.add(parameter);
-          }
-        }
-      }
-    } else if (type is NamedTypeBuilder || type is FixedTypeBuilder) {
-      // No error, but also no additional setup work.
-    } else if (type != null) {
-      unhandled("${type.fullNameForErrors}", "build", charOffset, fileUri);
-    }
-
-    return typedef;
-  }
-
-  TypedefType thisTypedefType(Typedef typedef, LibraryBuilder clientLibrary) {
-    // At this point the bounds of `typedef.typeParameters` may not be assigned
-    // yet, so [getAsTypeArguments] may crash trying to compute the nullability
-    // of the created types from the bounds.  To avoid that, we use "dynamic"
-    // for the bound of all boundless variables and add them to the list for
-    // being recomputed later, when the bounds are assigned.
-    List<DartType> bounds =
-        new List<DartType>.filled(typedef.typeParameters.length, null);
-    for (int i = 0; i < bounds.length; ++i) {
-      bounds[i] = typedef.typeParameters[i].bound;
-      if (bounds[i] == null) {
-        typedef.typeParameters[i].bound = const DynamicType();
-      }
-    }
-    List<DartType> asTypeArguments =
-        getAsTypeArguments(typedef.typeParameters, clientLibrary.library);
-    TypedefType result =
-        new TypedefType(typedef, clientLibrary.nonNullable, asTypeArguments);
-    for (int i = 0; i < bounds.length; ++i) {
-      if (bounds[i] == null) {
-        // If the bound is not assigned yet, put the corresponding
-        // type-parameter type into the list for the nullability re-computation.
-        // At this point, [parent] should be a [SourceLibraryBuilder] because
-        // otherwise it's a compiled library loaded from a dill file, and the
-        // bounds should have been assigned.
-        SourceLibraryBuilder parentLibrary = parent;
-        parentLibrary.pendingNullabilities.add(asTypeArguments[i]);
-      }
-    }
-    return result;
-  }
-
-  DartType buildThisType() {
-    if (thisType != null) {
-      if (identical(thisType, cyclicTypeAliasMarker)) {
-        library.addProblem(templateCyclicTypedef.withArguments(name),
-            charOffset, noLength, fileUri);
-        return const InvalidType();
-      }
-      return thisType;
-    }
-    // It is a compile-time error for an alias (typedef) to refer to itself. We
-    // detect cycles by detecting recursive calls to this method using an
-    // instance of InvalidType that isn't identical to `const InvalidType()`.
-    thisType = cyclicTypeAliasMarker;
-    TypeBuilder type = this.type;
-    if (type != null) {
-      DartType builtType =
-          type.build(library, thisTypedefType(typedef, library));
-      if (builtType != null) {
-        if (typeVariables != null) {
-          for (TypeVariableBuilder tv in typeVariables) {
-            // Follow bound in order to find all cycles
-            tv.bound?.build(library);
-          }
-        }
-        return thisType = builtType;
-      } else {
-        return thisType = const InvalidType();
-      }
-    }
-    return thisType = const InvalidType();
-  }
-
   /// [arguments] have already been built.
   DartType buildTypesWithBuiltArguments(LibraryBuilder library,
       Nullability nullability, List<DartType> arguments) {
@@ -196,56 +141,6 @@
     return substitute(result, substitution);
   }
 
-  List<DartType> buildTypeArguments(
-      LibraryBuilder library, List<TypeBuilder> arguments,
-      [bool notInstanceContext]) {
-    if (arguments == null && typeVariables == null) {
-      return <DartType>[];
-    }
-
-    if (arguments == null && typeVariables != null) {
-      List<DartType> result =
-          new List<DartType>.filled(typeVariables.length, null, growable: true);
-      for (int i = 0; i < result.length; ++i) {
-        result[i] = typeVariables[i].defaultType.build(library);
-      }
-      if (library is SourceLibraryBuilder) {
-        library.inferredTypes.addAll(result);
-      }
-      return result;
-    }
-
-    if (arguments != null && arguments.length != typeVariablesCount) {
-      // That should be caught and reported as a compile-time error earlier.
-      return unhandled(
-          templateTypeArgumentMismatch
-              .withArguments(typeVariablesCount)
-              .message,
-          "buildTypeArguments",
-          -1,
-          null);
-    }
-
-    // arguments.length == typeVariables.length
-    List<DartType> result =
-        new List<DartType>.filled(arguments.length, null, growable: true);
-    for (int i = 0; i < result.length; ++i) {
-      result[i] = arguments[i].build(library);
-    }
-    return result;
-  }
-
-  /// If [arguments] are null, the default types for the variables are used.
-  @override
-  int get typeVariablesCount => typeVariables?.length ?? 0;
-
-  /// Returns `true` if this typedef is an alias of the `Null` type.
-  bool get isNullAlias {
-    TypeDeclarationBuilder typeDeclarationBuilder = type.declaration;
-    return typeDeclarationBuilder is ClassBuilder &&
-        typeDeclarationBuilder.isNullClass;
-  }
-
   @override
   DartType buildType(LibraryBuilder library,
       NullabilityBuilder nullabilityBuilder, List<TypeBuilder> arguments,
diff --git a/pkg/front_end/lib/src/fasta/dill/dill_type_alias_builder.dart b/pkg/front_end/lib/src/fasta/dill/dill_type_alias_builder.dart
index 5720eab..2bbe28c 100644
--- a/pkg/front_end/lib/src/fasta/dill/dill_type_alias_builder.dart
+++ b/pkg/front_end/lib/src/fasta/dill/dill_type_alias_builder.dart
@@ -18,13 +18,16 @@
 import 'dill_class_builder.dart' show computeTypeVariableBuilders;
 import 'dill_library_builder.dart' show DillLibraryBuilder;
 
-class DillTypeAliasBuilder extends TypeAliasBuilder {
+class DillTypeAliasBuilder extends TypeAliasBuilderImpl {
+  final Typedef typedef;
+
   List<TypeVariableBuilder> _typeVariables;
   TypeBuilder _type;
 
-  DillTypeAliasBuilder(Typedef typedef, DillLibraryBuilder parent)
-      : super(null, typedef.name, null, null, parent, typedef.fileOffset,
-            typedef: typedef);
+  DartType thisType;
+
+  DillTypeAliasBuilder(this.typedef, DillLibraryBuilder parent)
+      : super(null, typedef.name, parent, typedef.fileOffset);
 
   List<MetadataBuilder> get metadata {
     return unimplemented("metadata", -1, null);
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 eb2e6cf..bf1173b 100644
--- a/pkg/front_end/lib/src/fasta/kernel/body_builder.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/body_builder.dart
@@ -4304,7 +4304,7 @@
     if (type is TypeAliasBuilder) {
       errorName = debugName(type.name, name);
       TypeAliasBuilder aliasBuilder = type;
-      int numberOfTypeParameters = aliasBuilder.typeVariables?.length ?? 0;
+      int numberOfTypeParameters = aliasBuilder.typeVariablesCount;
       int numberOfTypeArguments = typeArguments?.length ?? 0;
       if (typeArguments != null &&
           numberOfTypeParameters != numberOfTypeArguments) {
@@ -4327,7 +4327,7 @@
           typeArgumentBuilders.add(unresolvedType?.builder);
         }
       } else {
-        if (aliasBuilder.typeVariables?.isNotEmpty ?? false) {
+        if (aliasBuilder.typeVariablesCount > 0) {
           // Raw generic type alias used for instance creation, needs inference.
           ClassBuilder classBuilder;
           if (type is ClassBuilder) {
@@ -4539,11 +4539,11 @@
   }
 
   @override
-  void beginThenControlFlow(Token token) {
+  void handleThenControlFlow(Token token) {
     Expression condition = popForValue();
     enterThenForTypePromotion(condition);
     push(condition);
-    super.beginThenControlFlow(token);
+    super.handleThenControlFlow(token);
   }
 
   @override
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 56c17ed..5731350 100644
--- a/pkg/front_end/lib/src/fasta/source/outline_builder.dart
+++ b/pkg/front_end/lib/src/fasta/source/outline_builder.dart
@@ -450,7 +450,7 @@
 
   @override
   void beginClassOrNamedMixinApplicationPrelude(Token token) {
-    debugEvent("beginClassOrNamedMixinApplication");
+    debugEvent("beginClassOrNamedMixinApplicationPrelude");
     libraryBuilder.beginNestedDeclaration(
         TypeParameterScopeKind.classOrNamedMixinApplication,
         "class or mixin application");
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 0c3c024..e471194 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
@@ -166,6 +166,8 @@
 
 import 'source_loader.dart' show SourceLoader;
 
+import 'source_type_alias_builder.dart';
+
 class SourceLibraryBuilder extends LibraryBuilderImpl {
   static const String MALFORMED_URI_SCHEME = "org-dartlang-malformed-uri";
 
@@ -2383,7 +2385,7 @@
       }
     }
     Typedef referenceFrom = referencesFromIndexed?.lookupTypedef(name);
-    TypeAliasBuilder typedefBuilder = new TypeAliasBuilder(
+    TypeAliasBuilder typedefBuilder = new SourceTypeAliasBuilder(
         metadata, name, typeVariables, type, this, charOffset,
         referenceFrom: referenceFrom);
     loader.target.metadataCollector
@@ -2481,7 +2483,7 @@
           library.addMember(member);
         }
       });
-    } else if (declaration is TypeAliasBuilder) {
+    } else if (declaration is SourceTypeAliasBuilder) {
       Typedef typedef = declaration.build(this);
       if (!declaration.isPatch && !declaration.isDuplicate) {
         library.addTypedef(typedef);
diff --git a/pkg/front_end/lib/src/fasta/source/source_type_alias_builder.dart b/pkg/front_end/lib/src/fasta/source/source_type_alias_builder.dart
new file mode 100644
index 0000000..369a202
--- /dev/null
+++ b/pkg/front_end/lib/src/fasta/source/source_type_alias_builder.dart
@@ -0,0 +1,220 @@
+// Copyright (c) 2016, 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.
+
+library fasta.function_type_alias_builder;
+
+import 'package:kernel/ast.dart'
+    show
+        DartType,
+        DynamicType,
+        InvalidType,
+        TypeParameter,
+        Typedef,
+        TypedefType,
+        VariableDeclaration,
+        getAsTypeArguments;
+
+import 'package:kernel/type_algebra.dart'
+    show FreshTypeParameters, getFreshTypeParameters;
+
+import '../fasta_codes.dart'
+    show noLength, templateCyclicTypedef, templateTypeArgumentMismatch;
+
+import '../problems.dart' show unhandled;
+
+import '../builder/class_builder.dart';
+import '../builder/fixed_type_builder.dart';
+import '../builder/formal_parameter_builder.dart';
+import '../builder/function_type_builder.dart';
+import '../builder/library_builder.dart';
+import '../builder/metadata_builder.dart';
+import '../builder/named_type_builder.dart';
+import '../builder/type_builder.dart';
+import '../builder/type_alias_builder.dart';
+import '../builder/type_declaration_builder.dart';
+import '../builder/type_variable_builder.dart';
+
+import 'source_library_builder.dart' show SourceLibraryBuilder;
+
+class SourceTypeAliasBuilder extends TypeAliasBuilderImpl {
+  final TypeBuilder type;
+
+  final List<TypeVariableBuilder> _typeVariables;
+
+  /// The [Typedef] built by this builder.
+  final Typedef typedef;
+
+  DartType thisType;
+
+  SourceTypeAliasBuilder(List<MetadataBuilder> metadata, String name,
+      this._typeVariables, this.type, LibraryBuilder parent, int charOffset,
+      {Typedef typedef, Typedef referenceFrom})
+      : typedef = typedef ??
+            (new Typedef(name, null,
+                typeParameters: TypeVariableBuilder.typeParametersFromBuilders(
+                    _typeVariables),
+                fileUri: parent.library.fileUri,
+                reference: referenceFrom?.reference)
+              ..fileOffset = charOffset),
+        super(metadata, name, parent, charOffset);
+
+  @override
+  List<TypeVariableBuilder> get typeVariables => _typeVariables;
+
+  @override
+  int varianceAt(int index) => typeVariables[index].parameter.variance;
+
+  @override
+  bool get fromDill => false;
+
+  @override
+  int get typeVariablesCount => typeVariables?.length ?? 0;
+
+  @override
+  bool get isNullAlias {
+    TypeDeclarationBuilder typeDeclarationBuilder = type.declaration;
+    return typeDeclarationBuilder is ClassBuilder &&
+        typeDeclarationBuilder.isNullClass;
+  }
+
+  Typedef build(SourceLibraryBuilder libraryBuilder) {
+    typedef.type ??= buildThisType();
+
+    TypeBuilder type = this.type;
+    if (type is FunctionTypeBuilder) {
+      List<TypeParameter> typeParameters =
+          new List<TypeParameter>(type.typeVariables?.length ?? 0);
+      for (int i = 0; i < typeParameters.length; ++i) {
+        TypeVariableBuilder typeVariable = type.typeVariables[i];
+        typeParameters[i] = typeVariable.parameter;
+      }
+      FreshTypeParameters freshTypeParameters =
+          getFreshTypeParameters(typeParameters);
+      typedef.typeParametersOfFunctionType
+          .addAll(freshTypeParameters.freshTypeParameters);
+
+      if (type.formals != null) {
+        for (FormalParameterBuilder formal in type.formals) {
+          VariableDeclaration parameter = formal.build(libraryBuilder, 0);
+          parameter.type = freshTypeParameters.substitute(parameter.type);
+          if (formal.isNamed) {
+            typedef.namedParameters.add(parameter);
+          } else {
+            typedef.positionalParameters.add(parameter);
+          }
+        }
+      }
+    } else if (type is NamedTypeBuilder || type is FixedTypeBuilder) {
+      // No error, but also no additional setup work.
+    } else if (type != null) {
+      unhandled("${type.fullNameForErrors}", "build", charOffset, fileUri);
+    }
+
+    return typedef;
+  }
+
+  DartType buildThisType() {
+    if (thisType != null) {
+      if (identical(thisType, cyclicTypeAliasMarker)) {
+        library.addProblem(templateCyclicTypedef.withArguments(name),
+            charOffset, noLength, fileUri);
+        return const InvalidType();
+      }
+      return thisType;
+    }
+    // It is a compile-time error for an alias (typedef) to refer to itself. We
+    // detect cycles by detecting recursive calls to this method using an
+    // instance of InvalidType that isn't identical to `const InvalidType()`.
+    thisType = cyclicTypeAliasMarker;
+    TypeBuilder type = this.type;
+    if (type != null) {
+      DartType builtType =
+          type.build(library, thisTypedefType(typedef, library));
+      if (builtType != null) {
+        if (typeVariables != null) {
+          for (TypeVariableBuilder tv in typeVariables) {
+            // Follow bound in order to find all cycles
+            tv.bound?.build(library);
+          }
+        }
+        return thisType = builtType;
+      } else {
+        return thisType = const InvalidType();
+      }
+    }
+    return thisType = const InvalidType();
+  }
+
+  TypedefType thisTypedefType(Typedef typedef, LibraryBuilder clientLibrary) {
+    // At this point the bounds of `typedef.typeParameters` may not be assigned
+    // yet, so [getAsTypeArguments] may crash trying to compute the nullability
+    // of the created types from the bounds.  To avoid that, we use "dynamic"
+    // for the bound of all boundless variables and add them to the list for
+    // being recomputed later, when the bounds are assigned.
+    List<DartType> bounds =
+        new List<DartType>.filled(typedef.typeParameters.length, null);
+    for (int i = 0; i < bounds.length; ++i) {
+      bounds[i] = typedef.typeParameters[i].bound;
+      if (bounds[i] == null) {
+        typedef.typeParameters[i].bound = const DynamicType();
+      }
+    }
+    List<DartType> asTypeArguments =
+        getAsTypeArguments(typedef.typeParameters, clientLibrary.library);
+    TypedefType result =
+        new TypedefType(typedef, clientLibrary.nonNullable, asTypeArguments);
+    for (int i = 0; i < bounds.length; ++i) {
+      if (bounds[i] == null) {
+        // If the bound is not assigned yet, put the corresponding
+        // type-parameter type into the list for the nullability re-computation.
+        // At this point, [parent] should be a [SourceLibraryBuilder] because
+        // otherwise it's a compiled library loaded from a dill file, and the
+        // bounds should have been assigned.
+        SourceLibraryBuilder parentLibrary = parent;
+        parentLibrary.pendingNullabilities.add(asTypeArguments[i]);
+      }
+    }
+    return result;
+  }
+
+  @override
+  List<DartType> buildTypeArguments(
+      LibraryBuilder library, List<TypeBuilder> arguments,
+      [bool notInstanceContext]) {
+    if (arguments == null && typeVariables == null) {
+      return <DartType>[];
+    }
+
+    if (arguments == null && typeVariables != null) {
+      List<DartType> result =
+          new List<DartType>.filled(typeVariables.length, null, growable: true);
+      for (int i = 0; i < result.length; ++i) {
+        result[i] = typeVariables[i].defaultType.build(library);
+      }
+      if (library is SourceLibraryBuilder) {
+        library.inferredTypes.addAll(result);
+      }
+      return result;
+    }
+
+    if (arguments != null && arguments.length != typeVariablesCount) {
+      // That should be caught and reported as a compile-time error earlier.
+      return unhandled(
+          templateTypeArgumentMismatch
+              .withArguments(typeVariablesCount)
+              .message,
+          "buildTypeArguments",
+          -1,
+          null);
+    }
+
+    // arguments.length == typeVariables.length
+    List<DartType> result =
+        new List<DartType>.filled(arguments.length, null, growable: true);
+    for (int i = 0; i < result.length; ++i) {
+      result[i] = arguments[i].build(library);
+    }
+    return result;
+  }
+}
diff --git a/pkg/front_end/lib/src/fasta/util/direct_parser_ast.dart b/pkg/front_end/lib/src/fasta/util/direct_parser_ast.dart
new file mode 100644
index 0000000..68b390d
--- /dev/null
+++ b/pkg/front_end/lib/src/fasta/util/direct_parser_ast.dart
@@ -0,0 +1,178 @@
+// 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.
+
+import 'dart:typed_data' show Uint8List;
+
+import 'dart:io' show File;
+
+import 'package:_fe_analyzer_shared/src/parser/parser.dart'
+    show ClassMemberParser, Parser;
+
+import 'package:_fe_analyzer_shared/src/scanner/utf8_bytes_scanner.dart'
+    show Utf8BytesScanner;
+
+import 'package:_fe_analyzer_shared/src/scanner/token.dart' show Token;
+
+import 'package:front_end/src/fasta/util/direct_parser_ast_helper.dart'
+    show
+        AbstractDirectParserASTListener,
+        DirectParserASTContent,
+        DirectParserASTType;
+
+DirectParserASTContent getAST(List<int> rawBytes, {bool includeBody: true}) {
+  Uint8List bytes = new Uint8List(rawBytes.length + 1);
+  bytes.setRange(0, rawBytes.length, rawBytes);
+
+  Utf8BytesScanner scanner =
+      new Utf8BytesScanner(bytes, includeComments: false);
+  Token firstToken = scanner.tokenize();
+  if (firstToken == null) {
+    throw "firstToken is null";
+  }
+
+  DirectParserASTListener listener = new DirectParserASTListener();
+  Parser parser;
+  if (includeBody) {
+    parser = new Parser(listener);
+  } else {
+    parser = new ClassMemberParser(listener);
+  }
+  parser.parseUnit(firstToken);
+  return listener.data.single;
+}
+
+main(List<String> args) {
+  File f = new File(args[0]);
+  Uint8List data = f.readAsBytesSync();
+  DirectParserASTContent ast = getAST(data);
+  if (args.length > 1 && args[1] == "--benchmark") {
+    Stopwatch stopwatch = new Stopwatch()..start();
+    int numRuns = 100;
+    for (int i = 0; i < numRuns; i++) {
+      DirectParserASTContent ast2 = getAST(data);
+      if (ast.what != ast2.what) {
+        throw "Not the same result every time";
+      }
+    }
+    stopwatch.stop();
+    print("First $numRuns took ${stopwatch.elapsedMilliseconds} ms "
+        "(i.e. ${stopwatch.elapsedMilliseconds / numRuns}ms/iteration)");
+    stopwatch = new Stopwatch()..start();
+    numRuns = 2500;
+    for (int i = 0; i < numRuns; i++) {
+      DirectParserASTContent ast2 = getAST(data);
+      if (ast.what != ast2.what) {
+        throw "Not the same result every time";
+      }
+    }
+    stopwatch.stop();
+    print("Next $numRuns took ${stopwatch.elapsedMilliseconds} ms "
+        "(i.e. ${stopwatch.elapsedMilliseconds / numRuns}ms/iteration)");
+  } else {
+    print(ast);
+  }
+}
+
+class DirectParserASTListener extends AbstractDirectParserASTListener {
+  void seen(
+      String what, DirectParserASTType type, Map<String, Object> arguments) {
+    switch (type) {
+      case DirectParserASTType.BEGIN:
+      case DirectParserASTType.HANDLE:
+        // This just adds stuff.
+        data.add(new DirectParserASTContent(what, type, arguments));
+        break;
+      case DirectParserASTType.DONE:
+        // This shouldn't be seen. It's artificial.
+        throw new StateError("Saw type 'DONE'");
+      case DirectParserASTType.END:
+        // End should gobble up everything until the corresponding begin (which
+        // should be the latest begin).
+        int beginIndex;
+        for (int i = data.length - 1; i >= 0; i--) {
+          if (data[i].type == DirectParserASTType.BEGIN) {
+            beginIndex = i;
+            break;
+          }
+        }
+        if (beginIndex == null) {
+          throw "Couldn't find a begin for $what. Has:\n"
+              "${data.map((e) => "${e.what}: ${e.type}").join("\n")}";
+        }
+        String begin = data[beginIndex].what;
+        String end = what;
+        if (begin == end) {
+          // Exact match.
+        } else if (end == "TopLevelDeclaration" &&
+            (begin == "ExtensionDeclarationPrelude" ||
+                begin == "ClassOrNamedMixinApplicationPrelude" ||
+                begin == "TopLevelMember" ||
+                begin == "UncategorizedTopLevelDeclaration")) {
+          // endTopLevelDeclaration is started by one of
+          // beginExtensionDeclarationPrelude,
+          // beginClassOrNamedMixinApplicationPrelude
+          // beginTopLevelMember or beginUncategorizedTopLevelDeclaration.
+        } else if (begin == "Method" &&
+            (end == "ClassConstructor" ||
+                end == "ClassMethod" ||
+                end == "ExtensionConstructor" ||
+                end == "ExtensionMethod" ||
+                end == "MixinConstructor" ||
+                end == "MixinMethod")) {
+          // beginMethod is ended by one of endClassConstructor, endClassMethod,
+          // endExtensionMethod, endMixinConstructor or endMixinMethod.
+        } else if (begin == "Fields" &&
+            (end == "TopLevelFields" ||
+                end == "ClassFields" ||
+                end == "MixinFields" ||
+                end == "ExtensionFields")) {
+          // beginFields is ended by one of endTopLevelFields, endMixinFields or
+          // endExtensionFields.
+        } else if (begin == "ForStatement" && end == "ForIn") {
+          // beginForStatement is ended by either endForStatement or endForIn.
+        } else if (begin == "FactoryMethod" &&
+            (end == "ClassFactoryMethod" ||
+                end == "MixinFactoryMethod" ||
+                end == "ExtensionFactoryMethod")) {
+          // beginFactoryMethod is ended by either endClassFactoryMethod,
+          // endMixinFactoryMethod or endExtensionFactoryMethod.
+        } else if (begin == "ForControlFlow" && (end == "ForInControlFlow")) {
+          // beginForControlFlow is ended by either endForControlFlow or
+          // endForInControlFlow.
+        } else if (begin == "IfControlFlow" && (end == "IfElseControlFlow")) {
+          // beginIfControlFlow is ended by either endIfControlFlow or
+          // endIfElseControlFlow.
+        } else if (begin == "AwaitExpression" &&
+            (end == "InvalidAwaitExpression")) {
+          // beginAwaitExpression is ended by either endAwaitExpression or
+          // endInvalidAwaitExpression.
+        } else if (begin == "YieldStatement" &&
+            (end == "InvalidYieldStatement")) {
+          // beginYieldStatement is ended by either endYieldStatement or
+          // endInvalidYieldStatement.
+        } else {
+          throw "Unknown combination: begin$begin and end$end";
+        }
+        List<DirectParserASTContent> content = data.sublist(beginIndex);
+        data.length = beginIndex;
+        data.add(new DirectParserASTContent(
+            what, DirectParserASTType.DONE, arguments)
+          ..content = content);
+        break;
+    }
+  }
+
+  @override
+  void reportVarianceModifierNotEnabled(Token variance) {
+    throw new UnimplementedError();
+  }
+
+  @override
+  Uri get uri => throw new UnimplementedError();
+
+  @override
+  void logEvent(String name) {
+    throw new UnimplementedError();
+  }
+}
diff --git a/pkg/front_end/lib/src/fasta/util/direct_parser_ast_helper.dart b/pkg/front_end/lib/src/fasta/util/direct_parser_ast_helper.dart
new file mode 100644
index 0000000..7da31a4
--- /dev/null
+++ b/pkg/front_end/lib/src/fasta/util/direct_parser_ast_helper.dart
@@ -0,0 +1,1702 @@
+// 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.
+
+import 'package:_fe_analyzer_shared/src/parser/assert.dart';
+import 'package:_fe_analyzer_shared/src/parser/block_kind.dart';
+import 'package:_fe_analyzer_shared/src/parser/declaration_kind.dart';
+import 'package:_fe_analyzer_shared/src/parser/formal_parameter_kind.dart';
+import 'package:_fe_analyzer_shared/src/parser/identifier_context.dart';
+import 'package:_fe_analyzer_shared/src/parser/listener.dart';
+import 'package:_fe_analyzer_shared/src/parser/member_kind.dart';
+import 'package:_fe_analyzer_shared/src/scanner/error_token.dart';
+import 'package:_fe_analyzer_shared/src/scanner/token.dart';
+import 'package:front_end/src/fasta/messages.dart';
+
+// THIS FILE IS AUTO GENERATED BY
+// 'tool/_fasta/direct_parser_ast_helper_creator.dart'
+// Run e.g.
+/*
+   out/ReleaseX64/dart \
+     pkg/front_end/tool/_fasta/direct_parser_ast_helper_creator.dart \
+      > pkg/front_end/lib/src/fasta/util/direct_parser_ast_helper.dart
+*/
+
+class DirectParserASTContent {
+  final String what;
+  final DirectParserASTType type;
+  final Map<String, Object> arguments;
+  List<DirectParserASTContent> content;
+
+  DirectParserASTContent(this.what, this.type, this.arguments);
+
+  // TODO(jensj): Compare two ASTs.
+}
+
+enum DirectParserASTType { BEGIN, END, HANDLE, DONE }
+
+abstract class AbstractDirectParserASTListener implements Listener {
+  List<DirectParserASTContent> data = [];
+
+  void seen(
+      String what, DirectParserASTType type, Map<String, Object> arguments);
+
+  void beginArguments(Token token) {
+    seen("Arguments", DirectParserASTType.BEGIN, {"token": token});
+  }
+
+  void endArguments(int count, Token beginToken, Token endToken) {
+    seen("Arguments", DirectParserASTType.END,
+        {"count": count, "beginToken": beginToken, "endToken": endToken});
+  }
+
+  void handleAsyncModifier(Token asyncToken, Token starToken) {
+    seen("AsyncModifier", DirectParserASTType.HANDLE,
+        {"asyncToken": asyncToken, "starToken": starToken});
+  }
+
+  void beginAwaitExpression(Token token) {
+    seen("AwaitExpression", DirectParserASTType.BEGIN, {"token": token});
+  }
+
+  void endAwaitExpression(Token beginToken, Token endToken) {
+    seen("AwaitExpression", DirectParserASTType.END,
+        {"beginToken": beginToken, "endToken": endToken});
+  }
+
+  void endInvalidAwaitExpression(
+      Token beginToken, Token endToken, MessageCode errorCode) {
+    seen("InvalidAwaitExpression", DirectParserASTType.END, {
+      "beginToken": beginToken,
+      "endToken": endToken,
+      "errorCode": errorCode
+    });
+  }
+
+  void beginBlock(Token token, BlockKind blockKind) {
+    seen("Block", DirectParserASTType.BEGIN,
+        {"token": token, "blockKind": blockKind});
+  }
+
+  void endBlock(
+      int count, Token beginToken, Token endToken, BlockKind blockKind) {
+    seen("Block", DirectParserASTType.END, {
+      "count": count,
+      "beginToken": beginToken,
+      "endToken": endToken,
+      "blockKind": blockKind
+    });
+  }
+
+  void handleInvalidTopLevelBlock(Token token) {
+    seen("InvalidTopLevelBlock", DirectParserASTType.HANDLE, {"token": token});
+  }
+
+  void beginCascade(Token token) {
+    seen("Cascade", DirectParserASTType.BEGIN, {"token": token});
+  }
+
+  void endCascade() {
+    seen("Cascade", DirectParserASTType.END, {});
+  }
+
+  void beginCaseExpression(Token caseKeyword) {
+    seen("CaseExpression", DirectParserASTType.BEGIN,
+        {"caseKeyword": caseKeyword});
+  }
+
+  void endCaseExpression(Token colon) {
+    seen("CaseExpression", DirectParserASTType.END, {"colon": colon});
+  }
+
+  void beginClassOrMixinBody(DeclarationKind kind, Token token) {
+    seen("ClassOrMixinBody", DirectParserASTType.BEGIN,
+        {"kind": kind, "token": token});
+  }
+
+  void endClassOrMixinBody(
+      DeclarationKind kind, int memberCount, Token beginToken, Token endToken) {
+    seen("ClassOrMixinBody", DirectParserASTType.END, {
+      "kind": kind,
+      "memberCount": memberCount,
+      "beginToken": beginToken,
+      "endToken": endToken
+    });
+  }
+
+  void beginClassOrNamedMixinApplicationPrelude(Token token) {
+    seen("ClassOrNamedMixinApplicationPrelude", DirectParserASTType.BEGIN,
+        {"token": token});
+  }
+
+  void beginClassDeclaration(Token begin, Token abstractToken, Token name) {
+    seen("ClassDeclaration", DirectParserASTType.BEGIN,
+        {"begin": begin, "abstractToken": abstractToken, "name": name});
+  }
+
+  void handleClassExtends(Token extendsKeyword, int typeCount) {
+    seen("ClassExtends", DirectParserASTType.HANDLE,
+        {"extendsKeyword": extendsKeyword, "typeCount": typeCount});
+  }
+
+  void handleClassOrMixinImplements(
+      Token implementsKeyword, int interfacesCount) {
+    seen("ClassOrMixinImplements", DirectParserASTType.HANDLE, {
+      "implementsKeyword": implementsKeyword,
+      "interfacesCount": interfacesCount
+    });
+  }
+
+  void handleClassHeader(Token begin, Token classKeyword, Token nativeToken) {
+    seen("ClassHeader", DirectParserASTType.HANDLE, {
+      "begin": begin,
+      "classKeyword": classKeyword,
+      "nativeToken": nativeToken
+    });
+  }
+
+  void handleRecoverClassHeader() {
+    seen("RecoverClassHeader", DirectParserASTType.HANDLE, {});
+  }
+
+  void endClassDeclaration(Token beginToken, Token endToken) {
+    seen("ClassDeclaration", DirectParserASTType.END,
+        {"beginToken": beginToken, "endToken": endToken});
+  }
+
+  void beginMixinDeclaration(Token mixinKeyword, Token name) {
+    seen("MixinDeclaration", DirectParserASTType.BEGIN,
+        {"mixinKeyword": mixinKeyword, "name": name});
+  }
+
+  void handleMixinOn(Token onKeyword, int typeCount) {
+    seen("MixinOn", DirectParserASTType.HANDLE,
+        {"onKeyword": onKeyword, "typeCount": typeCount});
+  }
+
+  void handleMixinHeader(Token mixinKeyword) {
+    seen("MixinHeader", DirectParserASTType.HANDLE,
+        {"mixinKeyword": mixinKeyword});
+  }
+
+  void handleRecoverMixinHeader() {
+    seen("RecoverMixinHeader", DirectParserASTType.HANDLE, {});
+  }
+
+  void endMixinDeclaration(Token mixinKeyword, Token endToken) {
+    seen("MixinDeclaration", DirectParserASTType.END,
+        {"mixinKeyword": mixinKeyword, "endToken": endToken});
+  }
+
+  void beginUncategorizedTopLevelDeclaration(Token token) {
+    seen("UncategorizedTopLevelDeclaration", DirectParserASTType.BEGIN,
+        {"token": token});
+  }
+
+  void beginExtensionDeclarationPrelude(Token extensionKeyword) {
+    seen("ExtensionDeclarationPrelude", DirectParserASTType.BEGIN,
+        {"extensionKeyword": extensionKeyword});
+  }
+
+  void beginExtensionDeclaration(Token extensionKeyword, Token name) {
+    seen("ExtensionDeclaration", DirectParserASTType.BEGIN,
+        {"extensionKeyword": extensionKeyword, "name": name});
+  }
+
+  void endExtensionDeclaration(
+      Token extensionKeyword, Token onKeyword, Token endToken) {
+    seen("ExtensionDeclaration", DirectParserASTType.END, {
+      "extensionKeyword": extensionKeyword,
+      "onKeyword": onKeyword,
+      "endToken": endToken
+    });
+  }
+
+  void beginCombinators(Token token) {
+    seen("Combinators", DirectParserASTType.BEGIN, {"token": token});
+  }
+
+  void endCombinators(int count) {
+    seen("Combinators", DirectParserASTType.END, {"count": count});
+  }
+
+  void beginCompilationUnit(Token token) {
+    seen("CompilationUnit", DirectParserASTType.BEGIN, {"token": token});
+  }
+
+  void handleDirectivesOnly() {
+    seen("DirectivesOnly", DirectParserASTType.HANDLE, {});
+  }
+
+  void endCompilationUnit(int count, Token token) {
+    seen("CompilationUnit", DirectParserASTType.END,
+        {"count": count, "token": token});
+  }
+
+  void beginConstLiteral(Token token) {
+    seen("ConstLiteral", DirectParserASTType.BEGIN, {"token": token});
+  }
+
+  void endConstLiteral(Token token) {
+    seen("ConstLiteral", DirectParserASTType.END, {"token": token});
+  }
+
+  void beginConstructorReference(Token start) {
+    seen("ConstructorReference", DirectParserASTType.BEGIN, {"start": start});
+  }
+
+  void endConstructorReference(
+      Token start, Token periodBeforeName, Token endToken) {
+    seen("ConstructorReference", DirectParserASTType.END, {
+      "start": start,
+      "periodBeforeName": periodBeforeName,
+      "endToken": endToken
+    });
+  }
+
+  void beginDoWhileStatement(Token token) {
+    seen("DoWhileStatement", DirectParserASTType.BEGIN, {"token": token});
+  }
+
+  void endDoWhileStatement(
+      Token doKeyword, Token whileKeyword, Token endToken) {
+    seen("DoWhileStatement", DirectParserASTType.END, {
+      "doKeyword": doKeyword,
+      "whileKeyword": whileKeyword,
+      "endToken": endToken
+    });
+  }
+
+  void beginDoWhileStatementBody(Token token) {
+    seen("DoWhileStatementBody", DirectParserASTType.BEGIN, {"token": token});
+  }
+
+  void endDoWhileStatementBody(Token token) {
+    seen("DoWhileStatementBody", DirectParserASTType.END, {"token": token});
+  }
+
+  void beginWhileStatementBody(Token token) {
+    seen("WhileStatementBody", DirectParserASTType.BEGIN, {"token": token});
+  }
+
+  void endWhileStatementBody(Token token) {
+    seen("WhileStatementBody", DirectParserASTType.END, {"token": token});
+  }
+
+  void beginEnum(Token enumKeyword) {
+    seen("Enum", DirectParserASTType.BEGIN, {"enumKeyword": enumKeyword});
+  }
+
+  void endEnum(Token enumKeyword, Token leftBrace, int count) {
+    seen("Enum", DirectParserASTType.END,
+        {"enumKeyword": enumKeyword, "leftBrace": leftBrace, "count": count});
+  }
+
+  void beginExport(Token token) {
+    seen("Export", DirectParserASTType.BEGIN, {"token": token});
+  }
+
+  void endExport(Token exportKeyword, Token semicolon) {
+    seen("Export", DirectParserASTType.END,
+        {"exportKeyword": exportKeyword, "semicolon": semicolon});
+  }
+
+  void handleExtraneousExpression(Token token, Message message) {
+    seen("ExtraneousExpression", DirectParserASTType.HANDLE,
+        {"token": token, "message": message});
+  }
+
+  void handleExpressionStatement(Token token) {
+    seen("ExpressionStatement", DirectParserASTType.HANDLE, {"token": token});
+  }
+
+  void beginFactoryMethod(
+      Token lastConsumed, Token externalToken, Token constToken) {
+    seen("FactoryMethod", DirectParserASTType.BEGIN, {
+      "lastConsumed": lastConsumed,
+      "externalToken": externalToken,
+      "constToken": constToken
+    });
+  }
+
+  void endClassFactoryMethod(
+      Token beginToken, Token factoryKeyword, Token endToken) {
+    seen("ClassFactoryMethod", DirectParserASTType.END, {
+      "beginToken": beginToken,
+      "factoryKeyword": factoryKeyword,
+      "endToken": endToken
+    });
+  }
+
+  void endMixinFactoryMethod(
+      Token beginToken, Token factoryKeyword, Token endToken) {
+    seen("MixinFactoryMethod", DirectParserASTType.END, {
+      "beginToken": beginToken,
+      "factoryKeyword": factoryKeyword,
+      "endToken": endToken
+    });
+  }
+
+  void endExtensionFactoryMethod(
+      Token beginToken, Token factoryKeyword, Token endToken) {
+    seen("ExtensionFactoryMethod", DirectParserASTType.END, {
+      "beginToken": beginToken,
+      "factoryKeyword": factoryKeyword,
+      "endToken": endToken
+    });
+  }
+
+  void beginFormalParameter(Token token, MemberKind kind, Token requiredToken,
+      Token covariantToken, Token varFinalOrConst) {
+    seen("FormalParameter", DirectParserASTType.BEGIN, {
+      "token": token,
+      "kind": kind,
+      "requiredToken": requiredToken,
+      "covariantToken": covariantToken,
+      "varFinalOrConst": varFinalOrConst
+    });
+  }
+
+  void endFormalParameter(
+      Token thisKeyword,
+      Token periodAfterThis,
+      Token nameToken,
+      Token initializerStart,
+      Token initializerEnd,
+      FormalParameterKind kind,
+      MemberKind memberKind) {
+    seen("FormalParameter", DirectParserASTType.END, {
+      "thisKeyword": thisKeyword,
+      "periodAfterThis": periodAfterThis,
+      "nameToken": nameToken,
+      "initializerStart": initializerStart,
+      "initializerEnd": initializerEnd,
+      "kind": kind,
+      "memberKind": memberKind
+    });
+  }
+
+  void handleNoFormalParameters(Token token, MemberKind kind) {
+    seen("NoFormalParameters", DirectParserASTType.HANDLE,
+        {"token": token, "kind": kind});
+  }
+
+  void beginFormalParameters(Token token, MemberKind kind) {
+    seen("FormalParameters", DirectParserASTType.BEGIN,
+        {"token": token, "kind": kind});
+  }
+
+  void endFormalParameters(
+      int count, Token beginToken, Token endToken, MemberKind kind) {
+    seen("FormalParameters", DirectParserASTType.END, {
+      "count": count,
+      "beginToken": beginToken,
+      "endToken": endToken,
+      "kind": kind
+    });
+  }
+
+  void endClassFields(
+      Token abstractToken,
+      Token externalToken,
+      Token staticToken,
+      Token covariantToken,
+      Token lateToken,
+      Token varFinalOrConst,
+      int count,
+      Token beginToken,
+      Token endToken) {
+    seen("ClassFields", DirectParserASTType.END, {
+      "abstractToken": abstractToken,
+      "externalToken": externalToken,
+      "staticToken": staticToken,
+      "covariantToken": covariantToken,
+      "lateToken": lateToken,
+      "varFinalOrConst": varFinalOrConst,
+      "count": count,
+      "beginToken": beginToken,
+      "endToken": endToken
+    });
+  }
+
+  void endMixinFields(
+      Token abstractToken,
+      Token externalToken,
+      Token staticToken,
+      Token covariantToken,
+      Token lateToken,
+      Token varFinalOrConst,
+      int count,
+      Token beginToken,
+      Token endToken) {
+    seen("MixinFields", DirectParserASTType.END, {
+      "abstractToken": abstractToken,
+      "externalToken": externalToken,
+      "staticToken": staticToken,
+      "covariantToken": covariantToken,
+      "lateToken": lateToken,
+      "varFinalOrConst": varFinalOrConst,
+      "count": count,
+      "beginToken": beginToken,
+      "endToken": endToken
+    });
+  }
+
+  void endExtensionFields(
+      Token abstractToken,
+      Token externalToken,
+      Token staticToken,
+      Token covariantToken,
+      Token lateToken,
+      Token varFinalOrConst,
+      int count,
+      Token beginToken,
+      Token endToken) {
+    seen("ExtensionFields", DirectParserASTType.END, {
+      "abstractToken": abstractToken,
+      "externalToken": externalToken,
+      "staticToken": staticToken,
+      "covariantToken": covariantToken,
+      "lateToken": lateToken,
+      "varFinalOrConst": varFinalOrConst,
+      "count": count,
+      "beginToken": beginToken,
+      "endToken": endToken
+    });
+  }
+
+  void handleForInitializerEmptyStatement(Token token) {
+    seen("ForInitializerEmptyStatement", DirectParserASTType.HANDLE,
+        {"token": token});
+  }
+
+  void handleForInitializerExpressionStatement(Token token, bool forIn) {
+    seen("ForInitializerExpressionStatement", DirectParserASTType.HANDLE,
+        {"token": token, "forIn": forIn});
+  }
+
+  void handleForInitializerLocalVariableDeclaration(Token token, bool forIn) {
+    seen("ForInitializerLocalVariableDeclaration", DirectParserASTType.HANDLE,
+        {"token": token, "forIn": forIn});
+  }
+
+  void beginForStatement(Token token) {
+    seen("ForStatement", DirectParserASTType.BEGIN, {"token": token});
+  }
+
+  void handleForLoopParts(Token forKeyword, Token leftParen,
+      Token leftSeparator, int updateExpressionCount) {
+    seen("ForLoopParts", DirectParserASTType.HANDLE, {
+      "forKeyword": forKeyword,
+      "leftParen": leftParen,
+      "leftSeparator": leftSeparator,
+      "updateExpressionCount": updateExpressionCount
+    });
+  }
+
+  void endForStatement(Token endToken) {
+    seen("ForStatement", DirectParserASTType.END, {"endToken": endToken});
+  }
+
+  void beginForStatementBody(Token token) {
+    seen("ForStatementBody", DirectParserASTType.BEGIN, {"token": token});
+  }
+
+  void endForStatementBody(Token token) {
+    seen("ForStatementBody", DirectParserASTType.END, {"token": token});
+  }
+
+  void handleForInLoopParts(Token awaitToken, Token forToken,
+      Token leftParenthesis, Token inKeyword) {
+    seen("ForInLoopParts", DirectParserASTType.HANDLE, {
+      "awaitToken": awaitToken,
+      "forToken": forToken,
+      "leftParenthesis": leftParenthesis,
+      "inKeyword": inKeyword
+    });
+  }
+
+  void endForIn(Token endToken) {
+    seen("ForIn", DirectParserASTType.END, {"endToken": endToken});
+  }
+
+  void beginForInExpression(Token token) {
+    seen("ForInExpression", DirectParserASTType.BEGIN, {"token": token});
+  }
+
+  void endForInExpression(Token token) {
+    seen("ForInExpression", DirectParserASTType.END, {"token": token});
+  }
+
+  void beginForInBody(Token token) {
+    seen("ForInBody", DirectParserASTType.BEGIN, {"token": token});
+  }
+
+  void endForInBody(Token token) {
+    seen("ForInBody", DirectParserASTType.END, {"token": token});
+  }
+
+  void beginNamedFunctionExpression(Token token) {
+    seen(
+        "NamedFunctionExpression", DirectParserASTType.BEGIN, {"token": token});
+  }
+
+  void endNamedFunctionExpression(Token endToken) {
+    seen("NamedFunctionExpression", DirectParserASTType.END,
+        {"endToken": endToken});
+  }
+
+  void beginLocalFunctionDeclaration(Token token) {
+    seen("LocalFunctionDeclaration", DirectParserASTType.BEGIN,
+        {"token": token});
+  }
+
+  void endLocalFunctionDeclaration(Token endToken) {
+    seen("LocalFunctionDeclaration", DirectParserASTType.END,
+        {"endToken": endToken});
+  }
+
+  void beginBlockFunctionBody(Token token) {
+    seen("BlockFunctionBody", DirectParserASTType.BEGIN, {"token": token});
+  }
+
+  void endBlockFunctionBody(int count, Token beginToken, Token endToken) {
+    seen("BlockFunctionBody", DirectParserASTType.END,
+        {"count": count, "beginToken": beginToken, "endToken": endToken});
+  }
+
+  void handleNoFunctionBody(Token token) {
+    seen("NoFunctionBody", DirectParserASTType.HANDLE, {"token": token});
+  }
+
+  void handleFunctionBodySkipped(Token token, bool isExpressionBody) {
+    seen("FunctionBodySkipped", DirectParserASTType.HANDLE,
+        {"token": token, "isExpressionBody": isExpressionBody});
+  }
+
+  void beginFunctionName(Token token) {
+    seen("FunctionName", DirectParserASTType.BEGIN, {"token": token});
+  }
+
+  void endFunctionName(Token beginToken, Token token) {
+    seen("FunctionName", DirectParserASTType.END,
+        {"beginToken": beginToken, "token": token});
+  }
+
+  void beginFunctionTypeAlias(Token token) {
+    seen("FunctionTypeAlias", DirectParserASTType.BEGIN, {"token": token});
+  }
+
+  void endFunctionTypeAlias(
+      Token typedefKeyword, Token equals, Token endToken) {
+    seen("FunctionTypeAlias", DirectParserASTType.END, {
+      "typedefKeyword": typedefKeyword,
+      "equals": equals,
+      "endToken": endToken
+    });
+  }
+
+  void handleClassWithClause(Token withKeyword) {
+    seen("ClassWithClause", DirectParserASTType.HANDLE,
+        {"withKeyword": withKeyword});
+  }
+
+  void handleClassNoWithClause() {
+    seen("ClassNoWithClause", DirectParserASTType.HANDLE, {});
+  }
+
+  void beginNamedMixinApplication(
+      Token begin, Token abstractToken, Token name) {
+    seen("NamedMixinApplication", DirectParserASTType.BEGIN,
+        {"begin": begin, "abstractToken": abstractToken, "name": name});
+  }
+
+  void handleNamedMixinApplicationWithClause(Token withKeyword) {
+    seen("NamedMixinApplicationWithClause", DirectParserASTType.HANDLE,
+        {"withKeyword": withKeyword});
+  }
+
+  void endNamedMixinApplication(Token begin, Token classKeyword, Token equals,
+      Token implementsKeyword, Token endToken) {
+    seen("NamedMixinApplication", DirectParserASTType.END, {
+      "begin": begin,
+      "classKeyword": classKeyword,
+      "equals": equals,
+      "implementsKeyword": implementsKeyword,
+      "endToken": endToken
+    });
+  }
+
+  void beginHide(Token hideKeyword) {
+    seen("Hide", DirectParserASTType.BEGIN, {"hideKeyword": hideKeyword});
+  }
+
+  void endHide(Token hideKeyword) {
+    seen("Hide", DirectParserASTType.END, {"hideKeyword": hideKeyword});
+  }
+
+  void handleIdentifierList(int count) {
+    seen("IdentifierList", DirectParserASTType.HANDLE, {"count": count});
+  }
+
+  void beginTypeList(Token token) {
+    seen("TypeList", DirectParserASTType.BEGIN, {"token": token});
+  }
+
+  void endTypeList(int count) {
+    seen("TypeList", DirectParserASTType.END, {"count": count});
+  }
+
+  void beginIfStatement(Token token) {
+    seen("IfStatement", DirectParserASTType.BEGIN, {"token": token});
+  }
+
+  void endIfStatement(Token ifToken, Token elseToken) {
+    seen("IfStatement", DirectParserASTType.END,
+        {"ifToken": ifToken, "elseToken": elseToken});
+  }
+
+  void beginThenStatement(Token token) {
+    seen("ThenStatement", DirectParserASTType.BEGIN, {"token": token});
+  }
+
+  void endThenStatement(Token token) {
+    seen("ThenStatement", DirectParserASTType.END, {"token": token});
+  }
+
+  void beginElseStatement(Token token) {
+    seen("ElseStatement", DirectParserASTType.BEGIN, {"token": token});
+  }
+
+  void endElseStatement(Token token) {
+    seen("ElseStatement", DirectParserASTType.END, {"token": token});
+  }
+
+  void beginImport(Token importKeyword) {
+    seen("Import", DirectParserASTType.BEGIN, {"importKeyword": importKeyword});
+  }
+
+  void handleImportPrefix(Token deferredKeyword, Token asKeyword) {
+    seen("ImportPrefix", DirectParserASTType.HANDLE,
+        {"deferredKeyword": deferredKeyword, "asKeyword": asKeyword});
+  }
+
+  void endImport(Token importKeyword, Token semicolon) {
+    seen("Import", DirectParserASTType.END,
+        {"importKeyword": importKeyword, "semicolon": semicolon});
+  }
+
+  void handleRecoverImport(Token semicolon) {
+    seen("RecoverImport", DirectParserASTType.HANDLE, {"semicolon": semicolon});
+  }
+
+  void beginConditionalUris(Token token) {
+    seen("ConditionalUris", DirectParserASTType.BEGIN, {"token": token});
+  }
+
+  void endConditionalUris(int count) {
+    seen("ConditionalUris", DirectParserASTType.END, {"count": count});
+  }
+
+  void beginConditionalUri(Token ifKeyword) {
+    seen("ConditionalUri", DirectParserASTType.BEGIN, {"ifKeyword": ifKeyword});
+  }
+
+  void endConditionalUri(Token ifKeyword, Token leftParen, Token equalSign) {
+    seen("ConditionalUri", DirectParserASTType.END, {
+      "ifKeyword": ifKeyword,
+      "leftParen": leftParen,
+      "equalSign": equalSign
+    });
+  }
+
+  void handleDottedName(int count, Token firstIdentifier) {
+    seen("DottedName", DirectParserASTType.HANDLE,
+        {"count": count, "firstIdentifier": firstIdentifier});
+  }
+
+  void beginImplicitCreationExpression(Token token) {
+    seen("ImplicitCreationExpression", DirectParserASTType.BEGIN,
+        {"token": token});
+  }
+
+  void endImplicitCreationExpression(Token token) {
+    seen("ImplicitCreationExpression", DirectParserASTType.END,
+        {"token": token});
+  }
+
+  void beginInitializedIdentifier(Token token) {
+    seen("InitializedIdentifier", DirectParserASTType.BEGIN, {"token": token});
+  }
+
+  void endInitializedIdentifier(Token nameToken) {
+    seen("InitializedIdentifier", DirectParserASTType.END,
+        {"nameToken": nameToken});
+  }
+
+  void beginFieldInitializer(Token token) {
+    seen("FieldInitializer", DirectParserASTType.BEGIN, {"token": token});
+  }
+
+  void endFieldInitializer(Token assignment, Token token) {
+    seen("FieldInitializer", DirectParserASTType.END,
+        {"assignment": assignment, "token": token});
+  }
+
+  void handleNoFieldInitializer(Token token) {
+    seen("NoFieldInitializer", DirectParserASTType.HANDLE, {"token": token});
+  }
+
+  void beginVariableInitializer(Token token) {
+    seen("VariableInitializer", DirectParserASTType.BEGIN, {"token": token});
+  }
+
+  void endVariableInitializer(Token assignmentOperator) {
+    seen("VariableInitializer", DirectParserASTType.END,
+        {"assignmentOperator": assignmentOperator});
+  }
+
+  void handleNoVariableInitializer(Token token) {
+    seen("NoVariableInitializer", DirectParserASTType.HANDLE, {"token": token});
+  }
+
+  void beginInitializer(Token token) {
+    seen("Initializer", DirectParserASTType.BEGIN, {"token": token});
+  }
+
+  void endInitializer(Token token) {
+    seen("Initializer", DirectParserASTType.END, {"token": token});
+  }
+
+  void beginInitializers(Token token) {
+    seen("Initializers", DirectParserASTType.BEGIN, {"token": token});
+  }
+
+  void endInitializers(int count, Token beginToken, Token endToken) {
+    seen("Initializers", DirectParserASTType.END,
+        {"count": count, "beginToken": beginToken, "endToken": endToken});
+  }
+
+  void handleNoInitializers() {
+    seen("NoInitializers", DirectParserASTType.HANDLE, {});
+  }
+
+  void handleInvalidExpression(Token token) {
+    seen("InvalidExpression", DirectParserASTType.HANDLE, {"token": token});
+  }
+
+  void handleInvalidFunctionBody(Token token) {
+    seen("InvalidFunctionBody", DirectParserASTType.HANDLE, {"token": token});
+  }
+
+  void handleInvalidTypeReference(Token token) {
+    seen("InvalidTypeReference", DirectParserASTType.HANDLE, {"token": token});
+  }
+
+  void handleLabel(Token token) {
+    seen("Label", DirectParserASTType.HANDLE, {"token": token});
+  }
+
+  void beginLabeledStatement(Token token, int labelCount) {
+    seen("LabeledStatement", DirectParserASTType.BEGIN,
+        {"token": token, "labelCount": labelCount});
+  }
+
+  void endLabeledStatement(int labelCount) {
+    seen("LabeledStatement", DirectParserASTType.END,
+        {"labelCount": labelCount});
+  }
+
+  void beginLibraryName(Token token) {
+    seen("LibraryName", DirectParserASTType.BEGIN, {"token": token});
+  }
+
+  void endLibraryName(Token libraryKeyword, Token semicolon) {
+    seen("LibraryName", DirectParserASTType.END,
+        {"libraryKeyword": libraryKeyword, "semicolon": semicolon});
+  }
+
+  void handleLiteralMapEntry(Token colon, Token endToken) {
+    seen("LiteralMapEntry", DirectParserASTType.HANDLE,
+        {"colon": colon, "endToken": endToken});
+  }
+
+  void beginLiteralString(Token token) {
+    seen("LiteralString", DirectParserASTType.BEGIN, {"token": token});
+  }
+
+  void handleInterpolationExpression(Token leftBracket, Token rightBracket) {
+    seen("InterpolationExpression", DirectParserASTType.HANDLE,
+        {"leftBracket": leftBracket, "rightBracket": rightBracket});
+  }
+
+  void endLiteralString(int interpolationCount, Token endToken) {
+    seen("LiteralString", DirectParserASTType.END,
+        {"interpolationCount": interpolationCount, "endToken": endToken});
+  }
+
+  void handleStringJuxtaposition(Token startToken, int literalCount) {
+    seen("StringJuxtaposition", DirectParserASTType.HANDLE,
+        {"startToken": startToken, "literalCount": literalCount});
+  }
+
+  void beginMember() {
+    seen("Member", DirectParserASTType.BEGIN, {});
+  }
+
+  void handleInvalidMember(Token endToken) {
+    seen("InvalidMember", DirectParserASTType.HANDLE, {"endToken": endToken});
+  }
+
+  void endMember() {
+    seen("Member", DirectParserASTType.END, {});
+  }
+
+  void beginMethod(Token externalToken, Token staticToken, Token covariantToken,
+      Token varFinalOrConst, Token getOrSet, Token name) {
+    seen("Method", DirectParserASTType.BEGIN, {
+      "externalToken": externalToken,
+      "staticToken": staticToken,
+      "covariantToken": covariantToken,
+      "varFinalOrConst": varFinalOrConst,
+      "getOrSet": getOrSet,
+      "name": name
+    });
+  }
+
+  void endClassMethod(Token getOrSet, Token beginToken, Token beginParam,
+      Token beginInitializers, Token endToken) {
+    seen("ClassMethod", DirectParserASTType.END, {
+      "getOrSet": getOrSet,
+      "beginToken": beginToken,
+      "beginParam": beginParam,
+      "beginInitializers": beginInitializers,
+      "endToken": endToken
+    });
+  }
+
+  void endMixinMethod(Token getOrSet, Token beginToken, Token beginParam,
+      Token beginInitializers, Token endToken) {
+    seen("MixinMethod", DirectParserASTType.END, {
+      "getOrSet": getOrSet,
+      "beginToken": beginToken,
+      "beginParam": beginParam,
+      "beginInitializers": beginInitializers,
+      "endToken": endToken
+    });
+  }
+
+  void endExtensionMethod(Token getOrSet, Token beginToken, Token beginParam,
+      Token beginInitializers, Token endToken) {
+    seen("ExtensionMethod", DirectParserASTType.END, {
+      "getOrSet": getOrSet,
+      "beginToken": beginToken,
+      "beginParam": beginParam,
+      "beginInitializers": beginInitializers,
+      "endToken": endToken
+    });
+  }
+
+  void endClassConstructor(Token getOrSet, Token beginToken, Token beginParam,
+      Token beginInitializers, Token endToken) {
+    seen("ClassConstructor", DirectParserASTType.END, {
+      "getOrSet": getOrSet,
+      "beginToken": beginToken,
+      "beginParam": beginParam,
+      "beginInitializers": beginInitializers,
+      "endToken": endToken
+    });
+  }
+
+  void endMixinConstructor(Token getOrSet, Token beginToken, Token beginParam,
+      Token beginInitializers, Token endToken) {
+    seen("MixinConstructor", DirectParserASTType.END, {
+      "getOrSet": getOrSet,
+      "beginToken": beginToken,
+      "beginParam": beginParam,
+      "beginInitializers": beginInitializers,
+      "endToken": endToken
+    });
+  }
+
+  void endExtensionConstructor(Token getOrSet, Token beginToken,
+      Token beginParam, Token beginInitializers, Token endToken) {
+    seen("ExtensionConstructor", DirectParserASTType.END, {
+      "getOrSet": getOrSet,
+      "beginToken": beginToken,
+      "beginParam": beginParam,
+      "beginInitializers": beginInitializers,
+      "endToken": endToken
+    });
+  }
+
+  void beginMetadataStar(Token token) {
+    seen("MetadataStar", DirectParserASTType.BEGIN, {"token": token});
+  }
+
+  void endMetadataStar(int count) {
+    seen("MetadataStar", DirectParserASTType.END, {"count": count});
+  }
+
+  void beginMetadata(Token token) {
+    seen("Metadata", DirectParserASTType.BEGIN, {"token": token});
+  }
+
+  void endMetadata(Token beginToken, Token periodBeforeName, Token endToken) {
+    seen("Metadata", DirectParserASTType.END, {
+      "beginToken": beginToken,
+      "periodBeforeName": periodBeforeName,
+      "endToken": endToken
+    });
+  }
+
+  void beginOptionalFormalParameters(Token token) {
+    seen("OptionalFormalParameters", DirectParserASTType.BEGIN,
+        {"token": token});
+  }
+
+  void endOptionalFormalParameters(
+      int count, Token beginToken, Token endToken) {
+    seen("OptionalFormalParameters", DirectParserASTType.END,
+        {"count": count, "beginToken": beginToken, "endToken": endToken});
+  }
+
+  void beginPart(Token token) {
+    seen("Part", DirectParserASTType.BEGIN, {"token": token});
+  }
+
+  void endPart(Token partKeyword, Token semicolon) {
+    seen("Part", DirectParserASTType.END,
+        {"partKeyword": partKeyword, "semicolon": semicolon});
+  }
+
+  void beginPartOf(Token token) {
+    seen("PartOf", DirectParserASTType.BEGIN, {"token": token});
+  }
+
+  void endPartOf(
+      Token partKeyword, Token ofKeyword, Token semicolon, bool hasName) {
+    seen("PartOf", DirectParserASTType.END, {
+      "partKeyword": partKeyword,
+      "ofKeyword": ofKeyword,
+      "semicolon": semicolon,
+      "hasName": hasName
+    });
+  }
+
+  void beginRedirectingFactoryBody(Token token) {
+    seen("RedirectingFactoryBody", DirectParserASTType.BEGIN, {"token": token});
+  }
+
+  void endRedirectingFactoryBody(Token beginToken, Token endToken) {
+    seen("RedirectingFactoryBody", DirectParserASTType.END,
+        {"beginToken": beginToken, "endToken": endToken});
+  }
+
+  void beginReturnStatement(Token token) {
+    seen("ReturnStatement", DirectParserASTType.BEGIN, {"token": token});
+  }
+
+  void handleNativeFunctionBody(Token nativeToken, Token semicolon) {
+    seen("NativeFunctionBody", DirectParserASTType.HANDLE,
+        {"nativeToken": nativeToken, "semicolon": semicolon});
+  }
+
+  void handleNativeFunctionBodyIgnored(Token nativeToken, Token semicolon) {
+    seen("NativeFunctionBodyIgnored", DirectParserASTType.HANDLE,
+        {"nativeToken": nativeToken, "semicolon": semicolon});
+  }
+
+  void handleNativeFunctionBodySkipped(Token nativeToken, Token semicolon) {
+    seen("NativeFunctionBodySkipped", DirectParserASTType.HANDLE,
+        {"nativeToken": nativeToken, "semicolon": semicolon});
+  }
+
+  void handleEmptyFunctionBody(Token semicolon) {
+    seen("EmptyFunctionBody", DirectParserASTType.HANDLE,
+        {"semicolon": semicolon});
+  }
+
+  void handleExpressionFunctionBody(Token arrowToken, Token endToken) {
+    seen("ExpressionFunctionBody", DirectParserASTType.HANDLE,
+        {"arrowToken": arrowToken, "endToken": endToken});
+  }
+
+  void endReturnStatement(
+      bool hasExpression, Token beginToken, Token endToken) {
+    seen("ReturnStatement", DirectParserASTType.END, {
+      "hasExpression": hasExpression,
+      "beginToken": beginToken,
+      "endToken": endToken
+    });
+  }
+
+  void handleSend(Token beginToken, Token endToken) {
+    seen("Send", DirectParserASTType.HANDLE,
+        {"beginToken": beginToken, "endToken": endToken});
+  }
+
+  void beginShow(Token showKeyword) {
+    seen("Show", DirectParserASTType.BEGIN, {"showKeyword": showKeyword});
+  }
+
+  void endShow(Token showKeyword) {
+    seen("Show", DirectParserASTType.END, {"showKeyword": showKeyword});
+  }
+
+  void beginSwitchStatement(Token token) {
+    seen("SwitchStatement", DirectParserASTType.BEGIN, {"token": token});
+  }
+
+  void endSwitchStatement(Token switchKeyword, Token endToken) {
+    seen("SwitchStatement", DirectParserASTType.END,
+        {"switchKeyword": switchKeyword, "endToken": endToken});
+  }
+
+  void beginSwitchBlock(Token token) {
+    seen("SwitchBlock", DirectParserASTType.BEGIN, {"token": token});
+  }
+
+  void endSwitchBlock(int caseCount, Token beginToken, Token endToken) {
+    seen("SwitchBlock", DirectParserASTType.END, {
+      "caseCount": caseCount,
+      "beginToken": beginToken,
+      "endToken": endToken
+    });
+  }
+
+  void beginLiteralSymbol(Token token) {
+    seen("LiteralSymbol", DirectParserASTType.BEGIN, {"token": token});
+  }
+
+  void endLiteralSymbol(Token hashToken, int identifierCount) {
+    seen("LiteralSymbol", DirectParserASTType.END,
+        {"hashToken": hashToken, "identifierCount": identifierCount});
+  }
+
+  void handleThrowExpression(Token throwToken, Token endToken) {
+    seen("ThrowExpression", DirectParserASTType.HANDLE,
+        {"throwToken": throwToken, "endToken": endToken});
+  }
+
+  void beginRethrowStatement(Token token) {
+    seen("RethrowStatement", DirectParserASTType.BEGIN, {"token": token});
+  }
+
+  void endRethrowStatement(Token rethrowToken, Token endToken) {
+    seen("RethrowStatement", DirectParserASTType.END,
+        {"rethrowToken": rethrowToken, "endToken": endToken});
+  }
+
+  void endTopLevelDeclaration(Token nextToken) {
+    seen("TopLevelDeclaration", DirectParserASTType.END,
+        {"nextToken": nextToken});
+  }
+
+  void handleInvalidTopLevelDeclaration(Token endToken) {
+    seen("InvalidTopLevelDeclaration", DirectParserASTType.HANDLE,
+        {"endToken": endToken});
+  }
+
+  void beginTopLevelMember(Token token) {
+    seen("TopLevelMember", DirectParserASTType.BEGIN, {"token": token});
+  }
+
+  void beginFields(Token lastConsumed) {
+    seen("Fields", DirectParserASTType.BEGIN, {"lastConsumed": lastConsumed});
+  }
+
+  void endTopLevelFields(
+      Token externalToken,
+      Token staticToken,
+      Token covariantToken,
+      Token lateToken,
+      Token varFinalOrConst,
+      int count,
+      Token beginToken,
+      Token endToken) {
+    seen("TopLevelFields", DirectParserASTType.END, {
+      "externalToken": externalToken,
+      "staticToken": staticToken,
+      "covariantToken": covariantToken,
+      "lateToken": lateToken,
+      "varFinalOrConst": varFinalOrConst,
+      "count": count,
+      "beginToken": beginToken,
+      "endToken": endToken
+    });
+  }
+
+  void beginTopLevelMethod(Token lastConsumed, Token externalToken) {
+    seen("TopLevelMethod", DirectParserASTType.BEGIN,
+        {"lastConsumed": lastConsumed, "externalToken": externalToken});
+  }
+
+  void endTopLevelMethod(Token beginToken, Token getOrSet, Token endToken) {
+    seen("TopLevelMethod", DirectParserASTType.END,
+        {"beginToken": beginToken, "getOrSet": getOrSet, "endToken": endToken});
+  }
+
+  void beginTryStatement(Token token) {
+    seen("TryStatement", DirectParserASTType.BEGIN, {"token": token});
+  }
+
+  void handleCaseMatch(Token caseKeyword, Token colon) {
+    seen("CaseMatch", DirectParserASTType.HANDLE,
+        {"caseKeyword": caseKeyword, "colon": colon});
+  }
+
+  void beginCatchClause(Token token) {
+    seen("CatchClause", DirectParserASTType.BEGIN, {"token": token});
+  }
+
+  void endCatchClause(Token token) {
+    seen("CatchClause", DirectParserASTType.END, {"token": token});
+  }
+
+  void handleCatchBlock(Token onKeyword, Token catchKeyword, Token comma) {
+    seen("CatchBlock", DirectParserASTType.HANDLE,
+        {"onKeyword": onKeyword, "catchKeyword": catchKeyword, "comma": comma});
+  }
+
+  void handleFinallyBlock(Token finallyKeyword) {
+    seen("FinallyBlock", DirectParserASTType.HANDLE,
+        {"finallyKeyword": finallyKeyword});
+  }
+
+  void endTryStatement(int catchCount, Token tryKeyword, Token finallyKeyword) {
+    seen("TryStatement", DirectParserASTType.END, {
+      "catchCount": catchCount,
+      "tryKeyword": tryKeyword,
+      "finallyKeyword": finallyKeyword
+    });
+  }
+
+  void handleType(Token beginToken, Token questionMark) {
+    seen("Type", DirectParserASTType.HANDLE,
+        {"beginToken": beginToken, "questionMark": questionMark});
+  }
+
+  void handleNonNullAssertExpression(Token bang) {
+    seen("NonNullAssertExpression", DirectParserASTType.HANDLE, {"bang": bang});
+  }
+
+  void handleNoName(Token token) {
+    seen("NoName", DirectParserASTType.HANDLE, {"token": token});
+  }
+
+  void beginFunctionType(Token beginToken) {
+    seen("FunctionType", DirectParserASTType.BEGIN, {"beginToken": beginToken});
+  }
+
+  void endFunctionType(Token functionToken, Token questionMark) {
+    seen("FunctionType", DirectParserASTType.END,
+        {"functionToken": functionToken, "questionMark": questionMark});
+  }
+
+  void beginTypeArguments(Token token) {
+    seen("TypeArguments", DirectParserASTType.BEGIN, {"token": token});
+  }
+
+  void endTypeArguments(int count, Token beginToken, Token endToken) {
+    seen("TypeArguments", DirectParserASTType.END,
+        {"count": count, "beginToken": beginToken, "endToken": endToken});
+  }
+
+  void handleInvalidTypeArguments(Token token) {
+    seen("InvalidTypeArguments", DirectParserASTType.HANDLE, {"token": token});
+  }
+
+  void handleNoTypeArguments(Token token) {
+    seen("NoTypeArguments", DirectParserASTType.HANDLE, {"token": token});
+  }
+
+  void beginTypeVariable(Token token) {
+    seen("TypeVariable", DirectParserASTType.BEGIN, {"token": token});
+  }
+
+  void handleTypeVariablesDefined(Token token, int count) {
+    seen("TypeVariablesDefined", DirectParserASTType.HANDLE,
+        {"token": token, "count": count});
+  }
+
+  void endTypeVariable(
+      Token token, int index, Token extendsOrSuper, Token variance) {
+    seen("TypeVariable", DirectParserASTType.END, {
+      "token": token,
+      "index": index,
+      "extendsOrSuper": extendsOrSuper,
+      "variance": variance
+    });
+  }
+
+  void beginTypeVariables(Token token) {
+    seen("TypeVariables", DirectParserASTType.BEGIN, {"token": token});
+  }
+
+  void endTypeVariables(Token beginToken, Token endToken) {
+    seen("TypeVariables", DirectParserASTType.END,
+        {"beginToken": beginToken, "endToken": endToken});
+  }
+
+  void beginFunctionExpression(Token token) {
+    seen("FunctionExpression", DirectParserASTType.BEGIN, {"token": token});
+  }
+
+  void endFunctionExpression(Token beginToken, Token token) {
+    seen("FunctionExpression", DirectParserASTType.END,
+        {"beginToken": beginToken, "token": token});
+  }
+
+  void beginVariablesDeclaration(
+      Token token, Token lateToken, Token varFinalOrConst) {
+    seen("VariablesDeclaration", DirectParserASTType.BEGIN, {
+      "token": token,
+      "lateToken": lateToken,
+      "varFinalOrConst": varFinalOrConst
+    });
+  }
+
+  void endVariablesDeclaration(int count, Token endToken) {
+    seen("VariablesDeclaration", DirectParserASTType.END,
+        {"count": count, "endToken": endToken});
+  }
+
+  void beginWhileStatement(Token token) {
+    seen("WhileStatement", DirectParserASTType.BEGIN, {"token": token});
+  }
+
+  void endWhileStatement(Token whileKeyword, Token endToken) {
+    seen("WhileStatement", DirectParserASTType.END,
+        {"whileKeyword": whileKeyword, "endToken": endToken});
+  }
+
+  void beginAsOperatorType(Token operator) {
+    seen("AsOperatorType", DirectParserASTType.BEGIN, {"operator": operator});
+  }
+
+  void endAsOperatorType(Token operator) {
+    seen("AsOperatorType", DirectParserASTType.END, {"operator": operator});
+  }
+
+  void handleAsOperator(Token operator) {
+    seen("AsOperator", DirectParserASTType.HANDLE, {"operator": operator});
+  }
+
+  void handleAssignmentExpression(Token token) {
+    seen("AssignmentExpression", DirectParserASTType.HANDLE, {"token": token});
+  }
+
+  void beginBinaryExpression(Token token) {
+    seen("BinaryExpression", DirectParserASTType.BEGIN, {"token": token});
+  }
+
+  void endBinaryExpression(Token token) {
+    seen("BinaryExpression", DirectParserASTType.END, {"token": token});
+  }
+
+  void handleEndingBinaryExpression(Token token) {
+    seen(
+        "EndingBinaryExpression", DirectParserASTType.HANDLE, {"token": token});
+  }
+
+  void beginConditionalExpression(Token question) {
+    seen("ConditionalExpression", DirectParserASTType.BEGIN,
+        {"question": question});
+  }
+
+  void handleConditionalExpressionColon() {
+    seen("ConditionalExpressionColon", DirectParserASTType.HANDLE, {});
+  }
+
+  void endConditionalExpression(Token question, Token colon) {
+    seen("ConditionalExpression", DirectParserASTType.END,
+        {"question": question, "colon": colon});
+  }
+
+  void beginConstExpression(Token constKeyword) {
+    seen("ConstExpression", DirectParserASTType.BEGIN,
+        {"constKeyword": constKeyword});
+  }
+
+  void endConstExpression(Token token) {
+    seen("ConstExpression", DirectParserASTType.END, {"token": token});
+  }
+
+  void beginForControlFlow(Token awaitToken, Token forToken) {
+    seen("ForControlFlow", DirectParserASTType.BEGIN,
+        {"awaitToken": awaitToken, "forToken": forToken});
+  }
+
+  void endForControlFlow(Token token) {
+    seen("ForControlFlow", DirectParserASTType.END, {"token": token});
+  }
+
+  void endForInControlFlow(Token token) {
+    seen("ForInControlFlow", DirectParserASTType.END, {"token": token});
+  }
+
+  void beginIfControlFlow(Token ifToken) {
+    seen("IfControlFlow", DirectParserASTType.BEGIN, {"ifToken": ifToken});
+  }
+
+  void handleThenControlFlow(Token token) {
+    seen("ThenControlFlow", DirectParserASTType.HANDLE, {"token": token});
+  }
+
+  void handleElseControlFlow(Token elseToken) {
+    seen("ElseControlFlow", DirectParserASTType.HANDLE,
+        {"elseToken": elseToken});
+  }
+
+  void endIfControlFlow(Token token) {
+    seen("IfControlFlow", DirectParserASTType.END, {"token": token});
+  }
+
+  void endIfElseControlFlow(Token token) {
+    seen("IfElseControlFlow", DirectParserASTType.END, {"token": token});
+  }
+
+  void handleSpreadExpression(Token spreadToken) {
+    seen("SpreadExpression", DirectParserASTType.HANDLE,
+        {"spreadToken": spreadToken});
+  }
+
+  void beginFunctionTypedFormalParameter(Token token) {
+    seen("FunctionTypedFormalParameter", DirectParserASTType.BEGIN,
+        {"token": token});
+  }
+
+  void endFunctionTypedFormalParameter(Token nameToken, Token question) {
+    seen("FunctionTypedFormalParameter", DirectParserASTType.END,
+        {"nameToken": nameToken, "question": question});
+  }
+
+  void handleIdentifier(Token token, IdentifierContext context) {
+    seen("Identifier", DirectParserASTType.HANDLE,
+        {"token": token, "context": context});
+  }
+
+  void handleIndexedExpression(
+      Token question, Token openSquareBracket, Token closeSquareBracket) {
+    seen("IndexedExpression", DirectParserASTType.HANDLE, {
+      "question": question,
+      "openSquareBracket": openSquareBracket,
+      "closeSquareBracket": closeSquareBracket
+    });
+  }
+
+  void beginIsOperatorType(Token operator) {
+    seen("IsOperatorType", DirectParserASTType.BEGIN, {"operator": operator});
+  }
+
+  void endIsOperatorType(Token operator) {
+    seen("IsOperatorType", DirectParserASTType.END, {"operator": operator});
+  }
+
+  void handleIsOperator(Token isOperator, Token not) {
+    seen("IsOperator", DirectParserASTType.HANDLE,
+        {"isOperator": isOperator, "not": not});
+  }
+
+  void handleLiteralBool(Token token) {
+    seen("LiteralBool", DirectParserASTType.HANDLE, {"token": token});
+  }
+
+  void handleBreakStatement(
+      bool hasTarget, Token breakKeyword, Token endToken) {
+    seen("BreakStatement", DirectParserASTType.HANDLE, {
+      "hasTarget": hasTarget,
+      "breakKeyword": breakKeyword,
+      "endToken": endToken
+    });
+  }
+
+  void handleContinueStatement(
+      bool hasTarget, Token continueKeyword, Token endToken) {
+    seen("ContinueStatement", DirectParserASTType.HANDLE, {
+      "hasTarget": hasTarget,
+      "continueKeyword": continueKeyword,
+      "endToken": endToken
+    });
+  }
+
+  void handleEmptyStatement(Token token) {
+    seen("EmptyStatement", DirectParserASTType.HANDLE, {"token": token});
+  }
+
+  void beginAssert(Token assertKeyword, Assert kind) {
+    seen("Assert", DirectParserASTType.BEGIN,
+        {"assertKeyword": assertKeyword, "kind": kind});
+  }
+
+  void endAssert(Token assertKeyword, Assert kind, Token leftParenthesis,
+      Token commaToken, Token semicolonToken) {
+    seen("Assert", DirectParserASTType.END, {
+      "assertKeyword": assertKeyword,
+      "kind": kind,
+      "leftParenthesis": leftParenthesis,
+      "commaToken": commaToken,
+      "semicolonToken": semicolonToken
+    });
+  }
+
+  void handleLiteralDouble(Token token) {
+    seen("LiteralDouble", DirectParserASTType.HANDLE, {"token": token});
+  }
+
+  void handleLiteralInt(Token token) {
+    seen("LiteralInt", DirectParserASTType.HANDLE, {"token": token});
+  }
+
+  void handleLiteralList(
+      int count, Token leftBracket, Token constKeyword, Token rightBracket) {
+    seen("LiteralList", DirectParserASTType.HANDLE, {
+      "count": count,
+      "leftBracket": leftBracket,
+      "constKeyword": constKeyword,
+      "rightBracket": rightBracket
+    });
+  }
+
+  void handleLiteralSetOrMap(
+    int count,
+    Token leftBrace,
+    Token constKeyword,
+    Token rightBrace,
+    bool hasSetEntry,
+  ) {
+    seen("LiteralSetOrMap", DirectParserASTType.HANDLE, {
+      "count": count,
+      "leftBrace": leftBrace,
+      "constKeyword": constKeyword,
+      "rightBrace": rightBrace,
+      "hasSetEntry": hasSetEntry
+    });
+  }
+
+  void handleLiteralNull(Token token) {
+    seen("LiteralNull", DirectParserASTType.HANDLE, {"token": token});
+  }
+
+  void handleNativeClause(Token nativeToken, bool hasName) {
+    seen("NativeClause", DirectParserASTType.HANDLE,
+        {"nativeToken": nativeToken, "hasName": hasName});
+  }
+
+  void handleNamedArgument(Token colon) {
+    seen("NamedArgument", DirectParserASTType.HANDLE, {"colon": colon});
+  }
+
+  void beginNewExpression(Token token) {
+    seen("NewExpression", DirectParserASTType.BEGIN, {"token": token});
+  }
+
+  void endNewExpression(Token token) {
+    seen("NewExpression", DirectParserASTType.END, {"token": token});
+  }
+
+  void handleNoArguments(Token token) {
+    seen("NoArguments", DirectParserASTType.HANDLE, {"token": token});
+  }
+
+  void handleNoConstructorReferenceContinuationAfterTypeArguments(Token token) {
+    seen("NoConstructorReferenceContinuationAfterTypeArguments",
+        DirectParserASTType.HANDLE, {"token": token});
+  }
+
+  void handleNoType(Token lastConsumed) {
+    seen("NoType", DirectParserASTType.HANDLE, {"lastConsumed": lastConsumed});
+  }
+
+  void handleNoTypeVariables(Token token) {
+    seen("NoTypeVariables", DirectParserASTType.HANDLE, {"token": token});
+  }
+
+  void handleOperator(Token token) {
+    seen("Operator", DirectParserASTType.HANDLE, {"token": token});
+  }
+
+  void handleSymbolVoid(Token token) {
+    seen("SymbolVoid", DirectParserASTType.HANDLE, {"token": token});
+  }
+
+  void handleOperatorName(Token operatorKeyword, Token token) {
+    seen("OperatorName", DirectParserASTType.HANDLE,
+        {"operatorKeyword": operatorKeyword, "token": token});
+  }
+
+  void handleInvalidOperatorName(Token operatorKeyword, Token token) {
+    seen("InvalidOperatorName", DirectParserASTType.HANDLE,
+        {"operatorKeyword": operatorKeyword, "token": token});
+  }
+
+  void handleParenthesizedCondition(Token token) {
+    seen(
+        "ParenthesizedCondition", DirectParserASTType.HANDLE, {"token": token});
+  }
+
+  void handleParenthesizedExpression(Token token) {
+    seen("ParenthesizedExpression", DirectParserASTType.HANDLE,
+        {"token": token});
+  }
+
+  void handleQualified(Token period) {
+    seen("Qualified", DirectParserASTType.HANDLE, {"period": period});
+  }
+
+  void handleStringPart(Token token) {
+    seen("StringPart", DirectParserASTType.HANDLE, {"token": token});
+  }
+
+  void handleSuperExpression(Token token, IdentifierContext context) {
+    seen("SuperExpression", DirectParserASTType.HANDLE,
+        {"token": token, "context": context});
+  }
+
+  void beginSwitchCase(int labelCount, int expressionCount, Token firstToken) {
+    seen("SwitchCase", DirectParserASTType.BEGIN, {
+      "labelCount": labelCount,
+      "expressionCount": expressionCount,
+      "firstToken": firstToken
+    });
+  }
+
+  void endSwitchCase(
+      int labelCount,
+      int expressionCount,
+      Token defaultKeyword,
+      Token colonAfterDefault,
+      int statementCount,
+      Token firstToken,
+      Token endToken) {
+    seen("SwitchCase", DirectParserASTType.END, {
+      "labelCount": labelCount,
+      "expressionCount": expressionCount,
+      "defaultKeyword": defaultKeyword,
+      "colonAfterDefault": colonAfterDefault,
+      "statementCount": statementCount,
+      "firstToken": firstToken,
+      "endToken": endToken
+    });
+  }
+
+  void handleThisExpression(Token token, IdentifierContext context) {
+    seen("ThisExpression", DirectParserASTType.HANDLE,
+        {"token": token, "context": context});
+  }
+
+  void handleUnaryPostfixAssignmentExpression(Token token) {
+    seen("UnaryPostfixAssignmentExpression", DirectParserASTType.HANDLE,
+        {"token": token});
+  }
+
+  void handleUnaryPrefixExpression(Token token) {
+    seen("UnaryPrefixExpression", DirectParserASTType.HANDLE, {"token": token});
+  }
+
+  void handleUnaryPrefixAssignmentExpression(Token token) {
+    seen("UnaryPrefixAssignmentExpression", DirectParserASTType.HANDLE,
+        {"token": token});
+  }
+
+  void beginFormalParameterDefaultValueExpression() {
+    seen(
+        "FormalParameterDefaultValueExpression", DirectParserASTType.BEGIN, {});
+  }
+
+  void endFormalParameterDefaultValueExpression() {
+    seen("FormalParameterDefaultValueExpression", DirectParserASTType.END, {});
+  }
+
+  void handleValuedFormalParameter(Token equals, Token token) {
+    seen("ValuedFormalParameter", DirectParserASTType.HANDLE,
+        {"equals": equals, "token": token});
+  }
+
+  void handleFormalParameterWithoutValue(Token token) {
+    seen("FormalParameterWithoutValue", DirectParserASTType.HANDLE,
+        {"token": token});
+  }
+
+  void handleVoidKeyword(Token token) {
+    seen("VoidKeyword", DirectParserASTType.HANDLE, {"token": token});
+  }
+
+  void handleVoidKeywordWithTypeArguments(Token token) {
+    seen("VoidKeywordWithTypeArguments", DirectParserASTType.HANDLE,
+        {"token": token});
+  }
+
+  void beginYieldStatement(Token token) {
+    seen("YieldStatement", DirectParserASTType.BEGIN, {"token": token});
+  }
+
+  void endYieldStatement(Token yieldToken, Token starToken, Token endToken) {
+    seen("YieldStatement", DirectParserASTType.END, {
+      "yieldToken": yieldToken,
+      "starToken": starToken,
+      "endToken": endToken
+    });
+  }
+
+  void endInvalidYieldStatement(Token beginToken, Token starToken,
+      Token endToken, MessageCode errorCode) {
+    seen("InvalidYieldStatement", DirectParserASTType.END, {
+      "beginToken": beginToken,
+      "starToken": starToken,
+      "endToken": endToken,
+      "errorCode": errorCode
+    });
+  }
+
+  void handleRecoverableError(
+      Message message, Token startToken, Token endToken) {
+    seen("RecoverableError", DirectParserASTType.HANDLE,
+        {"message": message, "startToken": startToken, "endToken": endToken});
+  }
+
+  void handleErrorToken(ErrorToken token) {
+    seen("ErrorToken", DirectParserASTType.HANDLE, {"token": token});
+  }
+
+  void handleUnescapeError(
+      Message message, Token location, int stringOffset, int length) {
+    seen("UnescapeError", DirectParserASTType.HANDLE, {
+      "message": message,
+      "location": location,
+      "stringOffset": stringOffset,
+      "length": length
+    });
+  }
+
+  void handleInvalidStatement(Token token, Message message) {
+    seen("InvalidStatement", DirectParserASTType.HANDLE,
+        {"token": token, "message": message});
+  }
+
+  void handleScript(Token token) {
+    seen("Script", DirectParserASTType.HANDLE, {"token": token});
+  }
+
+  void handleCommentReferenceText(String referenceSource, int referenceOffset) {
+    seen("CommentReferenceText", DirectParserASTType.HANDLE, {
+      "referenceSource": referenceSource,
+      "referenceOffset": referenceOffset
+    });
+  }
+
+  void handleCommentReference(
+      Token newKeyword, Token prefix, Token period, Token token) {
+    seen("CommentReference", DirectParserASTType.HANDLE, {
+      "newKeyword": newKeyword,
+      "prefix": prefix,
+      "period": period,
+      "token": token
+    });
+  }
+
+  void handleNoCommentReference() {
+    seen("NoCommentReference", DirectParserASTType.HANDLE, {});
+  }
+}
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 3c87cac..ca25109 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
@@ -28,7 +28,7 @@
       beginArguments(()
       endArguments(0, (, ))
       handleSend(value, ;)
-      endBinaryExpression(.)
+      handleEndingBinaryExpression(.)
       handleExpressionFunctionBody(=>, ;)
     endTopLevelMethod(Future, null, ;)
   endTopLevelDeclaration(void)
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 56c7a0d..2bc0bed 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
@@ -55,7 +55,7 @@
                             listener: beginArguments(()
                             listener: endArguments(0, (, ))
                       listener: handleSend(value, ;)
-                listener: endBinaryExpression(.)
+                listener: handleEndingBinaryExpression(.)
             ensureSemicolon())
             listener: handleExpressionFunctionBody(=>, ;)
             inGenerator()
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 e21f896..caa817a 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,30 +527,32 @@
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          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, ;)
-      endMember()
-      beginMetadataStar(int)
-      endMetadataStar(0)
-      beginMember()
-        handleIdentifier(int, typeReference)
-        handleNoTypeArguments(A)
-        handleType(int, null)
-        handleIdentifier(A, fieldDeclaration)
-        handleNoFieldInitializer(,)
-        handleIdentifier(Foo, fieldDeclaration)
-        handleRecoverableError(MemberWithSameNameAsClass, Foo, Foo)
-        handleNoFieldInitializer(,)
-        handleIdentifier(B, fieldDeclaration)
-        handleNoFieldInitializer(;)
-      endClassFields(null, null, null, null, null, null, 3, int, ;)
-    endMember()
-  endClassOrMixinBody(DeclarationKind.Class, 19, {, })
-endClassDeclaration(class, })
-endTopLevelDeclaration()
+          beginFields(})
+            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, ;)
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(A)
+            handleType(int, null)
+            handleIdentifier(A, fieldDeclaration)
+            handleNoFieldInitializer(,)
+            handleIdentifier(Foo, fieldDeclaration)
+            handleRecoverableError(MemberWithSameNameAsClass, Foo, Foo)
+            handleNoFieldInitializer(,)
+            handleIdentifier(B, fieldDeclaration)
+            handleNoFieldInitializer(;)
+          endClassFields(null, null, null, null, null, null, 3, int, ;)
+        endMember()
+      endClassOrMixinBody(DeclarationKind.Class, 19, {, })
+    endClassDeclaration(class, })
+  endTopLevelDeclaration()
 endCompilationUnit(1, )
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 5590321..4b28f49 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
@@ -991,6 +991,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseFields(}, null, null, null, null, null, null, }, Instance of 'SimpleType', Foo, DeclarationKind.Class, Foo, false)
+                listener: beginFields(})
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(Foo)
                 listener: handleType(int, null)
@@ -1009,6 +1010,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', A, DeclarationKind.Class, Foo, false)
+                listener: beginFields(;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(A)
                 listener: handleType(int, null)
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 60c0efb..6514ad1 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,124 +12,126 @@
   beginMetadataStar(const)
   endMetadataStar(0)
   beginTopLevelMember(const)
-    handleNoType(const)
-    handleIdentifier(annotation, topLevelVariableDeclaration)
-    beginFieldInitializer(=)
-      handleLiteralNull(null)
-    endFieldInitializer(=, ;)
-  endTopLevelFields(null, null, null, null, const, 1, const, ;)
-endTopLevelDeclaration(class)
-beginMetadataStar(class)
-endMetadataStar(0)
-beginClassOrNamedMixinApplicationPrelude(class)
-  handleIdentifier(Annotation, classOrMixinDeclaration)
-  handleNoTypeVariables({)
-  beginClassDeclaration(class, null, Annotation)
-    handleNoType(Annotation)
-    handleClassExtends(null, 1)
-    handleClassNoWithClause()
-    handleClassOrMixinImplements(null, 0)
-    handleClassHeader(class, class, null)
-    beginClassOrMixinBody(DeclarationKind.Class, {)
-      beginMetadataStar(final)
-      endMetadataStar(0)
-      beginMember()
-        handleIdentifier(String, typeReference)
-        handleNoTypeArguments(message)
-        handleType(String, null)
-        handleIdentifier(message, fieldDeclaration)
-        handleNoFieldInitializer(;)
-      endClassFields(null, null, null, null, null, final, 1, final, ;)
-    endMember()
-    beginMetadataStar(const)
-    endMetadataStar(0)
-    beginMember()
-      beginMethod(null, null, null, const, null, Annotation)
-        handleNoType(const)
-        handleIdentifier(Annotation, methodDeclaration)
-        handleNoTypeVariables(()
-        beginFormalParameters((, MemberKind.NonStaticMethod)
-          beginMetadataStar(this)
-          endMetadataStar(0)
-          beginFormalParameter(this, MemberKind.NonStaticMethod, null, null, null)
-            handleNoType(()
-            handleIdentifier(message, fieldInitializer)
-            handleFormalParameterWithoutValue())
-          endFormalParameter(this, ., message, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
-        endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
-        handleNoInitializers()
-        handleAsyncModifier(null, null)
-        handleEmptyFunctionBody(;)
-      endClassConstructor(null, const, (, null, ;)
-    endMember()
-  endClassOrMixinBody(DeclarationKind.Class, 2, {, })
-endClassDeclaration(class, })
-endTopLevelDeclaration(class)
-beginMetadataStar(class)
-endMetadataStar(0)
-beginClassOrNamedMixinApplicationPrelude(class)
-handleIdentifier(A, classOrMixinDeclaration)
-beginTypeVariables(<)
-  beginMetadataStar(E)
+    beginFields()
+      handleNoType(const)
+      handleIdentifier(annotation, topLevelVariableDeclaration)
+      beginFieldInitializer(=)
+        handleLiteralNull(null)
+      endFieldInitializer(=, ;)
+    endTopLevelFields(null, null, null, null, const, 1, const, ;)
+  endTopLevelDeclaration(class)
+  beginMetadataStar(class)
   endMetadataStar(0)
-  handleIdentifier(E, typeVariableDeclaration)
-  beginTypeVariable(E)
-    handleTypeVariablesDefined(E, 1)
-    handleNoType(E)
-  endTypeVariable(>, 0, null, null)
-endTypeVariables(<, >)
-beginClassDeclaration(class, null, A)
-  handleNoType(>)
-  handleClassExtends(null, 1)
-  handleClassNoWithClause()
-  handleClassOrMixinImplements(null, 0)
-  handleClassHeader(class, class, null)
-  beginClassOrMixinBody(DeclarationKind.Class, {)
-  endClassOrMixinBody(DeclarationKind.Class, 0, {, })
-endClassDeclaration(class, })
-endTopLevelDeclaration(class)
-beginMetadataStar(class)
-endMetadataStar(0)
-beginClassOrNamedMixinApplicationPrelude(class)
-handleIdentifier(C, classOrMixinDeclaration)
-handleNoTypeVariables({)
-beginClassDeclaration(class, null, C)
-  handleNoType(C)
-  handleClassExtends(null, 1)
-  handleClassNoWithClause()
-  handleClassOrMixinImplements(null, 0)
-  handleClassHeader(class, class, null)
-  beginClassOrMixinBody(DeclarationKind.Class, {)
-    beginMetadataStar(m)
-    endMetadataStar(0)
-    beginMember()
-      beginMethod(null, null, null, null, null, m)
-        handleNoType({)
-        handleIdentifier(m, methodDeclaration)
-        handleNoTypeVariables(()
-        beginFormalParameters((, MemberKind.NonStaticMethod)
-        endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
-        handleNoInitializers()
-        handleAsyncModifier(null, null)
-        beginNewExpression(new)
-          handleIdentifier(A, constructorReference)
-          beginConstructorReference(A)
-            beginTypeArguments(<)
-              handleRecoverableError(AnnotationOnTypeArgument, @, annotation)
-              handleRecoverableError(AnnotationOnTypeArgument, @, ))
-              handleIdentifier(C, typeReference)
-              handleNoTypeArguments(>)
-              handleType(C, null)
-            endTypeArguments(1, <, >)
-            handleNoConstructorReferenceContinuationAfterTypeArguments(()
-          endConstructorReference(A, null, ()
-          beginArguments(()
-          endArguments(0, (, ))
-        endNewExpression(new)
-        handleExpressionFunctionBody(=>, ;)
-      endClassMethod(null, m, (, null, ;)
-    endMember()
-  endClassOrMixinBody(DeclarationKind.Class, 1, {, })
-endClassDeclaration(class, })
-endTopLevelDeclaration()
+  beginClassOrNamedMixinApplicationPrelude(class)
+    handleIdentifier(Annotation, classOrMixinDeclaration)
+    handleNoTypeVariables({)
+    beginClassDeclaration(class, null, Annotation)
+      handleNoType(Annotation)
+      handleClassExtends(null, 1)
+      handleClassNoWithClause()
+      handleClassOrMixinImplements(null, 0)
+      handleClassHeader(class, class, null)
+      beginClassOrMixinBody(DeclarationKind.Class, {)
+        beginMetadataStar(final)
+        endMetadataStar(0)
+        beginMember()
+          beginFields({)
+            handleIdentifier(String, typeReference)
+            handleNoTypeArguments(message)
+            handleType(String, null)
+            handleIdentifier(message, fieldDeclaration)
+            handleNoFieldInitializer(;)
+          endClassFields(null, null, null, null, null, final, 1, final, ;)
+        endMember()
+        beginMetadataStar(const)
+        endMetadataStar(0)
+        beginMember()
+          beginMethod(null, null, null, const, null, Annotation)
+            handleNoType(const)
+            handleIdentifier(Annotation, methodDeclaration)
+            handleNoTypeVariables(()
+            beginFormalParameters((, MemberKind.NonStaticMethod)
+              beginMetadataStar(this)
+              endMetadataStar(0)
+              beginFormalParameter(this, MemberKind.NonStaticMethod, null, null, null)
+                handleNoType(()
+                handleIdentifier(message, fieldInitializer)
+                handleFormalParameterWithoutValue())
+              endFormalParameter(this, ., message, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+            endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+            handleNoInitializers()
+            handleAsyncModifier(null, null)
+            handleEmptyFunctionBody(;)
+          endClassConstructor(null, const, (, null, ;)
+        endMember()
+      endClassOrMixinBody(DeclarationKind.Class, 2, {, })
+    endClassDeclaration(class, })
+  endTopLevelDeclaration(class)
+  beginMetadataStar(class)
+  endMetadataStar(0)
+  beginClassOrNamedMixinApplicationPrelude(class)
+    handleIdentifier(A, classOrMixinDeclaration)
+    beginTypeVariables(<)
+      beginMetadataStar(E)
+      endMetadataStar(0)
+      handleIdentifier(E, typeVariableDeclaration)
+      beginTypeVariable(E)
+        handleTypeVariablesDefined(E, 1)
+        handleNoType(E)
+      endTypeVariable(>, 0, null, null)
+    endTypeVariables(<, >)
+    beginClassDeclaration(class, null, A)
+      handleNoType(>)
+      handleClassExtends(null, 1)
+      handleClassNoWithClause()
+      handleClassOrMixinImplements(null, 0)
+      handleClassHeader(class, class, null)
+      beginClassOrMixinBody(DeclarationKind.Class, {)
+      endClassOrMixinBody(DeclarationKind.Class, 0, {, })
+    endClassDeclaration(class, })
+  endTopLevelDeclaration(class)
+  beginMetadataStar(class)
+  endMetadataStar(0)
+  beginClassOrNamedMixinApplicationPrelude(class)
+    handleIdentifier(C, classOrMixinDeclaration)
+    handleNoTypeVariables({)
+    beginClassDeclaration(class, null, C)
+      handleNoType(C)
+      handleClassExtends(null, 1)
+      handleClassNoWithClause()
+      handleClassOrMixinImplements(null, 0)
+      handleClassHeader(class, class, null)
+      beginClassOrMixinBody(DeclarationKind.Class, {)
+        beginMetadataStar(m)
+        endMetadataStar(0)
+        beginMember()
+          beginMethod(null, null, null, null, null, m)
+            handleNoType({)
+            handleIdentifier(m, methodDeclaration)
+            handleNoTypeVariables(()
+            beginFormalParameters((, MemberKind.NonStaticMethod)
+            endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+            handleNoInitializers()
+            handleAsyncModifier(null, null)
+            beginNewExpression(new)
+              handleIdentifier(A, constructorReference)
+              beginConstructorReference(A)
+                beginTypeArguments(<)
+                  handleRecoverableError(AnnotationOnTypeArgument, @, annotation)
+                  handleRecoverableError(AnnotationOnTypeArgument, @, ))
+                  handleIdentifier(C, typeReference)
+                  handleNoTypeArguments(>)
+                  handleType(C, null)
+                endTypeArguments(1, <, >)
+                handleNoConstructorReferenceContinuationAfterTypeArguments(()
+              endConstructorReference(A, null, ()
+              beginArguments(()
+              endArguments(0, (, ))
+            endNewExpression(new)
+            handleExpressionFunctionBody(=>, ;)
+          endClassMethod(null, m, (, null, ;)
+        endMember()
+      endClassOrMixinBody(DeclarationKind.Class, 1, {, })
+    endClassDeclaration(class, })
+  endTopLevelDeclaration()
 endCompilationUnit(4, )
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 cf8c8fc..14fe0c9 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
@@ -9,6 +9,7 @@
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(const)
       parseFields(, null, null, null, null, null, const, const, Instance of 'NoType', annotation, DeclarationKind.TopLevel, null, false)
+        listener: beginFields()
         listener: handleNoType(const)
         ensureIdentifierPotentiallyRecovered(const, topLevelVariableDeclaration, false)
           listener: handleIdentifier(annotation, topLevelVariableDeclaration)
@@ -54,6 +55,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseFields({, null, null, null, null, null, final, final, Instance of 'SimpleType', message, DeclarationKind.Class, Annotation, false)
+                listener: beginFields({)
                 listener: handleIdentifier(String, typeReference)
                 listener: handleNoTypeArguments(message)
                 listener: handleType(String, null)
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 0525878..6e8b00d 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
@@ -44,18 +44,18 @@
           handleNoArguments(<)
           handleSend(T, <)
           beginBinaryExpression(<)
-          handleIdentifier(R, expression)
-          handleNoTypeArguments(()
-          beginArguments(()
-            beginTypeArguments(<)
-              handleIdentifier(Z, typeReference)
-              handleNoTypeArguments())
-              handleType(Z, null)
-            endTypeArguments(1, <, >)
-            handleRecoverableError(Message[ExpectedButGot, Expected '[' before this., null, {string: [}], , )
-            handleLiteralList(0, [, null, ])
-          endArguments(1, (, ))
-          handleSend(R, })
+            handleIdentifier(R, expression)
+            handleNoTypeArguments(()
+            beginArguments(()
+              beginTypeArguments(<)
+                handleIdentifier(Z, typeReference)
+                handleNoTypeArguments())
+                handleType(Z, null)
+              endTypeArguments(1, <, >)
+              handleRecoverableError(Message[ExpectedButGot, Expected '[' before this., null, {string: [}], , )
+              handleLiteralList(0, [, null, ])
+            endArguments(1, (, ))
+            handleSend(R, })
           endBinaryExpression(<)
         endArguments(1, (, ))
         handleSend(m, })
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_39033.crash_dart.expect b/pkg/front_end/parser_testcases/error_recovery/issue_39033.crash_dart.expect
index 852c662..5eccfef 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_39033.crash_dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_39033.crash_dart.expect
@@ -15,23 +15,24 @@
 beginCompilationUnit(typedef)
   beginMetadataStar(typedef)
   endMetadataStar(0)
-  beginFunctionTypeAlias(typedef)
-    handleIdentifier(F, typedefDeclaration)
-    beginTypeVariables(<)
-      beginMetadataStar(Glib)
-      endMetadataStar(0)
-      handleIdentifier(Glib, typeVariableDeclaration)
-      beginTypeVariable(Glib)
-        handleTypeVariablesDefined(Glib, 1)
-        handleNoType(Glib)
-      endTypeVariable(., 0, null, null)
-      handleRecoverableError(Message[ExpectedAfterButGot, Expected '>' after this., null, {string: >}], Glib, Glib)
-    endTypeVariables(<, >)
-    handleRecoverableError(Message[ExpectedType, Expected a type, but got ''., null, {token: }], , )
-    handleIdentifier(, typeReference)
-    handleNoTypeArguments()
-    handleType(, null)
-    handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], , )
-  endFunctionTypeAlias(typedef, =, ;)
-endTopLevelDeclaration()
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleIdentifier(F, typedefDeclaration)
+      beginTypeVariables(<)
+        beginMetadataStar(Glib)
+        endMetadataStar(0)
+        handleIdentifier(Glib, typeVariableDeclaration)
+        beginTypeVariable(Glib)
+          handleTypeVariablesDefined(Glib, 1)
+          handleNoType(Glib)
+        endTypeVariable(., 0, null, null)
+        handleRecoverableError(Message[ExpectedAfterButGot, Expected '>' after this., null, {string: >}], Glib, Glib)
+      endTypeVariables(<, >)
+      handleRecoverableError(Message[ExpectedType, Expected a type, but got ''., null, {token: }], , )
+      handleIdentifier(, typeReference)
+      handleNoTypeArguments()
+      handleType(, null)
+      handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], , )
+    endFunctionTypeAlias(typedef, =, ;)
+  endTopLevelDeclaration()
 endCompilationUnit(1, )
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 836daaf..311343c 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
@@ -9,6 +9,7 @@
     parseTopLevelKeywordDeclaration(, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           listener: handleIdentifier(F, typedefDeclaration)
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 f33c1aa..93bab66 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
@@ -63,18 +63,19 @@
   beginMetadataStar(b)
   endMetadataStar(0)
   beginTopLevelMember(b)
-    handleIdentifier(b, typeReference)
-    beginTypeArguments(<)
-      handleIdentifier(c, typeReference)
-      handleNoTypeArguments($)
-      handleType(c, null)
-      handleRecoverableError(Message[ExpectedAfterButGot, Expected '>' after this., null, {string: >}], c, c)
-    endTypeArguments(1, <, >)
-    handleType(b, null)
-    handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ''., null, {token: }], , )
-    handleIdentifier(, topLevelVariableDeclaration)
-    handleNoFieldInitializer()
-    handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], , )
-  endTopLevelFields(null, null, null, null, null, 1, b, ;)
-endTopLevelDeclaration()
+    beginFields(;)
+      handleIdentifier(b, typeReference)
+      beginTypeArguments(<)
+        handleIdentifier(c, typeReference)
+        handleNoTypeArguments($)
+        handleType(c, null)
+        handleRecoverableError(Message[ExpectedAfterButGot, Expected '>' after this., null, {string: >}], c, c)
+      endTypeArguments(1, <, >)
+      handleType(b, null)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ''., null, {token: }], , )
+      handleIdentifier(, topLevelVariableDeclaration)
+      handleNoFieldInitializer()
+      handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], , )
+    endTopLevelFields(null, null, null, null, null, 1, b, ;)
+  endTopLevelDeclaration()
 endCompilationUnit(4, )
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 8ae34cca..e188e74 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
@@ -76,6 +76,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(b)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'ComplexTypeInfo', $, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         ensureIdentifier(;, typeReference)
           listener: handleIdentifier(b, typeReference)
         listener: beginTypeArguments(<)
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 9cf60f7..b2c79c1 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
@@ -37,7 +37,7 @@
           handleNoTypeArguments([)
           handleNoArguments([)
           handleSend(foo, [)
-          endBinaryExpression(..)
+          handleEndingBinaryExpression(..)
           handleIdentifier(bar, expression)
           handleNoTypeArguments(])
           handleNoArguments(])
@@ -69,7 +69,7 @@
               handleNoTypeArguments([)
               handleNoArguments([)
               handleSend(foo, [)
-              endBinaryExpression(..)
+              handleEndingBinaryExpression(..)
               handleIdentifier(bar, expression)
               handleNoTypeArguments(])
               handleNoArguments(])
@@ -90,7 +90,7 @@
           handleNoTypeArguments([])
           handleNoArguments([])
           handleSend(foo, [])
-          endBinaryExpression(..)
+          handleEndingBinaryExpression(..)
           handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ']'., null, {token: ]}], ], ])
           handleIdentifier(, expression)
           handleNoTypeArguments(])
@@ -123,7 +123,7 @@
               handleNoTypeArguments([])
               handleNoArguments([])
               handleSend(foo, [])
-              endBinaryExpression(..)
+              handleEndingBinaryExpression(..)
               handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ']'., null, {token: ]}], ], ])
               handleIdentifier(, expression)
               handleNoTypeArguments(])
@@ -145,7 +145,7 @@
           handleNoTypeArguments([)
           handleNoArguments([)
           handleSend(foo, [)
-          endBinaryExpression(..)
+          handleEndingBinaryExpression(..)
           handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ']'., null, {token: ]}], ], ])
           handleIdentifier(, expression)
           handleNoTypeArguments(])
@@ -178,7 +178,7 @@
               handleNoTypeArguments([)
               handleNoArguments([)
               handleSend(foo, [)
-              endBinaryExpression(..)
+              handleEndingBinaryExpression(..)
               handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ']'., null, {token: ]}], ], ])
               handleIdentifier(, expression)
               handleNoTypeArguments(])
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 d09cea7..1a76870 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
@@ -52,7 +52,7 @@
                           parseArgumentsOpt(foo)
                             listener: handleNoArguments([)
                           listener: handleSend(foo, [)
-                        listener: endBinaryExpression(..)
+                        listener: handleEndingBinaryExpression(..)
                         parseArgumentOrIndexStar(foo, Instance of 'NoTypeParamOrArg', false)
                           parseExpression([)
                             parsePrecedenceExpression([, 1, true)
@@ -140,7 +140,7 @@
                                                               parseArgumentsOpt(foo)
                                                                 listener: handleNoArguments([)
                                                               listener: handleSend(foo, [)
-                                                            listener: endBinaryExpression(..)
+                                                            listener: handleEndingBinaryExpression(..)
                                                             parseArgumentOrIndexStar(foo, Instance of 'NoTypeParamOrArg', false)
                                                               parseExpression([)
                                                                 parsePrecedenceExpression([, 1, true)
@@ -191,7 +191,7 @@
                           parseArgumentsOpt(foo)
                             listener: handleNoArguments([])
                           listener: handleSend(foo, [])
-                        listener: endBinaryExpression(..)
+                        listener: handleEndingBinaryExpression(..)
                         rewriteSquareBrackets(foo)
                           link([, ])
                           rewriter()
@@ -284,7 +284,7 @@
                                                               parseArgumentsOpt(foo)
                                                                 listener: handleNoArguments([])
                                                               listener: handleSend(foo, [])
-                                                            listener: endBinaryExpression(..)
+                                                            listener: handleEndingBinaryExpression(..)
                                                             rewriteSquareBrackets(foo)
                                                               link([, ])
                                                               rewriter()
@@ -340,7 +340,7 @@
                           parseArgumentsOpt(foo)
                             listener: handleNoArguments([)
                           listener: handleSend(foo, [)
-                        listener: endBinaryExpression(..)
+                        listener: handleEndingBinaryExpression(..)
                         parseArgumentOrIndexStar(foo, Instance of 'NoTypeParamOrArg', false)
                           parseExpression([)
                             parsePrecedenceExpression([, 1, true)
@@ -430,7 +430,7 @@
                                                               parseArgumentsOpt(foo)
                                                                 listener: handleNoArguments([)
                                                               listener: handleSend(foo, [)
-                                                            listener: endBinaryExpression(..)
+                                                            listener: handleEndingBinaryExpression(..)
                                                             parseArgumentOrIndexStar(foo, Instance of 'NoTypeParamOrArg', false)
                                                               parseExpression([)
                                                                 parsePrecedenceExpression([, 1, true)
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 29dba13..d552dbc 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,865 +148,934 @@
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          handleIdentifier(int, typeReference)
-          handleNoTypeArguments(abstract)
-          handleType(int, null)
-          handleIdentifier(abstract, fieldDeclaration)
-          beginFieldInitializer(=)
-            handleLiteralInt(42)
-          endFieldInitializer(=, ;)
-        endClassFields(null, null, null, null, null, null, 1, int, ;)
-      endMember()
-      beginMetadataStar(int)
-      endMetadataStar(0)
-      beginMember()
-        handleIdentifier(int, typeReference)
-        handleNoTypeArguments(as)
-        handleType(int, null)
-        handleIdentifier(as, fieldDeclaration)
-        beginFieldInitializer(=)
-          handleLiteralInt(42)
-        endFieldInitializer(=, ;)
-      endClassFields(null, null, null, null, null, null, 1, int, ;)
-    endMember()
-    beginMetadataStar(int)
-    endMetadataStar(0)
-    beginMember()
-      handleIdentifier(int, typeReference)
-      handleNoTypeArguments(assert)
-      handleType(int, null)
-      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'assert'., null, {token: assert}], assert, assert)
-      handleIdentifier(assert, fieldDeclaration)
-      beginFieldInitializer(=)
-        handleLiteralInt(42)
-      endFieldInitializer(=, ;)
-    endClassFields(null, null, null, null, null, null, 1, int, ;)
-  endMember()
-  beginMetadataStar(int)
-  endMetadataStar(0)
-  beginMember()
-    handleIdentifier(int, typeReference)
-    handleNoTypeArguments(async)
-    handleType(int, null)
-    handleIdentifier(async, fieldDeclaration)
-    beginFieldInitializer(=)
-      handleLiteralInt(42)
-    endFieldInitializer(=, ;)
-  endClassFields(null, null, null, null, null, null, 1, int, ;)
-endMember()
-beginMetadataStar(int)
-endMetadataStar(0)
-beginMember()
-  handleIdentifier(int, typeReference)
-  handleNoTypeArguments(await)
-  handleType(int, null)
-  handleIdentifier(await, fieldDeclaration)
-  beginFieldInitializer(=)
-    handleLiteralInt(42)
-  endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, null, null, 1, int, ;)
-endMember()
-beginMetadataStar(int)
-endMetadataStar(0)
-beginMember()
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(break)
-handleType(int, null)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'break'., null, {token: break}], break, break)
-handleIdentifier(break, fieldDeclaration)
-beginFieldInitializer(=)
-  handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, null, null, 1, int, ;)
-endMember()
-beginMetadataStar(int)
-endMetadataStar(0)
-beginMember()
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(case)
-handleType(int, null)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'case'., null, {token: case}], case, case)
-handleIdentifier(case, fieldDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, null, null, 1, int, ;)
-endMember()
-beginMetadataStar(int)
-endMetadataStar(0)
-beginMember()
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(catch)
-handleType(int, null)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'catch'., null, {token: catch}], catch, catch)
-handleIdentifier(catch, fieldDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, null, null, 1, int, ;)
-endMember()
-beginMetadataStar(int)
-endMetadataStar(0)
-beginMember()
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(class)
-handleType(int, null)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'class'., null, {token: class}], class, class)
-handleIdentifier(class, fieldDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, null, null, 1, int, ;)
-endMember()
-beginMetadataStar(int)
-endMetadataStar(0)
-beginMember()
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(const)
-handleType(int, null)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'const'., null, {token: const}], const, const)
-handleIdentifier(const, fieldDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, null, null, 1, int, ;)
-endMember()
-beginMetadataStar(int)
-endMetadataStar(0)
-beginMember()
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(continue)
-handleType(int, null)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'continue'., null, {token: continue}], continue, continue)
-handleIdentifier(continue, fieldDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, null, null, 1, int, ;)
-endMember()
-beginMetadataStar(int)
-endMetadataStar(0)
-beginMember()
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(covariant)
-handleType(int, null)
-handleIdentifier(covariant, fieldDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, null, null, 1, int, ;)
-endMember()
-beginMetadataStar(int)
-endMetadataStar(0)
-beginMember()
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(default)
-handleType(int, null)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'default'., null, {token: default}], default, default)
-handleIdentifier(default, fieldDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, null, null, 1, int, ;)
-endMember()
-beginMetadataStar(int)
-endMetadataStar(0)
-beginMember()
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(deferred)
-handleType(int, null)
-handleIdentifier(deferred, fieldDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, null, null, 1, int, ;)
-endMember()
-beginMetadataStar(int)
-endMetadataStar(0)
-beginMember()
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(do)
-handleType(int, null)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'do'., null, {token: do}], do, do)
-handleIdentifier(do, fieldDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, null, null, 1, int, ;)
-endMember()
-beginMetadataStar(int)
-endMetadataStar(0)
-beginMember()
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(dynamic)
-handleType(int, null)
-handleIdentifier(dynamic, fieldDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, null, null, 1, int, ;)
-endMember()
-beginMetadataStar(int)
-endMetadataStar(0)
-beginMember()
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(else)
-handleType(int, null)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'else'., null, {token: else}], else, else)
-handleIdentifier(else, fieldDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, null, null, 1, int, ;)
-endMember()
-beginMetadataStar(int)
-endMetadataStar(0)
-beginMember()
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(enum)
-handleType(int, null)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'enum'., null, {token: enum}], enum, enum)
-handleIdentifier(enum, fieldDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, null, null, 1, int, ;)
-endMember()
-beginMetadataStar(int)
-endMetadataStar(0)
-beginMember()
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(export)
-handleType(int, null)
-handleIdentifier(export, fieldDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, null, null, 1, int, ;)
-endMember()
-beginMetadataStar(int)
-endMetadataStar(0)
-beginMember()
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(extends)
-handleType(int, null)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'extends'., null, {token: extends}], extends, extends)
-handleIdentifier(extends, fieldDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, null, null, 1, int, ;)
-endMember()
-beginMetadataStar(int)
-endMetadataStar(0)
-beginMember()
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(extension)
-handleType(int, null)
-handleIdentifier(extension, fieldDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, null, null, 1, int, ;)
-endMember()
-beginMetadataStar(int)
-endMetadataStar(0)
-beginMember()
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(external)
-handleType(int, null)
-handleIdentifier(external, fieldDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, null, null, 1, int, ;)
-endMember()
-beginMetadataStar(int)
-endMetadataStar(0)
-beginMember()
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(factory)
-handleType(int, null)
-handleIdentifier(factory, fieldDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, null, null, 1, int, ;)
-endMember()
-beginMetadataStar(int)
-endMetadataStar(0)
-beginMember()
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(false)
-handleType(int, null)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'false'., null, {token: false}], false, false)
-handleIdentifier(false, fieldDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, null, null, 1, int, ;)
-endMember()
-beginMetadataStar(int)
-endMetadataStar(0)
-beginMember()
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(final)
-handleType(int, null)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'final'., null, {token: final}], final, final)
-handleIdentifier(final, fieldDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, null, null, 1, int, ;)
-endMember()
-beginMetadataStar(int)
-endMetadataStar(0)
-beginMember()
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(finally)
-handleType(int, null)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'finally'., null, {token: finally}], finally, finally)
-handleIdentifier(finally, fieldDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, null, null, 1, int, ;)
-endMember()
-beginMetadataStar(int)
-endMetadataStar(0)
-beginMember()
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(for)
-handleType(int, null)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'for'., null, {token: for}], for, for)
-handleIdentifier(for, fieldDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, null, null, 1, int, ;)
-endMember()
-beginMetadataStar(int)
-endMetadataStar(0)
-beginMember()
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(Function)
-handleType(int, null)
-handleIdentifier(Function, fieldDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, null, null, 1, int, ;)
-endMember()
-beginMetadataStar(int)
-endMetadataStar(0)
-beginMember()
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(get)
-handleType(int, null)
-handleIdentifier(get, fieldDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, null, null, 1, int, ;)
-endMember()
-beginMetadataStar(int)
-endMetadataStar(0)
-beginMember()
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(hide)
-handleType(int, null)
-handleIdentifier(hide, fieldDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, null, null, 1, int, ;)
-endMember()
-beginMetadataStar(int)
-endMetadataStar(0)
-beginMember()
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(if)
-handleType(int, null)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'if'., null, {token: if}], if, if)
-handleIdentifier(if, fieldDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, null, null, 1, int, ;)
-endMember()
-beginMetadataStar(int)
-endMetadataStar(0)
-beginMember()
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(implements)
-handleType(int, null)
-handleIdentifier(implements, fieldDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, null, null, 1, int, ;)
-endMember()
-beginMetadataStar(int)
-endMetadataStar(0)
-beginMember()
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(import)
-handleType(int, null)
-handleIdentifier(import, fieldDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, null, null, 1, int, ;)
-endMember()
-beginMetadataStar(int)
-endMetadataStar(0)
-beginMember()
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(in)
-handleType(int, null)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'in'., null, {token: in}], in, in)
-handleIdentifier(in, fieldDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, null, null, 1, int, ;)
-endMember()
-beginMetadataStar(int)
-endMetadataStar(0)
-beginMember()
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(inout)
-handleType(int, null)
-handleIdentifier(inout, fieldDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, null, null, 1, int, ;)
-endMember()
-beginMetadataStar(int)
-endMetadataStar(0)
-beginMember()
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(interface)
-handleType(int, null)
-handleIdentifier(interface, fieldDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, null, null, 1, int, ;)
-endMember()
-beginMetadataStar(int)
-endMetadataStar(0)
-beginMember()
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(is)
-handleType(int, null)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'is'., null, {token: is}], is, is)
-handleIdentifier(is, fieldDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, null, null, 1, int, ;)
-endMember()
-beginMetadataStar(int)
-endMetadataStar(0)
-beginMember()
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(late)
-handleType(int, null)
-handleIdentifier(late, fieldDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, null, null, 1, int, ;)
-endMember()
-beginMetadataStar(int)
-endMetadataStar(0)
-beginMember()
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(library)
-handleType(int, null)
-handleIdentifier(library, fieldDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, null, null, 1, int, ;)
-endMember()
-beginMetadataStar(int)
-endMetadataStar(0)
-beginMember()
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(mixin)
-handleType(int, null)
-handleIdentifier(mixin, fieldDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, null, null, 1, int, ;)
-endMember()
-beginMetadataStar(int)
-endMetadataStar(0)
-beginMember()
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(native)
-handleType(int, null)
-handleIdentifier(native, fieldDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, null, null, 1, int, ;)
-endMember()
-beginMetadataStar(int)
-endMetadataStar(0)
-beginMember()
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(new)
-handleType(int, null)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'new'., null, {token: new}], new, new)
-handleIdentifier(new, fieldDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, null, null, 1, int, ;)
-endMember()
-beginMetadataStar(int)
-endMetadataStar(0)
-beginMember()
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(null)
-handleType(int, null)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'null'., null, {token: null}], null, null)
-handleIdentifier(null, fieldDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, null, null, 1, int, ;)
-endMember()
-beginMetadataStar(int)
-endMetadataStar(0)
-beginMember()
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(of)
-handleType(int, null)
-handleIdentifier(of, fieldDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, null, null, 1, int, ;)
-endMember()
-beginMetadataStar(int)
-endMetadataStar(0)
-beginMember()
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(on)
-handleType(int, null)
-handleIdentifier(on, fieldDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, null, null, 1, int, ;)
-endMember()
-beginMetadataStar(int)
-endMetadataStar(0)
-beginMember()
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(operator)
-handleType(int, null)
-handleIdentifier(operator, fieldDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, null, null, 1, int, ;)
-endMember()
-beginMetadataStar(int)
-endMetadataStar(0)
-beginMember()
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(out)
-handleType(int, null)
-handleIdentifier(out, fieldDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, null, null, 1, int, ;)
-endMember()
-beginMetadataStar(int)
-endMetadataStar(0)
-beginMember()
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(part)
-handleType(int, null)
-handleIdentifier(part, fieldDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, null, null, 1, int, ;)
-endMember()
-beginMetadataStar(int)
-endMetadataStar(0)
-beginMember()
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(patch)
-handleType(int, null)
-handleIdentifier(patch, fieldDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, null, null, 1, int, ;)
-endMember()
-beginMetadataStar(int)
-endMetadataStar(0)
-beginMember()
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(required)
-handleType(int, null)
-handleIdentifier(required, fieldDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, null, null, 1, int, ;)
-endMember()
-beginMetadataStar(int)
-endMetadataStar(0)
-beginMember()
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(rethrow)
-handleType(int, null)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'rethrow'., null, {token: rethrow}], rethrow, rethrow)
-handleIdentifier(rethrow, fieldDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, null, null, 1, int, ;)
-endMember()
-beginMetadataStar(int)
-endMetadataStar(0)
-beginMember()
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(return)
-handleType(int, null)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'return'., null, {token: return}], return, return)
-handleIdentifier(return, fieldDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, null, null, 1, int, ;)
-endMember()
-beginMetadataStar(int)
-endMetadataStar(0)
-beginMember()
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(set)
-handleType(int, null)
-handleIdentifier(set, fieldDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, null, null, 1, int, ;)
-endMember()
-beginMetadataStar(int)
-endMetadataStar(0)
-beginMember()
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(show)
-handleType(int, null)
-handleIdentifier(show, fieldDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, null, null, 1, int, ;)
-endMember()
-beginMetadataStar(int)
-endMetadataStar(0)
-beginMember()
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(source)
-handleType(int, null)
-handleIdentifier(source, fieldDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, null, null, 1, int, ;)
-endMember()
-beginMetadataStar(int)
-endMetadataStar(0)
-beginMember()
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(static)
-handleType(int, null)
-handleIdentifier(static, fieldDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, null, null, 1, int, ;)
-endMember()
-beginMetadataStar(int)
-endMetadataStar(0)
-beginMember()
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(super)
-handleType(int, null)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'super'., null, {token: super}], super, super)
-handleIdentifier(super, fieldDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, null, null, 1, int, ;)
-endMember()
-beginMetadataStar(int)
-endMetadataStar(0)
-beginMember()
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(switch)
-handleType(int, null)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'switch'., null, {token: switch}], switch, switch)
-handleIdentifier(switch, fieldDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, null, null, 1, int, ;)
-endMember()
-beginMetadataStar(int)
-endMetadataStar(0)
-beginMember()
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(sync)
-handleType(int, null)
-handleIdentifier(sync, fieldDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, null, null, 1, int, ;)
-endMember()
-beginMetadataStar(int)
-endMetadataStar(0)
-beginMember()
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(this)
-handleType(int, null)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'this'., null, {token: this}], this, this)
-handleIdentifier(this, fieldDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, null, null, 1, int, ;)
-endMember()
-beginMetadataStar(int)
-endMetadataStar(0)
-beginMember()
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(throw)
-handleType(int, null)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'throw'., null, {token: throw}], throw, throw)
-handleIdentifier(throw, fieldDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, null, null, 1, int, ;)
-endMember()
-beginMetadataStar(int)
-endMetadataStar(0)
-beginMember()
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(true)
-handleType(int, null)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'true'., null, {token: true}], true, true)
-handleIdentifier(true, fieldDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, null, null, 1, int, ;)
-endMember()
-beginMetadataStar(int)
-endMetadataStar(0)
-beginMember()
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(try)
-handleType(int, null)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'try'., null, {token: try}], try, try)
-handleIdentifier(try, fieldDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, null, null, 1, int, ;)
-endMember()
-beginMetadataStar(int)
-endMetadataStar(0)
-beginMember()
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(typedef)
-handleType(int, null)
-handleIdentifier(typedef, fieldDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, null, null, 1, int, ;)
-endMember()
-beginMetadataStar(int)
-endMetadataStar(0)
-beginMember()
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(var)
-handleType(int, null)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'var'., null, {token: var}], var, var)
-handleIdentifier(var, fieldDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, null, null, 1, int, ;)
-endMember()
-beginMetadataStar(int)
-endMetadataStar(0)
-beginMember()
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(void)
-handleType(int, null)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'void'., null, {token: void}], void, void)
-handleIdentifier(void, fieldDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, null, null, 1, int, ;)
-endMember()
-beginMetadataStar(int)
-endMetadataStar(0)
-beginMember()
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(while)
-handleType(int, null)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'while'., null, {token: while}], while, while)
-handleIdentifier(while, fieldDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, null, null, 1, int, ;)
-endMember()
-beginMetadataStar(int)
-endMetadataStar(0)
-beginMember()
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(with)
-handleType(int, null)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'with'., null, {token: with}], with, with)
-handleIdentifier(with, fieldDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, null, null, 1, int, ;)
-endMember()
-beginMetadataStar(int)
-endMetadataStar(0)
-beginMember()
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(yield)
-handleType(int, null)
-handleIdentifier(yield, fieldDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, null, null, 1, int, ;)
-endMember()
-endClassOrMixinBody(DeclarationKind.Class, 69, {, })
-endClassDeclaration(class, })
-endTopLevelDeclaration()
+          beginFields({)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(abstract)
+            handleType(int, null)
+            handleIdentifier(abstract, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(42)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(as)
+            handleType(int, null)
+            handleIdentifier(as, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(42)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(assert)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'assert'., null, {token: assert}], assert, assert)
+            handleIdentifier(assert, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(42)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(async)
+            handleType(int, null)
+            handleIdentifier(async, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(42)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(await)
+            handleType(int, null)
+            handleIdentifier(await, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(42)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(break)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'break'., null, {token: break}], break, break)
+            handleIdentifier(break, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(42)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(case)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'case'., null, {token: case}], case, case)
+            handleIdentifier(case, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(42)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(catch)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'catch'., null, {token: catch}], catch, catch)
+            handleIdentifier(catch, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(42)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(class)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'class'., null, {token: class}], class, class)
+            handleIdentifier(class, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(42)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(const)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'const'., null, {token: const}], const, const)
+            handleIdentifier(const, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(42)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(continue)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'continue'., null, {token: continue}], continue, continue)
+            handleIdentifier(continue, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(42)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(covariant)
+            handleType(int, null)
+            handleIdentifier(covariant, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(42)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(default)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'default'., null, {token: default}], default, default)
+            handleIdentifier(default, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(42)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(deferred)
+            handleType(int, null)
+            handleIdentifier(deferred, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(42)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(do)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'do'., null, {token: do}], do, do)
+            handleIdentifier(do, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(42)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(dynamic)
+            handleType(int, null)
+            handleIdentifier(dynamic, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(42)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(else)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'else'., null, {token: else}], else, else)
+            handleIdentifier(else, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(42)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(enum)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'enum'., null, {token: enum}], enum, enum)
+            handleIdentifier(enum, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(42)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(export)
+            handleType(int, null)
+            handleIdentifier(export, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(42)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(extends)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'extends'., null, {token: extends}], extends, extends)
+            handleIdentifier(extends, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(42)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(extension)
+            handleType(int, null)
+            handleIdentifier(extension, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(42)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(external)
+            handleType(int, null)
+            handleIdentifier(external, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(42)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(factory)
+            handleType(int, null)
+            handleIdentifier(factory, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(42)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(false)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'false'., null, {token: false}], false, false)
+            handleIdentifier(false, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(42)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(final)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'final'., null, {token: final}], final, final)
+            handleIdentifier(final, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(42)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(finally)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'finally'., null, {token: finally}], finally, finally)
+            handleIdentifier(finally, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(42)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(for)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'for'., null, {token: for}], for, for)
+            handleIdentifier(for, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(42)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(Function)
+            handleType(int, null)
+            handleIdentifier(Function, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(42)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(get)
+            handleType(int, null)
+            handleIdentifier(get, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(42)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(hide)
+            handleType(int, null)
+            handleIdentifier(hide, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(42)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(if)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'if'., null, {token: if}], if, if)
+            handleIdentifier(if, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(42)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(implements)
+            handleType(int, null)
+            handleIdentifier(implements, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(42)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(import)
+            handleType(int, null)
+            handleIdentifier(import, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(42)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(in)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'in'., null, {token: in}], in, in)
+            handleIdentifier(in, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(42)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(inout)
+            handleType(int, null)
+            handleIdentifier(inout, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(42)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(interface)
+            handleType(int, null)
+            handleIdentifier(interface, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(42)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(is)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'is'., null, {token: is}], is, is)
+            handleIdentifier(is, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(42)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(late)
+            handleType(int, null)
+            handleIdentifier(late, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(42)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(library)
+            handleType(int, null)
+            handleIdentifier(library, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(42)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(mixin)
+            handleType(int, null)
+            handleIdentifier(mixin, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(42)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(native)
+            handleType(int, null)
+            handleIdentifier(native, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(42)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(new)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'new'., null, {token: new}], new, new)
+            handleIdentifier(new, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(42)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(null)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'null'., null, {token: null}], null, null)
+            handleIdentifier(null, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(42)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(of)
+            handleType(int, null)
+            handleIdentifier(of, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(42)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(on)
+            handleType(int, null)
+            handleIdentifier(on, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(42)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(operator)
+            handleType(int, null)
+            handleIdentifier(operator, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(42)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(out)
+            handleType(int, null)
+            handleIdentifier(out, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(42)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(part)
+            handleType(int, null)
+            handleIdentifier(part, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(42)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(patch)
+            handleType(int, null)
+            handleIdentifier(patch, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(42)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(required)
+            handleType(int, null)
+            handleIdentifier(required, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(42)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(rethrow)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'rethrow'., null, {token: rethrow}], rethrow, rethrow)
+            handleIdentifier(rethrow, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(42)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(return)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'return'., null, {token: return}], return, return)
+            handleIdentifier(return, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(42)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(set)
+            handleType(int, null)
+            handleIdentifier(set, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(42)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(show)
+            handleType(int, null)
+            handleIdentifier(show, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(42)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(source)
+            handleType(int, null)
+            handleIdentifier(source, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(42)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(static)
+            handleType(int, null)
+            handleIdentifier(static, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(42)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(super)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'super'., null, {token: super}], super, super)
+            handleIdentifier(super, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(42)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(switch)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'switch'., null, {token: switch}], switch, switch)
+            handleIdentifier(switch, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(42)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(sync)
+            handleType(int, null)
+            handleIdentifier(sync, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(42)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(this)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'this'., null, {token: this}], this, this)
+            handleIdentifier(this, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(42)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(throw)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'throw'., null, {token: throw}], throw, throw)
+            handleIdentifier(throw, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(42)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(true)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'true'., null, {token: true}], true, true)
+            handleIdentifier(true, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(42)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(try)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'try'., null, {token: try}], try, try)
+            handleIdentifier(try, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(42)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(typedef)
+            handleType(int, null)
+            handleIdentifier(typedef, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(42)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(var)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'var'., null, {token: var}], var, var)
+            handleIdentifier(var, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(42)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(void)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'void'., null, {token: void}], void, void)
+            handleIdentifier(void, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(42)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(while)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'while'., null, {token: while}], while, while)
+            handleIdentifier(while, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(42)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(with)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'with'., null, {token: with}], with, with)
+            handleIdentifier(with, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(42)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(yield)
+            handleType(int, null)
+            handleIdentifier(yield, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(42)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+      endClassOrMixinBody(DeclarationKind.Class, 69, {, })
+    endClassDeclaration(class, })
+  endTopLevelDeclaration()
 endCompilationUnit(1, )
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 baabede..467d656 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
@@ -33,6 +33,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseFields({, null, null, null, null, null, null, {, Instance of 'SimpleType', abstract, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields({)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(abstract)
                 listener: handleType(int, null)
@@ -56,6 +57,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', as, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(as)
                 listener: handleType(int, null)
@@ -81,6 +83,7 @@
               isReservedKeyword(assert)
               indicatesMethodOrField(=)
               parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', assert, DeclarationKind.Class, WrapperClass, true)
+                listener: beginFields(;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(assert)
                 listener: handleType(int, null)
@@ -106,6 +109,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', async, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(async)
                 listener: handleType(int, null)
@@ -129,6 +133,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', await, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(await)
                 listener: handleType(int, null)
@@ -154,6 +159,7 @@
               isReservedKeyword(break)
               indicatesMethodOrField(=)
               parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', break, DeclarationKind.Class, WrapperClass, true)
+                listener: beginFields(;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(break)
                 listener: handleType(int, null)
@@ -181,6 +187,7 @@
               isReservedKeyword(case)
               indicatesMethodOrField(=)
               parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', case, DeclarationKind.Class, WrapperClass, true)
+                listener: beginFields(;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(case)
                 listener: handleType(int, null)
@@ -208,6 +215,7 @@
               isReservedKeyword(catch)
               indicatesMethodOrField(=)
               parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', catch, DeclarationKind.Class, WrapperClass, true)
+                listener: beginFields(;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(catch)
                 listener: handleType(int, null)
@@ -235,6 +243,7 @@
               isReservedKeyword(class)
               indicatesMethodOrField(=)
               parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', class, DeclarationKind.Class, WrapperClass, true)
+                listener: beginFields(;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(class)
                 listener: handleType(int, null)
@@ -262,6 +271,7 @@
               isReservedKeyword(const)
               indicatesMethodOrField(=)
               parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', const, DeclarationKind.Class, WrapperClass, true)
+                listener: beginFields(;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(const)
                 listener: handleType(int, null)
@@ -289,6 +299,7 @@
               isReservedKeyword(continue)
               indicatesMethodOrField(=)
               parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', continue, DeclarationKind.Class, WrapperClass, true)
+                listener: beginFields(;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(continue)
                 listener: handleType(int, null)
@@ -314,6 +325,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', covariant, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(covariant)
                 listener: handleType(int, null)
@@ -339,6 +351,7 @@
               isReservedKeyword(default)
               indicatesMethodOrField(=)
               parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', default, DeclarationKind.Class, WrapperClass, true)
+                listener: beginFields(;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(default)
                 listener: handleType(int, null)
@@ -364,6 +377,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', deferred, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(deferred)
                 listener: handleType(int, null)
@@ -389,6 +403,7 @@
               isReservedKeyword(do)
               indicatesMethodOrField(=)
               parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', do, DeclarationKind.Class, WrapperClass, true)
+                listener: beginFields(;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(do)
                 listener: handleType(int, null)
@@ -414,6 +429,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', dynamic, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(dynamic)
                 listener: handleType(int, null)
@@ -439,6 +455,7 @@
               isReservedKeyword(else)
               indicatesMethodOrField(=)
               parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', else, DeclarationKind.Class, WrapperClass, true)
+                listener: beginFields(;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(else)
                 listener: handleType(int, null)
@@ -466,6 +483,7 @@
               isReservedKeyword(enum)
               indicatesMethodOrField(=)
               parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', enum, DeclarationKind.Class, WrapperClass, true)
+                listener: beginFields(;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(enum)
                 listener: handleType(int, null)
@@ -491,6 +509,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', export, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(export)
                 listener: handleType(int, null)
@@ -516,6 +535,7 @@
               isReservedKeyword(extends)
               indicatesMethodOrField(=)
               parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', extends, DeclarationKind.Class, WrapperClass, true)
+                listener: beginFields(;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(extends)
                 listener: handleType(int, null)
@@ -541,6 +561,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', extension, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(extension)
                 listener: handleType(int, null)
@@ -564,6 +585,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', external, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(external)
                 listener: handleType(int, null)
@@ -587,6 +609,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', factory, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(factory)
                 listener: handleType(int, null)
@@ -612,6 +635,7 @@
               isReservedKeyword(false)
               indicatesMethodOrField(=)
               parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', false, DeclarationKind.Class, WrapperClass, true)
+                listener: beginFields(;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(false)
                 listener: handleType(int, null)
@@ -639,6 +663,7 @@
               isReservedKeyword(final)
               indicatesMethodOrField(=)
               parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', final, DeclarationKind.Class, WrapperClass, true)
+                listener: beginFields(;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(final)
                 listener: handleType(int, null)
@@ -666,6 +691,7 @@
               isReservedKeyword(finally)
               indicatesMethodOrField(=)
               parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', finally, DeclarationKind.Class, WrapperClass, true)
+                listener: beginFields(;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(finally)
                 listener: handleType(int, null)
@@ -693,6 +719,7 @@
               isReservedKeyword(for)
               indicatesMethodOrField(=)
               parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', for, DeclarationKind.Class, WrapperClass, true)
+                listener: beginFields(;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(for)
                 listener: handleType(int, null)
@@ -718,6 +745,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', Function, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(Function)
                 listener: handleType(int, null)
@@ -742,6 +770,7 @@
               listener: beginMember()
               isReservedKeyword(=)
               parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', get, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(get)
                 listener: handleType(int, null)
@@ -765,6 +794,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', hide, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(hide)
                 listener: handleType(int, null)
@@ -790,6 +820,7 @@
               isReservedKeyword(if)
               indicatesMethodOrField(=)
               parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', if, DeclarationKind.Class, WrapperClass, true)
+                listener: beginFields(;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(if)
                 listener: handleType(int, null)
@@ -815,6 +846,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', implements, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(implements)
                 listener: handleType(int, null)
@@ -838,6 +870,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', import, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(import)
                 listener: handleType(int, null)
@@ -863,6 +896,7 @@
               isReservedKeyword(in)
               indicatesMethodOrField(=)
               parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', in, DeclarationKind.Class, WrapperClass, true)
+                listener: beginFields(;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(in)
                 listener: handleType(int, null)
@@ -888,6 +922,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', inout, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(inout)
                 listener: handleType(int, null)
@@ -911,6 +946,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', interface, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(interface)
                 listener: handleType(int, null)
@@ -936,6 +972,7 @@
               isReservedKeyword(is)
               indicatesMethodOrField(=)
               parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', is, DeclarationKind.Class, WrapperClass, true)
+                listener: beginFields(;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(is)
                 listener: handleType(int, null)
@@ -961,6 +998,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', late, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(late)
                 listener: handleType(int, null)
@@ -984,6 +1022,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', library, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(library)
                 listener: handleType(int, null)
@@ -1007,6 +1046,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', mixin, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(mixin)
                 listener: handleType(int, null)
@@ -1030,6 +1070,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', native, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(native)
                 listener: handleType(int, null)
@@ -1055,6 +1096,7 @@
               isReservedKeyword(new)
               indicatesMethodOrField(=)
               parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', new, DeclarationKind.Class, WrapperClass, true)
+                listener: beginFields(;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(new)
                 listener: handleType(int, null)
@@ -1082,6 +1124,7 @@
               isReservedKeyword(null)
               indicatesMethodOrField(=)
               parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', null, DeclarationKind.Class, WrapperClass, true)
+                listener: beginFields(;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(null)
                 listener: handleType(int, null)
@@ -1107,6 +1150,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', of, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(of)
                 listener: handleType(int, null)
@@ -1130,6 +1174,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', on, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(on)
                 listener: handleType(int, null)
@@ -1154,6 +1199,7 @@
               listener: beginMember()
               isUnaryMinus(=)
               parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', operator, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(operator)
                 listener: handleType(int, null)
@@ -1177,6 +1223,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', out, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(out)
                 listener: handleType(int, null)
@@ -1200,6 +1247,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', part, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(part)
                 listener: handleType(int, null)
@@ -1223,6 +1271,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', patch, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(patch)
                 listener: handleType(int, null)
@@ -1246,6 +1295,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', required, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(required)
                 listener: handleType(int, null)
@@ -1271,6 +1321,7 @@
               isReservedKeyword(rethrow)
               indicatesMethodOrField(=)
               parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', rethrow, DeclarationKind.Class, WrapperClass, true)
+                listener: beginFields(;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(rethrow)
                 listener: handleType(int, null)
@@ -1298,6 +1349,7 @@
               isReservedKeyword(return)
               indicatesMethodOrField(=)
               parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', return, DeclarationKind.Class, WrapperClass, true)
+                listener: beginFields(;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(return)
                 listener: handleType(int, null)
@@ -1324,6 +1376,7 @@
               listener: beginMember()
               isReservedKeyword(=)
               parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', set, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(set)
                 listener: handleType(int, null)
@@ -1347,6 +1400,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', show, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(show)
                 listener: handleType(int, null)
@@ -1370,6 +1424,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', source, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(source)
                 listener: handleType(int, null)
@@ -1393,6 +1448,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', static, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(static)
                 listener: handleType(int, null)
@@ -1418,6 +1474,7 @@
               isReservedKeyword(super)
               indicatesMethodOrField(=)
               parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', super, DeclarationKind.Class, WrapperClass, true)
+                listener: beginFields(;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(super)
                 listener: handleType(int, null)
@@ -1445,6 +1502,7 @@
               isReservedKeyword(switch)
               indicatesMethodOrField(=)
               parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', switch, DeclarationKind.Class, WrapperClass, true)
+                listener: beginFields(;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(switch)
                 listener: handleType(int, null)
@@ -1470,6 +1528,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', sync, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(sync)
                 listener: handleType(int, null)
@@ -1494,6 +1553,7 @@
               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(;)
                   listener: handleIdentifier(int, typeReference)
                   listener: handleNoTypeArguments(this)
                   listener: handleType(int, null)
@@ -1521,6 +1581,7 @@
               isReservedKeyword(throw)
               indicatesMethodOrField(=)
               parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', throw, DeclarationKind.Class, WrapperClass, true)
+                listener: beginFields(;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(throw)
                 listener: handleType(int, null)
@@ -1548,6 +1609,7 @@
               isReservedKeyword(true)
               indicatesMethodOrField(=)
               parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', true, DeclarationKind.Class, WrapperClass, true)
+                listener: beginFields(;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(true)
                 listener: handleType(int, null)
@@ -1575,6 +1637,7 @@
               isReservedKeyword(try)
               indicatesMethodOrField(=)
               parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', try, DeclarationKind.Class, WrapperClass, true)
+                listener: beginFields(;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(try)
                 listener: handleType(int, null)
@@ -1600,6 +1663,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', typedef, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(typedef)
                 listener: handleType(int, null)
@@ -1625,6 +1689,7 @@
               isReservedKeyword(var)
               indicatesMethodOrField(=)
               parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', var, DeclarationKind.Class, WrapperClass, true)
+                listener: beginFields(;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(var)
                 listener: handleType(int, null)
@@ -1652,6 +1717,7 @@
               isReservedKeyword(void)
               indicatesMethodOrField(=)
               parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', void, DeclarationKind.Class, WrapperClass, true)
+                listener: beginFields(;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(void)
                 listener: handleType(int, null)
@@ -1679,6 +1745,7 @@
               isReservedKeyword(while)
               indicatesMethodOrField(=)
               parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', while, DeclarationKind.Class, WrapperClass, true)
+                listener: beginFields(;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(while)
                 listener: handleType(int, null)
@@ -1706,6 +1773,7 @@
               isReservedKeyword(with)
               indicatesMethodOrField(=)
               parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', with, DeclarationKind.Class, WrapperClass, true)
+                listener: beginFields(;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(with)
                 listener: handleType(int, null)
@@ -1731,6 +1799,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', yield, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(yield)
                 listener: handleType(int, null)
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 256ca6c..614bc0c 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
@@ -514,7 +514,7 @@
                 handleNoArguments(==)
                 handleSend(x, ==)
                 beginBinaryExpression(==)
-                handleLiteralInt(0)
+                  handleLiteralInt(0)
                 endBinaryExpression(==)
                 handleParenthesizedCondition(()
                 beginThenStatement(return)
@@ -532,12 +532,12 @@
                   handleNoArguments(-)
                   handleSend(x, -)
                   beginBinaryExpression(-)
-                  handleLiteralInt(1)
+                    handleLiteralInt(1)
                   endBinaryExpression(-)
                 endArguments(1, (, ))
                 handleSend(abstract, +)
                 beginBinaryExpression(+)
-                handleLiteralInt(1)
+                  handleLiteralInt(1)
                 endBinaryExpression(+)
               endReturnStatement(true, return, ;)
             endBlockFunctionBody(2, {, })
@@ -572,7 +572,7 @@
                 handleNoArguments(==)
                 handleSend(x, ==)
                 beginBinaryExpression(==)
-                handleLiteralInt(0)
+                  handleLiteralInt(0)
                 endBinaryExpression(==)
                 handleParenthesizedCondition(()
                 beginThenStatement(return)
@@ -590,12 +590,12 @@
                   handleNoArguments(-)
                   handleSend(x, -)
                   beginBinaryExpression(-)
-                  handleLiteralInt(1)
+                    handleLiteralInt(1)
                   endBinaryExpression(-)
                 endArguments(1, (, ))
                 handleSend(as, +)
                 beginBinaryExpression(+)
-                handleLiteralInt(1)
+                  handleLiteralInt(1)
                 endBinaryExpression(+)
               endReturnStatement(true, return, ;)
             endBlockFunctionBody(2, {, })
@@ -631,7 +631,7 @@
                 handleNoArguments(==)
                 handleSend(x, ==)
                 beginBinaryExpression(==)
-                handleLiteralInt(0)
+                  handleLiteralInt(0)
                 endBinaryExpression(==)
                 handleParenthesizedCondition(()
                 beginThenStatement(return)
@@ -647,12 +647,12 @@
                   handleNoArguments(-)
                   handleSend(x, -)
                   beginBinaryExpression(-)
-                  handleLiteralInt(1)
+                    handleLiteralInt(1)
                   endBinaryExpression(-)
                   handleRecoverableError(AssertAsExpression, assert, assert)
                 endAssert(assert, Assert.Expression, (, null, +)
                 beginBinaryExpression(+)
-                handleLiteralInt(1)
+                  handleLiteralInt(1)
                 endBinaryExpression(+)
               endReturnStatement(true, return, ;)
             endBlockFunctionBody(2, {, })
@@ -687,7 +687,7 @@
                 handleNoArguments(==)
                 handleSend(x, ==)
                 beginBinaryExpression(==)
-                handleLiteralInt(0)
+                  handleLiteralInt(0)
                 endBinaryExpression(==)
                 handleParenthesizedCondition(()
                 beginThenStatement(return)
@@ -705,12 +705,12 @@
                   handleNoArguments(-)
                   handleSend(x, -)
                   beginBinaryExpression(-)
-                  handleLiteralInt(1)
+                    handleLiteralInt(1)
                   endBinaryExpression(-)
                 endArguments(1, (, ))
                 handleSend(async, +)
                 beginBinaryExpression(+)
-                handleLiteralInt(1)
+                  handleLiteralInt(1)
                 endBinaryExpression(+)
               endReturnStatement(true, return, ;)
             endBlockFunctionBody(2, {, })
@@ -745,7 +745,7 @@
                 handleNoArguments(==)
                 handleSend(x, ==)
                 beginBinaryExpression(==)
-                handleLiteralInt(0)
+                  handleLiteralInt(0)
                 endBinaryExpression(==)
                 handleParenthesizedCondition(()
                 beginThenStatement(return)
@@ -763,12 +763,12 @@
                   handleNoArguments(-)
                   handleSend(x, -)
                   beginBinaryExpression(-)
-                  handleLiteralInt(1)
+                    handleLiteralInt(1)
                   endBinaryExpression(-)
                 endArguments(1, (, ))
                 handleSend(await, +)
                 beginBinaryExpression(+)
-                handleLiteralInt(1)
+                  handleLiteralInt(1)
                 endBinaryExpression(+)
               endReturnStatement(true, return, ;)
             endBlockFunctionBody(2, {, })
@@ -804,7 +804,7 @@
                 handleNoArguments(==)
                 handleSend(x, ==)
                 beginBinaryExpression(==)
-                handleLiteralInt(0)
+                  handleLiteralInt(0)
                 endBinaryExpression(==)
                 handleParenthesizedCondition(()
                 beginThenStatement(return)
@@ -829,11 +829,11 @@
               handleNoArguments(-)
               handleSend(x, -)
               beginBinaryExpression(-)
-              handleLiteralInt(1)
+                handleLiteralInt(1)
               endBinaryExpression(-)
               handleParenthesizedExpression(()
               beginBinaryExpression(+)
-              handleLiteralInt(1)
+                handleLiteralInt(1)
               endBinaryExpression(+)
               handleExpressionStatement(;)
             endBlockFunctionBody(4, {, })
@@ -869,7 +869,7 @@
                 handleNoArguments(==)
                 handleSend(x, ==)
                 beginBinaryExpression(==)
-                handleLiteralInt(0)
+                  handleLiteralInt(0)
                 endBinaryExpression(==)
                 handleParenthesizedCondition(()
                 beginThenStatement(return)
@@ -888,12 +888,12 @@
                   handleNoArguments(-)
                   handleSend(x, -)
                   beginBinaryExpression(-)
-                  handleLiteralInt(1)
+                    handleLiteralInt(1)
                   endBinaryExpression(-)
                 endArguments(1, (, ))
                 handleSend(case, +)
                 beginBinaryExpression(+)
-                handleLiteralInt(1)
+                  handleLiteralInt(1)
                 endBinaryExpression(+)
               endReturnStatement(true, return, ;)
             endBlockFunctionBody(2, {, })
@@ -929,7 +929,7 @@
                 handleNoArguments(==)
                 handleSend(x, ==)
                 beginBinaryExpression(==)
-                handleLiteralInt(0)
+                  handleLiteralInt(0)
                 endBinaryExpression(==)
                 handleParenthesizedCondition(()
                 beginThenStatement(return)
@@ -948,12 +948,12 @@
                   handleNoArguments(-)
                   handleSend(x, -)
                   beginBinaryExpression(-)
-                  handleLiteralInt(1)
+                    handleLiteralInt(1)
                   endBinaryExpression(-)
                 endArguments(1, (, ))
                 handleSend(catch, +)
                 beginBinaryExpression(+)
-                handleLiteralInt(1)
+                  handleLiteralInt(1)
                 endBinaryExpression(+)
               endReturnStatement(true, return, ;)
             endBlockFunctionBody(2, {, })
@@ -989,7 +989,7 @@
                 handleNoArguments(==)
                 handleSend(x, ==)
                 beginBinaryExpression(==)
-                handleLiteralInt(0)
+                  handleLiteralInt(0)
                 endBinaryExpression(==)
                 handleParenthesizedCondition(()
                 beginThenStatement(return)
@@ -1008,12 +1008,12 @@
                   handleNoArguments(-)
                   handleSend(x, -)
                   beginBinaryExpression(-)
-                  handleLiteralInt(1)
+                    handleLiteralInt(1)
                   endBinaryExpression(-)
                 endArguments(1, (, ))
                 handleSend(class, +)
                 beginBinaryExpression(+)
-                handleLiteralInt(1)
+                  handleLiteralInt(1)
                 endBinaryExpression(+)
               endReturnStatement(true, return, ;)
             endBlockFunctionBody(2, {, })
@@ -1049,7 +1049,7 @@
                 handleNoArguments(==)
                 handleSend(x, ==)
                 beginBinaryExpression(==)
-                handleLiteralInt(0)
+                  handleLiteralInt(0)
                 endBinaryExpression(==)
                 handleParenthesizedCondition(()
                 beginThenStatement(return)
@@ -1072,12 +1072,12 @@
                     handleNoArguments(-)
                     handleSend(x, -)
                     beginBinaryExpression(-)
-                    handleLiteralInt(1)
+                      handleLiteralInt(1)
                     endBinaryExpression(-)
                   endArguments(1, (, ))
                 endConstExpression(const)
                 beginBinaryExpression(+)
-                handleLiteralInt(1)
+                  handleLiteralInt(1)
                 endBinaryExpression(+)
               endReturnStatement(true, return, ;)
             endBlockFunctionBody(2, {, })
@@ -1113,7 +1113,7 @@
                 handleNoArguments(==)
                 handleSend(x, ==)
                 beginBinaryExpression(==)
-                handleLiteralInt(0)
+                  handleLiteralInt(0)
                 endBinaryExpression(==)
                 handleParenthesizedCondition(()
                 beginThenStatement(return)
@@ -1138,11 +1138,11 @@
               handleNoArguments(-)
               handleSend(x, -)
               beginBinaryExpression(-)
-              handleLiteralInt(1)
+                handleLiteralInt(1)
               endBinaryExpression(-)
               handleParenthesizedExpression(()
               beginBinaryExpression(+)
-              handleLiteralInt(1)
+                handleLiteralInt(1)
               endBinaryExpression(+)
               handleExpressionStatement(;)
             endBlockFunctionBody(4, {, })
@@ -1177,7 +1177,7 @@
                 handleNoArguments(==)
                 handleSend(x, ==)
                 beginBinaryExpression(==)
-                handleLiteralInt(0)
+                  handleLiteralInt(0)
                 endBinaryExpression(==)
                 handleParenthesizedCondition(()
                 beginThenStatement(return)
@@ -1195,12 +1195,12 @@
                   handleNoArguments(-)
                   handleSend(x, -)
                   beginBinaryExpression(-)
-                  handleLiteralInt(1)
+                    handleLiteralInt(1)
                   endBinaryExpression(-)
                 endArguments(1, (, ))
                 handleSend(covariant, +)
                 beginBinaryExpression(+)
-                handleLiteralInt(1)
+                  handleLiteralInt(1)
                 endBinaryExpression(+)
               endReturnStatement(true, return, ;)
             endBlockFunctionBody(2, {, })
@@ -1236,7 +1236,7 @@
                 handleNoArguments(==)
                 handleSend(x, ==)
                 beginBinaryExpression(==)
-                handleLiteralInt(0)
+                  handleLiteralInt(0)
                 endBinaryExpression(==)
                 handleParenthesizedCondition(()
                 beginThenStatement(return)
@@ -1255,12 +1255,12 @@
                   handleNoArguments(-)
                   handleSend(x, -)
                   beginBinaryExpression(-)
-                  handleLiteralInt(1)
+                    handleLiteralInt(1)
                   endBinaryExpression(-)
                 endArguments(1, (, ))
                 handleSend(default, +)
                 beginBinaryExpression(+)
-                handleLiteralInt(1)
+                  handleLiteralInt(1)
                 endBinaryExpression(+)
               endReturnStatement(true, return, ;)
             endBlockFunctionBody(2, {, })
@@ -1295,7 +1295,7 @@
                 handleNoArguments(==)
                 handleSend(x, ==)
                 beginBinaryExpression(==)
-                handleLiteralInt(0)
+                  handleLiteralInt(0)
                 endBinaryExpression(==)
                 handleParenthesizedCondition(()
                 beginThenStatement(return)
@@ -1313,12 +1313,12 @@
                   handleNoArguments(-)
                   handleSend(x, -)
                   beginBinaryExpression(-)
-                  handleLiteralInt(1)
+                    handleLiteralInt(1)
                   endBinaryExpression(-)
                 endArguments(1, (, ))
                 handleSend(deferred, +)
                 beginBinaryExpression(+)
-                handleLiteralInt(1)
+                  handleLiteralInt(1)
                 endBinaryExpression(+)
               endReturnStatement(true, return, ;)
             endBlockFunctionBody(2, {, })
@@ -1354,7 +1354,7 @@
                 handleNoArguments(==)
                 handleSend(x, ==)
                 beginBinaryExpression(==)
-                handleLiteralInt(0)
+                  handleLiteralInt(0)
                 endBinaryExpression(==)
                 handleParenthesizedCondition(()
                 beginThenStatement(return)
@@ -1378,11 +1378,11 @@
                   handleNoArguments(-)
                   handleSend(x, -)
                   beginBinaryExpression(-)
-                  handleLiteralInt(1)
+                    handleLiteralInt(1)
                   endBinaryExpression(-)
                   handleParenthesizedExpression(()
                   beginBinaryExpression(+)
-                  handleLiteralInt(1)
+                    handleLiteralInt(1)
                   endBinaryExpression(+)
                   handleExpressionStatement(;)
                 endDoWhileStatementBody(;)
@@ -1428,7 +1428,7 @@
                 handleNoArguments(==)
                 handleSend(x, ==)
                 beginBinaryExpression(==)
-                handleLiteralInt(0)
+                  handleLiteralInt(0)
                 endBinaryExpression(==)
                 handleParenthesizedCondition(()
                 beginThenStatement(return)
@@ -1446,12 +1446,12 @@
                   handleNoArguments(-)
                   handleSend(x, -)
                   beginBinaryExpression(-)
-                  handleLiteralInt(1)
+                    handleLiteralInt(1)
                   endBinaryExpression(-)
                 endArguments(1, (, ))
                 handleSend(dynamic, +)
                 beginBinaryExpression(+)
-                handleLiteralInt(1)
+                  handleLiteralInt(1)
                 endBinaryExpression(+)
               endReturnStatement(true, return, ;)
             endBlockFunctionBody(2, {, })
@@ -1487,7 +1487,7 @@
                 handleNoArguments(==)
                 handleSend(x, ==)
                 beginBinaryExpression(==)
-                handleLiteralInt(0)
+                  handleLiteralInt(0)
                 endBinaryExpression(==)
                 handleParenthesizedCondition(()
                 beginThenStatement(return)
@@ -1517,11 +1517,11 @@
               handleNoArguments(-)
               handleSend(x, -)
               beginBinaryExpression(-)
-              handleLiteralInt(1)
+                handleLiteralInt(1)
               endBinaryExpression(-)
               handleParenthesizedExpression(()
               beginBinaryExpression(+)
-              handleLiteralInt(1)
+                handleLiteralInt(1)
               endBinaryExpression(+)
               handleExpressionStatement(;)
             endBlockFunctionBody(4, {, })
@@ -1557,7 +1557,7 @@
                 handleNoArguments(==)
                 handleSend(x, ==)
                 beginBinaryExpression(==)
-                handleLiteralInt(0)
+                  handleLiteralInt(0)
                 endBinaryExpression(==)
                 handleParenthesizedCondition(()
                 beginThenStatement(return)
@@ -1576,12 +1576,12 @@
                   handleNoArguments(-)
                   handleSend(x, -)
                   beginBinaryExpression(-)
-                  handleLiteralInt(1)
+                    handleLiteralInt(1)
                   endBinaryExpression(-)
                 endArguments(1, (, ))
                 handleSend(enum, +)
                 beginBinaryExpression(+)
-                handleLiteralInt(1)
+                  handleLiteralInt(1)
                 endBinaryExpression(+)
               endReturnStatement(true, return, ;)
             endBlockFunctionBody(2, {, })
@@ -1616,7 +1616,7 @@
                 handleNoArguments(==)
                 handleSend(x, ==)
                 beginBinaryExpression(==)
-                handleLiteralInt(0)
+                  handleLiteralInt(0)
                 endBinaryExpression(==)
                 handleParenthesizedCondition(()
                 beginThenStatement(return)
@@ -1634,12 +1634,12 @@
                   handleNoArguments(-)
                   handleSend(x, -)
                   beginBinaryExpression(-)
-                  handleLiteralInt(1)
+                    handleLiteralInt(1)
                   endBinaryExpression(-)
                 endArguments(1, (, ))
                 handleSend(export, +)
                 beginBinaryExpression(+)
-                handleLiteralInt(1)
+                  handleLiteralInt(1)
                 endBinaryExpression(+)
               endReturnStatement(true, return, ;)
             endBlockFunctionBody(2, {, })
@@ -1675,7 +1675,7 @@
                 handleNoArguments(==)
                 handleSend(x, ==)
                 beginBinaryExpression(==)
-                handleLiteralInt(0)
+                  handleLiteralInt(0)
                 endBinaryExpression(==)
                 handleParenthesizedCondition(()
                 beginThenStatement(return)
@@ -1694,12 +1694,12 @@
                   handleNoArguments(-)
                   handleSend(x, -)
                   beginBinaryExpression(-)
-                  handleLiteralInt(1)
+                    handleLiteralInt(1)
                   endBinaryExpression(-)
                 endArguments(1, (, ))
                 handleSend(extends, +)
                 beginBinaryExpression(+)
-                handleLiteralInt(1)
+                  handleLiteralInt(1)
                 endBinaryExpression(+)
               endReturnStatement(true, return, ;)
             endBlockFunctionBody(2, {, })
@@ -1734,7 +1734,7 @@
                 handleNoArguments(==)
                 handleSend(x, ==)
                 beginBinaryExpression(==)
-                handleLiteralInt(0)
+                  handleLiteralInt(0)
                 endBinaryExpression(==)
                 handleParenthesizedCondition(()
                 beginThenStatement(return)
@@ -1752,12 +1752,12 @@
                   handleNoArguments(-)
                   handleSend(x, -)
                   beginBinaryExpression(-)
-                  handleLiteralInt(1)
+                    handleLiteralInt(1)
                   endBinaryExpression(-)
                 endArguments(1, (, ))
                 handleSend(extension, +)
                 beginBinaryExpression(+)
-                handleLiteralInt(1)
+                  handleLiteralInt(1)
                 endBinaryExpression(+)
               endReturnStatement(true, return, ;)
             endBlockFunctionBody(2, {, })
@@ -1792,7 +1792,7 @@
                 handleNoArguments(==)
                 handleSend(x, ==)
                 beginBinaryExpression(==)
-                handleLiteralInt(0)
+                  handleLiteralInt(0)
                 endBinaryExpression(==)
                 handleParenthesizedCondition(()
                 beginThenStatement(return)
@@ -1810,12 +1810,12 @@
                   handleNoArguments(-)
                   handleSend(x, -)
                   beginBinaryExpression(-)
-                  handleLiteralInt(1)
+                    handleLiteralInt(1)
                   endBinaryExpression(-)
                 endArguments(1, (, ))
                 handleSend(external, +)
                 beginBinaryExpression(+)
-                handleLiteralInt(1)
+                  handleLiteralInt(1)
                 endBinaryExpression(+)
               endReturnStatement(true, return, ;)
             endBlockFunctionBody(2, {, })
@@ -1850,7 +1850,7 @@
                 handleNoArguments(==)
                 handleSend(x, ==)
                 beginBinaryExpression(==)
-                handleLiteralInt(0)
+                  handleLiteralInt(0)
                 endBinaryExpression(==)
                 handleParenthesizedCondition(()
                 beginThenStatement(return)
@@ -1868,12 +1868,12 @@
                   handleNoArguments(-)
                   handleSend(x, -)
                   beginBinaryExpression(-)
-                  handleLiteralInt(1)
+                    handleLiteralInt(1)
                   endBinaryExpression(-)
                 endArguments(1, (, ))
                 handleSend(factory, +)
                 beginBinaryExpression(+)
-                handleLiteralInt(1)
+                  handleLiteralInt(1)
                 endBinaryExpression(+)
               endReturnStatement(true, return, ;)
             endBlockFunctionBody(2, {, })
@@ -1909,7 +1909,7 @@
                 handleNoArguments(==)
                 handleSend(x, ==)
                 beginBinaryExpression(==)
-                handleLiteralInt(0)
+                  handleLiteralInt(0)
                 endBinaryExpression(==)
                 handleParenthesizedCondition(()
                 beginThenStatement(return)
@@ -1927,12 +1927,12 @@
                   handleNoArguments(-)
                   handleSend(x, -)
                   beginBinaryExpression(-)
-                  handleLiteralInt(1)
+                    handleLiteralInt(1)
                   endBinaryExpression(-)
                 endArguments(1, (, ))
                 handleSend((, ))
                 beginBinaryExpression(+)
-                handleLiteralInt(1)
+                  handleLiteralInt(1)
                 endBinaryExpression(+)
               endReturnStatement(true, return, ;)
             endBlockFunctionBody(2, {, })
@@ -1968,7 +1968,7 @@
                 handleNoArguments(==)
                 handleSend(x, ==)
                 beginBinaryExpression(==)
-                handleLiteralInt(0)
+                  handleLiteralInt(0)
                 endBinaryExpression(==)
                 handleParenthesizedCondition(()
                 beginThenStatement(return)
@@ -2001,7 +2001,7 @@
               handleNoArguments(-)
               handleSend(x, -)
               beginBinaryExpression(-)
-              handleLiteralInt(1)
+                handleLiteralInt(1)
               endBinaryExpression(-)
               handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], 1, 1)
               handleExpressionStatement(;)
@@ -2019,7 +2019,7 @@
               handleNoArguments(+)
               handleSend(, +)
               beginBinaryExpression(+)
-              handleLiteralInt(1)
+                handleLiteralInt(1)
               endBinaryExpression(+)
               handleExpressionStatement(;)
             endBlockFunctionBody(6, {, })
@@ -2055,7 +2055,7 @@
                 handleNoArguments(==)
                 handleSend(x, ==)
                 beginBinaryExpression(==)
-                handleLiteralInt(0)
+                  handleLiteralInt(0)
                 endBinaryExpression(==)
                 handleParenthesizedCondition(()
                 beginThenStatement(return)
@@ -2074,12 +2074,12 @@
                   handleNoArguments(-)
                   handleSend(x, -)
                   beginBinaryExpression(-)
-                  handleLiteralInt(1)
+                    handleLiteralInt(1)
                   endBinaryExpression(-)
                 endArguments(1, (, ))
                 handleSend(finally, +)
                 beginBinaryExpression(+)
-                handleLiteralInt(1)
+                  handleLiteralInt(1)
                 endBinaryExpression(+)
               endReturnStatement(true, return, ;)
             endBlockFunctionBody(2, {, })
@@ -2115,7 +2115,7 @@
                 handleNoArguments(==)
                 handleSend(x, ==)
                 beginBinaryExpression(==)
-                handleLiteralInt(0)
+                  handleLiteralInt(0)
                 endBinaryExpression(==)
                 handleParenthesizedCondition(()
                 beginThenStatement(return)
@@ -2138,7 +2138,7 @@
                 handleNoArguments(-)
                 handleSend(x, -)
                 beginBinaryExpression(-)
-                handleLiteralInt(1)
+                  handleLiteralInt(1)
                 endBinaryExpression(-)
                 handleForInitializerExpressionStatement(1, false)
                 handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], 1, 1)
@@ -2157,7 +2157,7 @@
                   handleNoArguments(+)
                   handleSend(, +)
                   beginBinaryExpression(+)
-                  handleLiteralInt(1)
+                    handleLiteralInt(1)
                   endBinaryExpression(+)
                   handleExpressionStatement(;)
                 endForStatementBody(})
@@ -2194,7 +2194,7 @@
                 handleNoArguments(==)
                 handleSend(x, ==)
                 beginBinaryExpression(==)
-                handleLiteralInt(0)
+                  handleLiteralInt(0)
                 endBinaryExpression(==)
                 handleParenthesizedCondition(()
                 beginThenStatement(return)
@@ -2212,12 +2212,12 @@
                   handleNoArguments(-)
                   handleSend(x, -)
                   beginBinaryExpression(-)
-                  handleLiteralInt(1)
+                    handleLiteralInt(1)
                   endBinaryExpression(-)
                 endArguments(1, (, ))
                 handleSend(Function, +)
                 beginBinaryExpression(+)
-                handleLiteralInt(1)
+                  handleLiteralInt(1)
                 endBinaryExpression(+)
               endReturnStatement(true, return, ;)
             endBlockFunctionBody(2, {, })
@@ -2252,7 +2252,7 @@
                 handleNoArguments(==)
                 handleSend(x, ==)
                 beginBinaryExpression(==)
-                handleLiteralInt(0)
+                  handleLiteralInt(0)
                 endBinaryExpression(==)
                 handleParenthesizedCondition(()
                 beginThenStatement(return)
@@ -2270,12 +2270,12 @@
                   handleNoArguments(-)
                   handleSend(x, -)
                   beginBinaryExpression(-)
-                  handleLiteralInt(1)
+                    handleLiteralInt(1)
                   endBinaryExpression(-)
                 endArguments(1, (, ))
                 handleSend(get, +)
                 beginBinaryExpression(+)
-                handleLiteralInt(1)
+                  handleLiteralInt(1)
                 endBinaryExpression(+)
               endReturnStatement(true, return, ;)
             endBlockFunctionBody(2, {, })
@@ -2310,7 +2310,7 @@
                 handleNoArguments(==)
                 handleSend(x, ==)
                 beginBinaryExpression(==)
-                handleLiteralInt(0)
+                  handleLiteralInt(0)
                 endBinaryExpression(==)
                 handleParenthesizedCondition(()
                 beginThenStatement(return)
@@ -2328,12 +2328,12 @@
                   handleNoArguments(-)
                   handleSend(x, -)
                   beginBinaryExpression(-)
-                  handleLiteralInt(1)
+                    handleLiteralInt(1)
                   endBinaryExpression(-)
                 endArguments(1, (, ))
                 handleSend(hide, +)
                 beginBinaryExpression(+)
-                handleLiteralInt(1)
+                  handleLiteralInt(1)
                 endBinaryExpression(+)
               endReturnStatement(true, return, ;)
             endBlockFunctionBody(2, {, })
@@ -2369,7 +2369,7 @@
                 handleNoArguments(==)
                 handleSend(x, ==)
                 beginBinaryExpression(==)
-                handleLiteralInt(0)
+                  handleLiteralInt(0)
                 endBinaryExpression(==)
                 handleParenthesizedCondition(()
                 beginThenStatement(return)
@@ -2392,7 +2392,7 @@
                 handleNoArguments(-)
                 handleSend(x, -)
                 beginBinaryExpression(-)
-                handleLiteralInt(1)
+                  handleLiteralInt(1)
                 endBinaryExpression(-)
                 handleParenthesizedCondition(()
                 beginThenStatement(+)
@@ -2402,7 +2402,7 @@
                   handleNoArguments(+)
                   handleSend(, +)
                   beginBinaryExpression(+)
-                  handleLiteralInt(1)
+                    handleLiteralInt(1)
                   endBinaryExpression(+)
                   handleExpressionStatement(;)
                 endThenStatement(;)
@@ -2439,7 +2439,7 @@
                 handleNoArguments(==)
                 handleSend(x, ==)
                 beginBinaryExpression(==)
-                handleLiteralInt(0)
+                  handleLiteralInt(0)
                 endBinaryExpression(==)
                 handleParenthesizedCondition(()
                 beginThenStatement(return)
@@ -2457,12 +2457,12 @@
                   handleNoArguments(-)
                   handleSend(x, -)
                   beginBinaryExpression(-)
-                  handleLiteralInt(1)
+                    handleLiteralInt(1)
                   endBinaryExpression(-)
                 endArguments(1, (, ))
                 handleSend(implements, +)
                 beginBinaryExpression(+)
-                handleLiteralInt(1)
+                  handleLiteralInt(1)
                 endBinaryExpression(+)
               endReturnStatement(true, return, ;)
             endBlockFunctionBody(2, {, })
@@ -2497,7 +2497,7 @@
                 handleNoArguments(==)
                 handleSend(x, ==)
                 beginBinaryExpression(==)
-                handleLiteralInt(0)
+                  handleLiteralInt(0)
                 endBinaryExpression(==)
                 handleParenthesizedCondition(()
                 beginThenStatement(return)
@@ -2515,12 +2515,12 @@
                   handleNoArguments(-)
                   handleSend(x, -)
                   beginBinaryExpression(-)
-                  handleLiteralInt(1)
+                    handleLiteralInt(1)
                   endBinaryExpression(-)
                 endArguments(1, (, ))
                 handleSend(import, +)
                 beginBinaryExpression(+)
-                handleLiteralInt(1)
+                  handleLiteralInt(1)
                 endBinaryExpression(+)
               endReturnStatement(true, return, ;)
             endBlockFunctionBody(2, {, })
@@ -2556,7 +2556,7 @@
                 handleNoArguments(==)
                 handleSend(x, ==)
                 beginBinaryExpression(==)
-                handleLiteralInt(0)
+                  handleLiteralInt(0)
                 endBinaryExpression(==)
                 handleParenthesizedCondition(()
                 beginThenStatement(return)
@@ -2575,12 +2575,12 @@
                   handleNoArguments(-)
                   handleSend(x, -)
                   beginBinaryExpression(-)
-                  handleLiteralInt(1)
+                    handleLiteralInt(1)
                   endBinaryExpression(-)
                 endArguments(1, (, ))
                 handleSend(in, +)
                 beginBinaryExpression(+)
-                handleLiteralInt(1)
+                  handleLiteralInt(1)
                 endBinaryExpression(+)
               endReturnStatement(true, return, ;)
             endBlockFunctionBody(2, {, })
@@ -2615,7 +2615,7 @@
                 handleNoArguments(==)
                 handleSend(x, ==)
                 beginBinaryExpression(==)
-                handleLiteralInt(0)
+                  handleLiteralInt(0)
                 endBinaryExpression(==)
                 handleParenthesizedCondition(()
                 beginThenStatement(return)
@@ -2633,12 +2633,12 @@
                   handleNoArguments(-)
                   handleSend(x, -)
                   beginBinaryExpression(-)
-                  handleLiteralInt(1)
+                    handleLiteralInt(1)
                   endBinaryExpression(-)
                 endArguments(1, (, ))
                 handleSend(inout, +)
                 beginBinaryExpression(+)
-                handleLiteralInt(1)
+                  handleLiteralInt(1)
                 endBinaryExpression(+)
               endReturnStatement(true, return, ;)
             endBlockFunctionBody(2, {, })
@@ -2673,7 +2673,7 @@
                 handleNoArguments(==)
                 handleSend(x, ==)
                 beginBinaryExpression(==)
-                handleLiteralInt(0)
+                  handleLiteralInt(0)
                 endBinaryExpression(==)
                 handleParenthesizedCondition(()
                 beginThenStatement(return)
@@ -2691,12 +2691,12 @@
                   handleNoArguments(-)
                   handleSend(x, -)
                   beginBinaryExpression(-)
-                  handleLiteralInt(1)
+                    handleLiteralInt(1)
                   endBinaryExpression(-)
                 endArguments(1, (, ))
                 handleSend(interface, +)
                 beginBinaryExpression(+)
-                handleLiteralInt(1)
+                  handleLiteralInt(1)
                 endBinaryExpression(+)
               endReturnStatement(true, return, ;)
             endBlockFunctionBody(2, {, })
@@ -2732,7 +2732,7 @@
                 handleNoArguments(==)
                 handleSend(x, ==)
                 beginBinaryExpression(==)
-                handleLiteralInt(0)
+                  handleLiteralInt(0)
                 endBinaryExpression(==)
                 handleParenthesizedCondition(()
                 beginThenStatement(return)
@@ -2761,11 +2761,11 @@
               handleNoArguments(-)
               handleSend(x, -)
               beginBinaryExpression(-)
-              handleLiteralInt(1)
+                handleLiteralInt(1)
               endBinaryExpression(-)
               handleParenthesizedExpression(()
               beginBinaryExpression(+)
-              handleLiteralInt(1)
+                handleLiteralInt(1)
               endBinaryExpression(+)
               handleExpressionStatement(;)
             endBlockFunctionBody(3, {, })
@@ -2800,7 +2800,7 @@
                 handleNoArguments(==)
                 handleSend(x, ==)
                 beginBinaryExpression(==)
-                handleLiteralInt(0)
+                  handleLiteralInt(0)
                 endBinaryExpression(==)
                 handleParenthesizedCondition(()
                 beginThenStatement(return)
@@ -2818,12 +2818,12 @@
                   handleNoArguments(-)
                   handleSend(x, -)
                   beginBinaryExpression(-)
-                  handleLiteralInt(1)
+                    handleLiteralInt(1)
                   endBinaryExpression(-)
                 endArguments(1, (, ))
                 handleSend(late, +)
                 beginBinaryExpression(+)
-                handleLiteralInt(1)
+                  handleLiteralInt(1)
                 endBinaryExpression(+)
               endReturnStatement(true, return, ;)
             endBlockFunctionBody(2, {, })
@@ -2858,7 +2858,7 @@
                 handleNoArguments(==)
                 handleSend(x, ==)
                 beginBinaryExpression(==)
-                handleLiteralInt(0)
+                  handleLiteralInt(0)
                 endBinaryExpression(==)
                 handleParenthesizedCondition(()
                 beginThenStatement(return)
@@ -2876,12 +2876,12 @@
                   handleNoArguments(-)
                   handleSend(x, -)
                   beginBinaryExpression(-)
-                  handleLiteralInt(1)
+                    handleLiteralInt(1)
                   endBinaryExpression(-)
                 endArguments(1, (, ))
                 handleSend(library, +)
                 beginBinaryExpression(+)
-                handleLiteralInt(1)
+                  handleLiteralInt(1)
                 endBinaryExpression(+)
               endReturnStatement(true, return, ;)
             endBlockFunctionBody(2, {, })
@@ -2916,7 +2916,7 @@
                 handleNoArguments(==)
                 handleSend(x, ==)
                 beginBinaryExpression(==)
-                handleLiteralInt(0)
+                  handleLiteralInt(0)
                 endBinaryExpression(==)
                 handleParenthesizedCondition(()
                 beginThenStatement(return)
@@ -2934,12 +2934,12 @@
                   handleNoArguments(-)
                   handleSend(x, -)
                   beginBinaryExpression(-)
-                  handleLiteralInt(1)
+                    handleLiteralInt(1)
                   endBinaryExpression(-)
                 endArguments(1, (, ))
                 handleSend(mixin, +)
                 beginBinaryExpression(+)
-                handleLiteralInt(1)
+                  handleLiteralInt(1)
                 endBinaryExpression(+)
               endReturnStatement(true, return, ;)
             endBlockFunctionBody(2, {, })
@@ -2974,7 +2974,7 @@
                 handleNoArguments(==)
                 handleSend(x, ==)
                 beginBinaryExpression(==)
-                handleLiteralInt(0)
+                  handleLiteralInt(0)
                 endBinaryExpression(==)
                 handleParenthesizedCondition(()
                 beginThenStatement(return)
@@ -2992,12 +2992,12 @@
                   handleNoArguments(-)
                   handleSend(x, -)
                   beginBinaryExpression(-)
-                  handleLiteralInt(1)
+                    handleLiteralInt(1)
                   endBinaryExpression(-)
                 endArguments(1, (, ))
                 handleSend(native, +)
                 beginBinaryExpression(+)
-                handleLiteralInt(1)
+                  handleLiteralInt(1)
                 endBinaryExpression(+)
               endReturnStatement(true, return, ;)
             endBlockFunctionBody(2, {, })
@@ -3033,7 +3033,7 @@
                 handleNoArguments(==)
                 handleSend(x, ==)
                 beginBinaryExpression(==)
-                handleLiteralInt(0)
+                  handleLiteralInt(0)
                 endBinaryExpression(==)
                 handleParenthesizedCondition(()
                 beginThenStatement(return)
@@ -3056,12 +3056,12 @@
                     handleNoArguments(-)
                     handleSend(x, -)
                     beginBinaryExpression(-)
-                    handleLiteralInt(1)
+                      handleLiteralInt(1)
                     endBinaryExpression(-)
                   endArguments(1, (, ))
                 endNewExpression(new)
                 beginBinaryExpression(+)
-                handleLiteralInt(1)
+                  handleLiteralInt(1)
                 endBinaryExpression(+)
               endReturnStatement(true, return, ;)
             endBlockFunctionBody(2, {, })
@@ -3097,7 +3097,7 @@
                 handleNoArguments(==)
                 handleSend(x, ==)
                 beginBinaryExpression(==)
-                handleLiteralInt(0)
+                  handleLiteralInt(0)
                 endBinaryExpression(==)
                 handleParenthesizedCondition(()
                 beginThenStatement(return)
@@ -3115,12 +3115,12 @@
                   handleNoArguments(-)
                   handleSend(x, -)
                   beginBinaryExpression(-)
-                  handleLiteralInt(1)
+                    handleLiteralInt(1)
                   endBinaryExpression(-)
                 endArguments(1, (, ))
                 handleSend((, ))
                 beginBinaryExpression(+)
-                handleLiteralInt(1)
+                  handleLiteralInt(1)
                 endBinaryExpression(+)
               endReturnStatement(true, return, ;)
             endBlockFunctionBody(2, {, })
@@ -3155,7 +3155,7 @@
                 handleNoArguments(==)
                 handleSend(x, ==)
                 beginBinaryExpression(==)
-                handleLiteralInt(0)
+                  handleLiteralInt(0)
                 endBinaryExpression(==)
                 handleParenthesizedCondition(()
                 beginThenStatement(return)
@@ -3173,12 +3173,12 @@
                   handleNoArguments(-)
                   handleSend(x, -)
                   beginBinaryExpression(-)
-                  handleLiteralInt(1)
+                    handleLiteralInt(1)
                   endBinaryExpression(-)
                 endArguments(1, (, ))
                 handleSend(of, +)
                 beginBinaryExpression(+)
-                handleLiteralInt(1)
+                  handleLiteralInt(1)
                 endBinaryExpression(+)
               endReturnStatement(true, return, ;)
             endBlockFunctionBody(2, {, })
@@ -3213,7 +3213,7 @@
                 handleNoArguments(==)
                 handleSend(x, ==)
                 beginBinaryExpression(==)
-                handleLiteralInt(0)
+                  handleLiteralInt(0)
                 endBinaryExpression(==)
                 handleParenthesizedCondition(()
                 beginThenStatement(return)
@@ -3231,12 +3231,12 @@
                   handleNoArguments(-)
                   handleSend(x, -)
                   beginBinaryExpression(-)
-                  handleLiteralInt(1)
+                    handleLiteralInt(1)
                   endBinaryExpression(-)
                 endArguments(1, (, ))
                 handleSend(on, +)
                 beginBinaryExpression(+)
-                handleLiteralInt(1)
+                  handleLiteralInt(1)
                 endBinaryExpression(+)
               endReturnStatement(true, return, ;)
             endBlockFunctionBody(2, {, })
@@ -3271,7 +3271,7 @@
                 handleNoArguments(==)
                 handleSend(x, ==)
                 beginBinaryExpression(==)
-                handleLiteralInt(0)
+                  handleLiteralInt(0)
                 endBinaryExpression(==)
                 handleParenthesizedCondition(()
                 beginThenStatement(return)
@@ -3289,12 +3289,12 @@
                   handleNoArguments(-)
                   handleSend(x, -)
                   beginBinaryExpression(-)
-                  handleLiteralInt(1)
+                    handleLiteralInt(1)
                   endBinaryExpression(-)
                 endArguments(1, (, ))
                 handleSend(operator, +)
                 beginBinaryExpression(+)
-                handleLiteralInt(1)
+                  handleLiteralInt(1)
                 endBinaryExpression(+)
               endReturnStatement(true, return, ;)
             endBlockFunctionBody(2, {, })
@@ -3329,7 +3329,7 @@
                 handleNoArguments(==)
                 handleSend(x, ==)
                 beginBinaryExpression(==)
-                handleLiteralInt(0)
+                  handleLiteralInt(0)
                 endBinaryExpression(==)
                 handleParenthesizedCondition(()
                 beginThenStatement(return)
@@ -3347,12 +3347,12 @@
                   handleNoArguments(-)
                   handleSend(x, -)
                   beginBinaryExpression(-)
-                  handleLiteralInt(1)
+                    handleLiteralInt(1)
                   endBinaryExpression(-)
                 endArguments(1, (, ))
                 handleSend(out, +)
                 beginBinaryExpression(+)
-                handleLiteralInt(1)
+                  handleLiteralInt(1)
                 endBinaryExpression(+)
               endReturnStatement(true, return, ;)
             endBlockFunctionBody(2, {, })
@@ -3387,7 +3387,7 @@
                 handleNoArguments(==)
                 handleSend(x, ==)
                 beginBinaryExpression(==)
-                handleLiteralInt(0)
+                  handleLiteralInt(0)
                 endBinaryExpression(==)
                 handleParenthesizedCondition(()
                 beginThenStatement(return)
@@ -3405,12 +3405,12 @@
                   handleNoArguments(-)
                   handleSend(x, -)
                   beginBinaryExpression(-)
-                  handleLiteralInt(1)
+                    handleLiteralInt(1)
                   endBinaryExpression(-)
                 endArguments(1, (, ))
                 handleSend(part, +)
                 beginBinaryExpression(+)
-                handleLiteralInt(1)
+                  handleLiteralInt(1)
                 endBinaryExpression(+)
               endReturnStatement(true, return, ;)
             endBlockFunctionBody(2, {, })
@@ -3445,7 +3445,7 @@
                 handleNoArguments(==)
                 handleSend(x, ==)
                 beginBinaryExpression(==)
-                handleLiteralInt(0)
+                  handleLiteralInt(0)
                 endBinaryExpression(==)
                 handleParenthesizedCondition(()
                 beginThenStatement(return)
@@ -3463,12 +3463,12 @@
                   handleNoArguments(-)
                   handleSend(x, -)
                   beginBinaryExpression(-)
-                  handleLiteralInt(1)
+                    handleLiteralInt(1)
                   endBinaryExpression(-)
                 endArguments(1, (, ))
                 handleSend(patch, +)
                 beginBinaryExpression(+)
-                handleLiteralInt(1)
+                  handleLiteralInt(1)
                 endBinaryExpression(+)
               endReturnStatement(true, return, ;)
             endBlockFunctionBody(2, {, })
@@ -3503,7 +3503,7 @@
                 handleNoArguments(==)
                 handleSend(x, ==)
                 beginBinaryExpression(==)
-                handleLiteralInt(0)
+                  handleLiteralInt(0)
                 endBinaryExpression(==)
                 handleParenthesizedCondition(()
                 beginThenStatement(return)
@@ -3521,12 +3521,12 @@
                   handleNoArguments(-)
                   handleSend(x, -)
                   beginBinaryExpression(-)
-                  handleLiteralInt(1)
+                    handleLiteralInt(1)
                   endBinaryExpression(-)
                 endArguments(1, (, ))
                 handleSend(required, +)
                 beginBinaryExpression(+)
-                handleLiteralInt(1)
+                  handleLiteralInt(1)
                 endBinaryExpression(+)
               endReturnStatement(true, return, ;)
             endBlockFunctionBody(2, {, })
@@ -3562,7 +3562,7 @@
                 handleNoArguments(==)
                 handleSend(x, ==)
                 beginBinaryExpression(==)
-                handleLiteralInt(0)
+                  handleLiteralInt(0)
                 endBinaryExpression(==)
                 handleParenthesizedCondition(()
                 beginThenStatement(return)
@@ -3581,12 +3581,12 @@
                   handleNoArguments(-)
                   handleSend(x, -)
                   beginBinaryExpression(-)
-                  handleLiteralInt(1)
+                    handleLiteralInt(1)
                   endBinaryExpression(-)
                 endArguments(1, (, ))
                 handleSend(rethrow, +)
                 beginBinaryExpression(+)
-                handleLiteralInt(1)
+                  handleLiteralInt(1)
                 endBinaryExpression(+)
               endReturnStatement(true, return, ;)
             endBlockFunctionBody(2, {, })
@@ -3622,7 +3622,7 @@
                 handleNoArguments(==)
                 handleSend(x, ==)
                 beginBinaryExpression(==)
-                handleLiteralInt(0)
+                  handleLiteralInt(0)
                 endBinaryExpression(==)
                 handleParenthesizedCondition(()
                 beginThenStatement(return)
@@ -3638,11 +3638,11 @@
                 handleNoArguments(-)
                 handleSend(x, -)
                 beginBinaryExpression(-)
-                handleLiteralInt(1)
+                  handleLiteralInt(1)
                 endBinaryExpression(-)
                 handleParenthesizedExpression(()
                 beginBinaryExpression(+)
-                handleLiteralInt(1)
+                  handleLiteralInt(1)
                 endBinaryExpression(+)
               endReturnStatement(true, return, ;)
             endBlockFunctionBody(2, {, })
@@ -3677,7 +3677,7 @@
                 handleNoArguments(==)
                 handleSend(x, ==)
                 beginBinaryExpression(==)
-                handleLiteralInt(0)
+                  handleLiteralInt(0)
                 endBinaryExpression(==)
                 handleParenthesizedCondition(()
                 beginThenStatement(return)
@@ -3695,12 +3695,12 @@
                   handleNoArguments(-)
                   handleSend(x, -)
                   beginBinaryExpression(-)
-                  handleLiteralInt(1)
+                    handleLiteralInt(1)
                   endBinaryExpression(-)
                 endArguments(1, (, ))
                 handleSend(set, +)
                 beginBinaryExpression(+)
-                handleLiteralInt(1)
+                  handleLiteralInt(1)
                 endBinaryExpression(+)
               endReturnStatement(true, return, ;)
             endBlockFunctionBody(2, {, })
@@ -3735,7 +3735,7 @@
                 handleNoArguments(==)
                 handleSend(x, ==)
                 beginBinaryExpression(==)
-                handleLiteralInt(0)
+                  handleLiteralInt(0)
                 endBinaryExpression(==)
                 handleParenthesizedCondition(()
                 beginThenStatement(return)
@@ -3753,12 +3753,12 @@
                   handleNoArguments(-)
                   handleSend(x, -)
                   beginBinaryExpression(-)
-                  handleLiteralInt(1)
+                    handleLiteralInt(1)
                   endBinaryExpression(-)
                 endArguments(1, (, ))
                 handleSend(show, +)
                 beginBinaryExpression(+)
-                handleLiteralInt(1)
+                  handleLiteralInt(1)
                 endBinaryExpression(+)
               endReturnStatement(true, return, ;)
             endBlockFunctionBody(2, {, })
@@ -3793,7 +3793,7 @@
                 handleNoArguments(==)
                 handleSend(x, ==)
                 beginBinaryExpression(==)
-                handleLiteralInt(0)
+                  handleLiteralInt(0)
                 endBinaryExpression(==)
                 handleParenthesizedCondition(()
                 beginThenStatement(return)
@@ -3811,12 +3811,12 @@
                   handleNoArguments(-)
                   handleSend(x, -)
                   beginBinaryExpression(-)
-                  handleLiteralInt(1)
+                    handleLiteralInt(1)
                   endBinaryExpression(-)
                 endArguments(1, (, ))
                 handleSend(source, +)
                 beginBinaryExpression(+)
-                handleLiteralInt(1)
+                  handleLiteralInt(1)
                 endBinaryExpression(+)
               endReturnStatement(true, return, ;)
             endBlockFunctionBody(2, {, })
@@ -3851,7 +3851,7 @@
                 handleNoArguments(==)
                 handleSend(x, ==)
                 beginBinaryExpression(==)
-                handleLiteralInt(0)
+                  handleLiteralInt(0)
                 endBinaryExpression(==)
                 handleParenthesizedCondition(()
                 beginThenStatement(return)
@@ -3869,12 +3869,12 @@
                   handleNoArguments(-)
                   handleSend(x, -)
                   beginBinaryExpression(-)
-                  handleLiteralInt(1)
+                    handleLiteralInt(1)
                   endBinaryExpression(-)
                 endArguments(1, (, ))
                 handleSend(static, +)
                 beginBinaryExpression(+)
-                handleLiteralInt(1)
+                  handleLiteralInt(1)
                 endBinaryExpression(+)
               endReturnStatement(true, return, ;)
             endBlockFunctionBody(2, {, })
@@ -3910,7 +3910,7 @@
                 handleNoArguments(==)
                 handleSend(x, ==)
                 beginBinaryExpression(==)
-                handleLiteralInt(0)
+                  handleLiteralInt(0)
                 endBinaryExpression(==)
                 handleParenthesizedCondition(()
                 beginThenStatement(return)
@@ -3928,12 +3928,12 @@
                   handleNoArguments(-)
                   handleSend(x, -)
                   beginBinaryExpression(-)
-                  handleLiteralInt(1)
+                    handleLiteralInt(1)
                   endBinaryExpression(-)
                 endArguments(1, (, ))
                 handleSend(super, +)
                 beginBinaryExpression(+)
-                handleLiteralInt(1)
+                  handleLiteralInt(1)
                 endBinaryExpression(+)
               endReturnStatement(true, return, ;)
             endBlockFunctionBody(2, {, })
@@ -3969,7 +3969,7 @@
                 handleNoArguments(==)
                 handleSend(x, ==)
                 beginBinaryExpression(==)
-                handleLiteralInt(0)
+                  handleLiteralInt(0)
                 endBinaryExpression(==)
                 handleParenthesizedCondition(()
                 beginThenStatement(return)
@@ -3992,7 +3992,7 @@
                 handleNoArguments(-)
                 handleSend(x, -)
                 beginBinaryExpression(-)
-                handleLiteralInt(1)
+                  handleLiteralInt(1)
                 endBinaryExpression(-)
                 handleParenthesizedCondition(()
                 handleRecoverableError(Message[ExpectedClassOrMixinBody, A switch statement must have a body, even if it is empty., Try adding an empty body., {string: switch statement}], ), ))
@@ -4005,7 +4005,7 @@
               handleNoArguments(+)
               handleSend(, +)
               beginBinaryExpression(+)
-              handleLiteralInt(1)
+                handleLiteralInt(1)
               endBinaryExpression(+)
               handleExpressionStatement(;)
             endBlockFunctionBody(4, {, })
@@ -4040,7 +4040,7 @@
                 handleNoArguments(==)
                 handleSend(x, ==)
                 beginBinaryExpression(==)
-                handleLiteralInt(0)
+                  handleLiteralInt(0)
                 endBinaryExpression(==)
                 handleParenthesizedCondition(()
                 beginThenStatement(return)
@@ -4058,12 +4058,12 @@
                   handleNoArguments(-)
                   handleSend(x, -)
                   beginBinaryExpression(-)
-                  handleLiteralInt(1)
+                    handleLiteralInt(1)
                   endBinaryExpression(-)
                 endArguments(1, (, ))
                 handleSend(sync, +)
                 beginBinaryExpression(+)
-                handleLiteralInt(1)
+                  handleLiteralInt(1)
                 endBinaryExpression(+)
               endReturnStatement(true, return, ;)
             endBlockFunctionBody(2, {, })
@@ -4072,677 +4072,678 @@
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          handleIdentifier(int, typeReference)
-          handleNoTypeArguments(this)
-          handleType(int, null)
-          handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'this'., null, {token: this}], this, this)
-          handleIdentifier(this, fieldDeclaration)
-          handleNoFieldInitializer(()
-          handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], this, this)
-        endClassFields(null, null, null, null, null, null, 1, int, ;)
-      endMember()
-      beginMetadataStar(()
-      endMetadataStar(0)
-      beginMember()
-        beginMethod(null, null, null, null, null, ()
-          handleNoType(;)
-          handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
-          handleIdentifier(, 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, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
-          endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
-          handleNoInitializers()
-          handleAsyncModifier(null, null)
-          beginBlockFunctionBody({)
-            beginIfStatement(if)
-              handleIdentifier(x, expression)
-              handleNoTypeArguments(==)
-              handleNoArguments(==)
-              handleSend(x, ==)
-              beginBinaryExpression(==)
-              handleLiteralInt(0)
-              endBinaryExpression(==)
-              handleParenthesizedCondition(()
-              beginThenStatement(return)
-                beginReturnStatement(return)
-                  handleLiteralInt(42)
-                endReturnStatement(true, return, ;)
-              endThenStatement(;)
-            endIfStatement(if, null)
-            beginReturnStatement(return)
-              handleThisExpression(this, expression)
-              handleNoTypeArguments(()
-              beginArguments(()
+          beginFields(})
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(this)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'this'., null, {token: this}], this, this)
+            handleIdentifier(this, fieldDeclaration)
+            handleNoFieldInitializer(()
+            handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], this, this)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+        beginMetadataStar(()
+        endMetadataStar(0)
+        beginMember()
+          beginMethod(null, null, null, null, null, ()
+            handleNoType(;)
+            handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+            handleIdentifier(, 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, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+            endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+            handleNoInitializers()
+            handleAsyncModifier(null, null)
+            beginBlockFunctionBody({)
+              beginIfStatement(if)
+                handleIdentifier(x, expression)
+                handleNoTypeArguments(==)
+                handleNoArguments(==)
+                handleSend(x, ==)
+                beginBinaryExpression(==)
+                  handleLiteralInt(0)
+                endBinaryExpression(==)
+                handleParenthesizedCondition(()
+                beginThenStatement(return)
+                  beginReturnStatement(return)
+                    handleLiteralInt(42)
+                  endReturnStatement(true, return, ;)
+                endThenStatement(;)
+              endIfStatement(if, null)
+              beginReturnStatement(return)
+                handleThisExpression(this, expression)
+                handleNoTypeArguments(()
+                beginArguments(()
+                  handleIdentifier(x, expression)
+                  handleNoTypeArguments(-)
+                  handleNoArguments(-)
+                  handleSend(x, -)
+                  beginBinaryExpression(-)
+                    handleLiteralInt(1)
+                  endBinaryExpression(-)
+                endArguments(1, (, ))
+                handleSend(this, +)
+                beginBinaryExpression(+)
+                  handleLiteralInt(1)
+                endBinaryExpression(+)
+              endReturnStatement(true, return, ;)
+            endBlockFunctionBody(2, {, })
+          endClassMethod(null, , (, null, })
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginMethod(null, null, null, null, null, throw)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(throw)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'throw'., null, {token: throw}], throw, throw)
+            handleIdentifier(throw, 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, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+            endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+            handleNoInitializers()
+            handleAsyncModifier(null, null)
+            beginBlockFunctionBody({)
+              beginIfStatement(if)
+                handleIdentifier(x, expression)
+                handleNoTypeArguments(==)
+                handleNoArguments(==)
+                handleSend(x, ==)
+                beginBinaryExpression(==)
+                  handleLiteralInt(0)
+                endBinaryExpression(==)
+                handleParenthesizedCondition(()
+                beginThenStatement(return)
+                  beginReturnStatement(return)
+                    handleLiteralInt(42)
+                  endReturnStatement(true, return, ;)
+                endThenStatement(;)
+              endIfStatement(if, null)
+              beginReturnStatement(return)
                 handleIdentifier(x, expression)
                 handleNoTypeArguments(-)
                 handleNoArguments(-)
                 handleSend(x, -)
                 beginBinaryExpression(-)
-                handleLiteralInt(1)
+                  handleLiteralInt(1)
                 endBinaryExpression(-)
-              endArguments(1, (, ))
-              handleSend(this, +)
-              beginBinaryExpression(+)
-              handleLiteralInt(1)
-              endBinaryExpression(+)
-            endReturnStatement(true, return, ;)
-          endBlockFunctionBody(2, {, })
-        endClassMethod(null, , (, null, })
-      endMember()
-      beginMetadataStar(int)
-      endMetadataStar(0)
-      beginMember()
-        beginMethod(null, null, null, null, null, throw)
-          handleIdentifier(int, typeReference)
-          handleNoTypeArguments(throw)
-          handleType(int, null)
-          handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'throw'., null, {token: throw}], throw, throw)
-          handleIdentifier(throw, 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, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
-          endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
-          handleNoInitializers()
-          handleAsyncModifier(null, null)
-          beginBlockFunctionBody({)
-            beginIfStatement(if)
-              handleIdentifier(x, expression)
-              handleNoTypeArguments(==)
-              handleNoArguments(==)
-              handleSend(x, ==)
-              beginBinaryExpression(==)
-              handleLiteralInt(0)
-              endBinaryExpression(==)
-              handleParenthesizedCondition(()
-              beginThenStatement(return)
-                beginReturnStatement(return)
-                  handleLiteralInt(42)
-                endReturnStatement(true, return, ;)
-              endThenStatement(;)
-            endIfStatement(if, null)
-            beginReturnStatement(return)
+                handleParenthesizedExpression(()
+                beginBinaryExpression(+)
+                  handleLiteralInt(1)
+                endBinaryExpression(+)
+                handleThrowExpression(throw, ;)
+              endReturnStatement(true, return, ;)
+            endBlockFunctionBody(2, {, })
+          endClassMethod(null, int, (, null, })
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginMethod(null, null, null, null, null, true)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(true)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'true'., null, {token: true}], true, true)
+            handleIdentifier(true, 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, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+            endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+            handleNoInitializers()
+            handleAsyncModifier(null, null)
+            beginBlockFunctionBody({)
+              beginIfStatement(if)
+                handleIdentifier(x, expression)
+                handleNoTypeArguments(==)
+                handleNoArguments(==)
+                handleSend(x, ==)
+                beginBinaryExpression(==)
+                  handleLiteralInt(0)
+                endBinaryExpression(==)
+                handleParenthesizedCondition(()
+                beginThenStatement(return)
+                  beginReturnStatement(return)
+                    handleLiteralInt(42)
+                  endReturnStatement(true, return, ;)
+                endThenStatement(;)
+              endIfStatement(if, null)
+              beginReturnStatement(return)
+                handleLiteralBool(true)
+                handleNoTypeArguments(()
+                beginArguments(()
+                  handleIdentifier(x, expression)
+                  handleNoTypeArguments(-)
+                  handleNoArguments(-)
+                  handleSend(x, -)
+                  beginBinaryExpression(-)
+                    handleLiteralInt(1)
+                  endBinaryExpression(-)
+                endArguments(1, (, ))
+                handleSend((, ))
+                beginBinaryExpression(+)
+                  handleLiteralInt(1)
+                endBinaryExpression(+)
+              endReturnStatement(true, return, ;)
+            endBlockFunctionBody(2, {, })
+          endClassMethod(null, int, (, null, })
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginMethod(null, null, null, null, null, try)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(try)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'try'., null, {token: try}], try, try)
+            handleIdentifier(try, 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, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+            endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+            handleNoInitializers()
+            handleAsyncModifier(null, null)
+            beginBlockFunctionBody({)
+              beginIfStatement(if)
+                handleIdentifier(x, expression)
+                handleNoTypeArguments(==)
+                handleNoArguments(==)
+                handleSend(x, ==)
+                beginBinaryExpression(==)
+                  handleLiteralInt(0)
+                endBinaryExpression(==)
+                handleParenthesizedCondition(()
+                beginThenStatement(return)
+                  beginReturnStatement(return)
+                    handleLiteralInt(42)
+                  endReturnStatement(true, return, ;)
+                endThenStatement(;)
+              endIfStatement(if, null)
+              beginReturnStatement(return)
+                handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'try'., null, {token: try}], try, try)
+                handleIdentifier(, expression)
+                handleNoTypeArguments(try)
+                handleNoArguments(try)
+                handleSend(, try)
+                handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], try, try)
+              endReturnStatement(true, return, ;)
+              beginTryStatement(try)
+                handleRecoverableError(Message[ExpectedClassOrMixinBody, A try statement must have a body, even if it is empty., Try adding an empty body., {string: try statement}], try, try)
+                beginBlock({, BlockKind(try statement))
+                endBlock(0, {, }, BlockKind(try statement))
+                handleRecoverableError(OnlyTry, try, try)
+              endTryStatement(0, try, null)
               handleIdentifier(x, expression)
               handleNoTypeArguments(-)
               handleNoArguments(-)
               handleSend(x, -)
               beginBinaryExpression(-)
-              handleLiteralInt(1)
+                handleLiteralInt(1)
               endBinaryExpression(-)
               handleParenthesizedExpression(()
               beginBinaryExpression(+)
-              handleLiteralInt(1)
-              endBinaryExpression(+)
-              handleThrowExpression(throw, ;)
-            endReturnStatement(true, return, ;)
-          endBlockFunctionBody(2, {, })
-        endClassMethod(null, int, (, null, })
-      endMember()
-      beginMetadataStar(int)
-      endMetadataStar(0)
-      beginMember()
-        beginMethod(null, null, null, null, null, true)
-          handleIdentifier(int, typeReference)
-          handleNoTypeArguments(true)
-          handleType(int, null)
-          handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'true'., null, {token: true}], true, true)
-          handleIdentifier(true, 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, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
-          endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
-          handleNoInitializers()
-          handleAsyncModifier(null, null)
-          beginBlockFunctionBody({)
-            beginIfStatement(if)
-              handleIdentifier(x, expression)
-              handleNoTypeArguments(==)
-              handleNoArguments(==)
-              handleSend(x, ==)
-              beginBinaryExpression(==)
-              handleLiteralInt(0)
-              endBinaryExpression(==)
-              handleParenthesizedCondition(()
-              beginThenStatement(return)
-                beginReturnStatement(return)
-                  handleLiteralInt(42)
-                endReturnStatement(true, return, ;)
-              endThenStatement(;)
-            endIfStatement(if, null)
-            beginReturnStatement(return)
-              handleLiteralBool(true)
-              handleNoTypeArguments(()
-              beginArguments(()
-                handleIdentifier(x, expression)
-                handleNoTypeArguments(-)
-                handleNoArguments(-)
-                handleSend(x, -)
-                beginBinaryExpression(-)
                 handleLiteralInt(1)
-                endBinaryExpression(-)
-              endArguments(1, (, ))
-              handleSend((, ))
-              beginBinaryExpression(+)
-              handleLiteralInt(1)
               endBinaryExpression(+)
-            endReturnStatement(true, return, ;)
-          endBlockFunctionBody(2, {, })
-        endClassMethod(null, int, (, null, })
-      endMember()
-      beginMetadataStar(int)
-      endMetadataStar(0)
-      beginMember()
-        beginMethod(null, null, null, null, null, try)
-          handleIdentifier(int, typeReference)
-          handleNoTypeArguments(try)
-          handleType(int, null)
-          handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'try'., null, {token: try}], try, try)
-          handleIdentifier(try, 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, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
-          endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
-          handleNoInitializers()
-          handleAsyncModifier(null, null)
-          beginBlockFunctionBody({)
-            beginIfStatement(if)
-              handleIdentifier(x, expression)
-              handleNoTypeArguments(==)
-              handleNoArguments(==)
-              handleSend(x, ==)
-              beginBinaryExpression(==)
-              handleLiteralInt(0)
-              endBinaryExpression(==)
-              handleParenthesizedCondition(()
-              beginThenStatement(return)
-                beginReturnStatement(return)
-                  handleLiteralInt(42)
-                endReturnStatement(true, return, ;)
-              endThenStatement(;)
-            endIfStatement(if, null)
-            beginReturnStatement(return)
-              handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'try'., null, {token: try}], try, try)
-              handleIdentifier(, expression)
-              handleNoTypeArguments(try)
-              handleNoArguments(try)
-              handleSend(, try)
-              handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], try, try)
-            endReturnStatement(true, return, ;)
-            beginTryStatement(try)
-              handleRecoverableError(Message[ExpectedClassOrMixinBody, A try statement must have a body, even if it is empty., Try adding an empty body., {string: try statement}], try, try)
-              beginBlock({, BlockKind(try statement))
-              endBlock(0, {, }, BlockKind(try statement))
-              handleRecoverableError(OnlyTry, try, try)
-            endTryStatement(0, try, null)
-            handleIdentifier(x, expression)
-            handleNoTypeArguments(-)
-            handleNoArguments(-)
-            handleSend(x, -)
-            beginBinaryExpression(-)
-            handleLiteralInt(1)
-            endBinaryExpression(-)
-            handleParenthesizedExpression(()
-            beginBinaryExpression(+)
-            handleLiteralInt(1)
-            endBinaryExpression(+)
-            handleExpressionStatement(;)
-          endBlockFunctionBody(4, {, })
-        endClassMethod(null, int, (, null, })
-      endMember()
-      beginMetadataStar(int)
-      endMetadataStar(0)
-      beginMember()
-        beginMethod(null, null, null, null, null, typedef)
-          handleIdentifier(int, typeReference)
-          handleNoTypeArguments(typedef)
-          handleType(int, null)
-          handleIdentifier(typedef, 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, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
-          endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
-          handleNoInitializers()
-          handleAsyncModifier(null, null)
-          beginBlockFunctionBody({)
-            beginIfStatement(if)
-              handleIdentifier(x, expression)
-              handleNoTypeArguments(==)
-              handleNoArguments(==)
-              handleSend(x, ==)
-              beginBinaryExpression(==)
-              handleLiteralInt(0)
-              endBinaryExpression(==)
-              handleParenthesizedCondition(()
-              beginThenStatement(return)
-                beginReturnStatement(return)
-                  handleLiteralInt(42)
-                endReturnStatement(true, return, ;)
-              endThenStatement(;)
-            endIfStatement(if, null)
-            beginReturnStatement(return)
-              handleIdentifier(typedef, expression)
-              handleNoTypeArguments(()
-              beginArguments(()
+              handleExpressionStatement(;)
+            endBlockFunctionBody(4, {, })
+          endClassMethod(null, int, (, null, })
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginMethod(null, null, null, null, null, typedef)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(typedef)
+            handleType(int, null)
+            handleIdentifier(typedef, 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, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+            endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+            handleNoInitializers()
+            handleAsyncModifier(null, null)
+            beginBlockFunctionBody({)
+              beginIfStatement(if)
                 handleIdentifier(x, expression)
-                handleNoTypeArguments(-)
-                handleNoArguments(-)
-                handleSend(x, -)
-                beginBinaryExpression(-)
-                handleLiteralInt(1)
-                endBinaryExpression(-)
-              endArguments(1, (, ))
-              handleSend(typedef, +)
-              beginBinaryExpression(+)
-              handleLiteralInt(1)
-              endBinaryExpression(+)
-            endReturnStatement(true, return, ;)
-          endBlockFunctionBody(2, {, })
-        endClassMethod(null, int, (, null, })
-      endMember()
-      beginMetadataStar(int)
-      endMetadataStar(0)
-      beginMember()
-        beginMethod(null, null, null, null, null, var)
-          handleIdentifier(int, typeReference)
-          handleNoTypeArguments(var)
-          handleType(int, null)
-          handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'var'., null, {token: var}], var, var)
-          handleIdentifier(var, 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, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
-          endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
-          handleNoInitializers()
-          handleAsyncModifier(null, null)
-          beginBlockFunctionBody({)
-            beginIfStatement(if)
-              handleIdentifier(x, expression)
-              handleNoTypeArguments(==)
-              handleNoArguments(==)
-              handleSend(x, ==)
-              beginBinaryExpression(==)
-              handleLiteralInt(0)
-              endBinaryExpression(==)
-              handleParenthesizedCondition(()
-              beginThenStatement(return)
-                beginReturnStatement(return)
-                  handleLiteralInt(42)
-                endReturnStatement(true, return, ;)
-              endThenStatement(;)
-            endIfStatement(if, null)
-            beginReturnStatement(return)
-              handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'var'., null, {token: var}], var, var)
-              handleIdentifier(, expression)
-              handleNoTypeArguments(var)
-              handleNoArguments(var)
-              handleSend(, var)
-              handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], var, var)
-            endReturnStatement(true, return, ;)
-            beginMetadataStar(var)
-            endMetadataStar(0)
-            handleNoType(var)
-            beginVariablesDeclaration((, null, var)
-              handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
-              handleIdentifier(, localVariableDeclaration)
-              beginInitializedIdentifier()
-                handleNoVariableInitializer()
-              endInitializedIdentifier()
-              handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], x, x)
-            endVariablesDeclaration(1, ;)
-            handleIdentifier(x, expression)
-            handleNoTypeArguments(-)
-            handleNoArguments(-)
-            handleSend(x, -)
-            beginBinaryExpression(-)
-            handleLiteralInt(1)
-            endBinaryExpression(-)
-            handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], 1, 1)
-            handleExpressionStatement(;)
-            handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ')'., null, {token: )}], ), ))
-            handleIdentifier(, expression)
-            handleNoTypeArguments())
-            handleNoArguments())
-            handleSend(, ))
-            handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], ), ))
-            handleExpressionStatement(;)
-            handleRecoverableError(Message[UnexpectedToken, Unexpected token ';'., null, {token: ;}], ), ))
-            handleRecoverableError(UnsupportedPrefixPlus, +, +)
-            handleIdentifier(, expression)
-            handleNoTypeArguments(+)
-            handleNoArguments(+)
-            handleSend(, +)
-            beginBinaryExpression(+)
-            handleLiteralInt(1)
-            endBinaryExpression(+)
-            handleExpressionStatement(;)
-          endBlockFunctionBody(6, {, })
-        endClassMethod(null, int, (, null, })
-      endMember()
-      beginMetadataStar(int)
-      endMetadataStar(0)
-      beginMember()
-        beginMethod(null, null, null, null, null, void)
-          handleIdentifier(int, typeReference)
-          handleNoTypeArguments(void)
-          handleType(int, null)
-          handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'void'., null, {token: void}], void, void)
-          handleIdentifier(void, 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, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
-          endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
-          handleNoInitializers()
-          handleAsyncModifier(null, null)
-          beginBlockFunctionBody({)
-            beginIfStatement(if)
-              handleIdentifier(x, expression)
-              handleNoTypeArguments(==)
-              handleNoArguments(==)
-              handleSend(x, ==)
-              beginBinaryExpression(==)
-              handleLiteralInt(0)
-              endBinaryExpression(==)
-              handleParenthesizedCondition(()
-              beginThenStatement(return)
-                beginReturnStatement(return)
-                  handleLiteralInt(42)
-                endReturnStatement(true, return, ;)
-              endThenStatement(;)
-            endIfStatement(if, null)
-            beginReturnStatement(return)
-              handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'void'., null, {token: void}], void, void)
-              handleIdentifier(, expression)
-              handleNoTypeArguments(void)
-              handleNoArguments(void)
-              handleSend(, void)
-              handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], void, void)
-            endReturnStatement(true, return, ;)
-            beginMetadataStar(void)
-            endMetadataStar(0)
-            handleVoidKeyword(void)
-            beginVariablesDeclaration((, null, null)
-              handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
-              handleIdentifier(, localVariableDeclaration)
-              beginInitializedIdentifier()
-                handleNoVariableInitializer()
-              endInitializedIdentifier()
-              handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], x, x)
-            endVariablesDeclaration(1, ;)
-            handleIdentifier(x, expression)
-            handleNoTypeArguments(-)
-            handleNoArguments(-)
-            handleSend(x, -)
-            beginBinaryExpression(-)
-            handleLiteralInt(1)
-            endBinaryExpression(-)
-            handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], 1, 1)
-            handleExpressionStatement(;)
-            handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ')'., null, {token: )}], ), ))
-            handleIdentifier(, expression)
-            handleNoTypeArguments())
-            handleNoArguments())
-            handleSend(, ))
-            handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], ), ))
-            handleExpressionStatement(;)
-            handleRecoverableError(Message[UnexpectedToken, Unexpected token ';'., null, {token: ;}], ), ))
-            handleRecoverableError(UnsupportedPrefixPlus, +, +)
-            handleIdentifier(, expression)
-            handleNoTypeArguments(+)
-            handleNoArguments(+)
-            handleSend(, +)
-            beginBinaryExpression(+)
-            handleLiteralInt(1)
-            endBinaryExpression(+)
-            handleExpressionStatement(;)
-          endBlockFunctionBody(6, {, })
-        endClassMethod(null, int, (, null, })
-      endMember()
-      beginMetadataStar(int)
-      endMetadataStar(0)
-      beginMember()
-        beginMethod(null, null, null, null, null, while)
-          handleIdentifier(int, typeReference)
-          handleNoTypeArguments(while)
-          handleType(int, null)
-          handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'while'., null, {token: while}], while, while)
-          handleIdentifier(while, 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, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
-          endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
-          handleNoInitializers()
-          handleAsyncModifier(null, null)
-          beginBlockFunctionBody({)
-            beginIfStatement(if)
-              handleIdentifier(x, expression)
-              handleNoTypeArguments(==)
-              handleNoArguments(==)
-              handleSend(x, ==)
-              beginBinaryExpression(==)
-              handleLiteralInt(0)
-              endBinaryExpression(==)
-              handleParenthesizedCondition(()
-              beginThenStatement(return)
-                beginReturnStatement(return)
-                  handleLiteralInt(42)
-                endReturnStatement(true, return, ;)
-              endThenStatement(;)
-            endIfStatement(if, null)
-            beginReturnStatement(return)
-              handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'while'., null, {token: while}], while, while)
-              handleIdentifier(, expression)
-              handleNoTypeArguments(while)
-              handleNoArguments(while)
-              handleSend(, while)
-              handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], while, while)
-            endReturnStatement(true, return, ;)
-            beginWhileStatement(while)
+                handleNoTypeArguments(==)
+                handleNoArguments(==)
+                handleSend(x, ==)
+                beginBinaryExpression(==)
+                  handleLiteralInt(0)
+                endBinaryExpression(==)
+                handleParenthesizedCondition(()
+                beginThenStatement(return)
+                  beginReturnStatement(return)
+                    handleLiteralInt(42)
+                  endReturnStatement(true, return, ;)
+                endThenStatement(;)
+              endIfStatement(if, null)
+              beginReturnStatement(return)
+                handleIdentifier(typedef, expression)
+                handleNoTypeArguments(()
+                beginArguments(()
+                  handleIdentifier(x, expression)
+                  handleNoTypeArguments(-)
+                  handleNoArguments(-)
+                  handleSend(x, -)
+                  beginBinaryExpression(-)
+                    handleLiteralInt(1)
+                  endBinaryExpression(-)
+                endArguments(1, (, ))
+                handleSend(typedef, +)
+                beginBinaryExpression(+)
+                  handleLiteralInt(1)
+                endBinaryExpression(+)
+              endReturnStatement(true, return, ;)
+            endBlockFunctionBody(2, {, })
+          endClassMethod(null, int, (, null, })
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginMethod(null, null, null, null, null, var)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(var)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'var'., null, {token: var}], var, var)
+            handleIdentifier(var, 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, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+            endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+            handleNoInitializers()
+            handleAsyncModifier(null, null)
+            beginBlockFunctionBody({)
+              beginIfStatement(if)
+                handleIdentifier(x, expression)
+                handleNoTypeArguments(==)
+                handleNoArguments(==)
+                handleSend(x, ==)
+                beginBinaryExpression(==)
+                  handleLiteralInt(0)
+                endBinaryExpression(==)
+                handleParenthesizedCondition(()
+                beginThenStatement(return)
+                  beginReturnStatement(return)
+                    handleLiteralInt(42)
+                  endReturnStatement(true, return, ;)
+                endThenStatement(;)
+              endIfStatement(if, null)
+              beginReturnStatement(return)
+                handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'var'., null, {token: var}], var, var)
+                handleIdentifier(, expression)
+                handleNoTypeArguments(var)
+                handleNoArguments(var)
+                handleSend(, var)
+                handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], var, var)
+              endReturnStatement(true, return, ;)
+              beginMetadataStar(var)
+              endMetadataStar(0)
+              handleNoType(var)
+              beginVariablesDeclaration((, null, var)
+                handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+                handleIdentifier(, localVariableDeclaration)
+                beginInitializedIdentifier()
+                  handleNoVariableInitializer()
+                endInitializedIdentifier()
+                handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], x, x)
+              endVariablesDeclaration(1, ;)
               handleIdentifier(x, expression)
               handleNoTypeArguments(-)
               handleNoArguments(-)
               handleSend(x, -)
               beginBinaryExpression(-)
-              handleLiteralInt(1)
+                handleLiteralInt(1)
               endBinaryExpression(-)
-              handleParenthesizedCondition(()
-              beginWhileStatementBody(+)
-                handleRecoverableError(UnsupportedPrefixPlus, +, +)
+              handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], 1, 1)
+              handleExpressionStatement(;)
+              handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ')'., null, {token: )}], ), ))
+              handleIdentifier(, expression)
+              handleNoTypeArguments())
+              handleNoArguments())
+              handleSend(, ))
+              handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], ), ))
+              handleExpressionStatement(;)
+              handleRecoverableError(Message[UnexpectedToken, Unexpected token ';'., null, {token: ;}], ), ))
+              handleRecoverableError(UnsupportedPrefixPlus, +, +)
+              handleIdentifier(, expression)
+              handleNoTypeArguments(+)
+              handleNoArguments(+)
+              handleSend(, +)
+              beginBinaryExpression(+)
+                handleLiteralInt(1)
+              endBinaryExpression(+)
+              handleExpressionStatement(;)
+            endBlockFunctionBody(6, {, })
+          endClassMethod(null, int, (, null, })
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginMethod(null, null, null, null, null, void)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(void)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'void'., null, {token: void}], void, void)
+            handleIdentifier(void, 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, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+            endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+            handleNoInitializers()
+            handleAsyncModifier(null, null)
+            beginBlockFunctionBody({)
+              beginIfStatement(if)
+                handleIdentifier(x, expression)
+                handleNoTypeArguments(==)
+                handleNoArguments(==)
+                handleSend(x, ==)
+                beginBinaryExpression(==)
+                  handleLiteralInt(0)
+                endBinaryExpression(==)
+                handleParenthesizedCondition(()
+                beginThenStatement(return)
+                  beginReturnStatement(return)
+                    handleLiteralInt(42)
+                  endReturnStatement(true, return, ;)
+                endThenStatement(;)
+              endIfStatement(if, null)
+              beginReturnStatement(return)
+                handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'void'., null, {token: void}], void, void)
                 handleIdentifier(, expression)
-                handleNoTypeArguments(+)
-                handleNoArguments(+)
-                handleSend(, +)
+                handleNoTypeArguments(void)
+                handleNoArguments(void)
+                handleSend(, void)
+                handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], void, void)
+              endReturnStatement(true, return, ;)
+              beginMetadataStar(void)
+              endMetadataStar(0)
+              handleVoidKeyword(void)
+              beginVariablesDeclaration((, null, null)
+                handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., null, {token: (}], (, ()
+                handleIdentifier(, localVariableDeclaration)
+                beginInitializedIdentifier()
+                  handleNoVariableInitializer()
+                endInitializedIdentifier()
+                handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], x, x)
+              endVariablesDeclaration(1, ;)
+              handleIdentifier(x, expression)
+              handleNoTypeArguments(-)
+              handleNoArguments(-)
+              handleSend(x, -)
+              beginBinaryExpression(-)
+                handleLiteralInt(1)
+              endBinaryExpression(-)
+              handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], 1, 1)
+              handleExpressionStatement(;)
+              handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ')'., null, {token: )}], ), ))
+              handleIdentifier(, expression)
+              handleNoTypeArguments())
+              handleNoArguments())
+              handleSend(, ))
+              handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], ), ))
+              handleExpressionStatement(;)
+              handleRecoverableError(Message[UnexpectedToken, Unexpected token ';'., null, {token: ;}], ), ))
+              handleRecoverableError(UnsupportedPrefixPlus, +, +)
+              handleIdentifier(, expression)
+              handleNoTypeArguments(+)
+              handleNoArguments(+)
+              handleSend(, +)
+              beginBinaryExpression(+)
+                handleLiteralInt(1)
+              endBinaryExpression(+)
+              handleExpressionStatement(;)
+            endBlockFunctionBody(6, {, })
+          endClassMethod(null, int, (, null, })
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginMethod(null, null, null, null, null, while)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(while)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'while'., null, {token: while}], while, while)
+            handleIdentifier(while, 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, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+            endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+            handleNoInitializers()
+            handleAsyncModifier(null, null)
+            beginBlockFunctionBody({)
+              beginIfStatement(if)
+                handleIdentifier(x, expression)
+                handleNoTypeArguments(==)
+                handleNoArguments(==)
+                handleSend(x, ==)
+                beginBinaryExpression(==)
+                  handleLiteralInt(0)
+                endBinaryExpression(==)
+                handleParenthesizedCondition(()
+                beginThenStatement(return)
+                  beginReturnStatement(return)
+                    handleLiteralInt(42)
+                  endReturnStatement(true, return, ;)
+                endThenStatement(;)
+              endIfStatement(if, null)
+              beginReturnStatement(return)
+                handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'while'., null, {token: while}], while, while)
+                handleIdentifier(, expression)
+                handleNoTypeArguments(while)
+                handleNoArguments(while)
+                handleSend(, while)
+                handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], while, while)
+              endReturnStatement(true, return, ;)
+              beginWhileStatement(while)
+                handleIdentifier(x, expression)
+                handleNoTypeArguments(-)
+                handleNoArguments(-)
+                handleSend(x, -)
+                beginBinaryExpression(-)
+                  handleLiteralInt(1)
+                endBinaryExpression(-)
+                handleParenthesizedCondition(()
+                beginWhileStatementBody(+)
+                  handleRecoverableError(UnsupportedPrefixPlus, +, +)
+                  handleIdentifier(, expression)
+                  handleNoTypeArguments(+)
+                  handleNoArguments(+)
+                  handleSend(, +)
+                  beginBinaryExpression(+)
+                    handleLiteralInt(1)
+                  endBinaryExpression(+)
+                  handleExpressionStatement(;)
+                endWhileStatementBody(})
+              endWhileStatement(while, })
+            endBlockFunctionBody(3, {, })
+          endClassMethod(null, int, (, null, })
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginMethod(null, null, null, null, null, with)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(with)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'with'., null, {token: with}], with, with)
+            handleIdentifier(with, 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, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+            endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+            handleNoInitializers()
+            handleAsyncModifier(null, null)
+            beginBlockFunctionBody({)
+              beginIfStatement(if)
+                handleIdentifier(x, expression)
+                handleNoTypeArguments(==)
+                handleNoArguments(==)
+                handleSend(x, ==)
+                beginBinaryExpression(==)
+                  handleLiteralInt(0)
+                endBinaryExpression(==)
+                handleParenthesizedCondition(()
+                beginThenStatement(return)
+                  beginReturnStatement(return)
+                    handleLiteralInt(42)
+                  endReturnStatement(true, return, ;)
+                endThenStatement(;)
+              endIfStatement(if, null)
+              beginReturnStatement(return)
+                handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'with'., null, {token: with}], with, with)
+                handleIdentifier(with, expression)
+                handleNoTypeArguments(()
+                beginArguments(()
+                  handleIdentifier(x, expression)
+                  handleNoTypeArguments(-)
+                  handleNoArguments(-)
+                  handleSend(x, -)
+                  beginBinaryExpression(-)
+                    handleLiteralInt(1)
+                  endBinaryExpression(-)
+                endArguments(1, (, ))
+                handleSend(with, +)
                 beginBinaryExpression(+)
-                handleLiteralInt(1)
+                  handleLiteralInt(1)
                 endBinaryExpression(+)
-                handleExpressionStatement(;)
-              endWhileStatementBody(})
-            endWhileStatement(while, })
-          endBlockFunctionBody(3, {, })
-        endClassMethod(null, int, (, null, })
-      endMember()
-      beginMetadataStar(int)
-      endMetadataStar(0)
-      beginMember()
-        beginMethod(null, null, null, null, null, with)
-          handleIdentifier(int, typeReference)
-          handleNoTypeArguments(with)
-          handleType(int, null)
-          handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'with'., null, {token: with}], with, with)
-          handleIdentifier(with, 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, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
-          endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
-          handleNoInitializers()
-          handleAsyncModifier(null, null)
-          beginBlockFunctionBody({)
-            beginIfStatement(if)
-              handleIdentifier(x, expression)
-              handleNoTypeArguments(==)
-              handleNoArguments(==)
-              handleSend(x, ==)
-              beginBinaryExpression(==)
-              handleLiteralInt(0)
-              endBinaryExpression(==)
-              handleParenthesizedCondition(()
-              beginThenStatement(return)
-                beginReturnStatement(return)
-                  handleLiteralInt(42)
-                endReturnStatement(true, return, ;)
-              endThenStatement(;)
-            endIfStatement(if, null)
-            beginReturnStatement(return)
-              handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'with'., null, {token: with}], with, with)
-              handleIdentifier(with, expression)
-              handleNoTypeArguments(()
-              beginArguments(()
+              endReturnStatement(true, return, ;)
+            endBlockFunctionBody(2, {, })
+          endClassMethod(null, int, (, null, })
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginMethod(null, null, null, null, null, yield)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(yield)
+            handleType(int, null)
+            handleIdentifier(yield, 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, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+            endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+            handleNoInitializers()
+            handleAsyncModifier(null, null)
+            beginBlockFunctionBody({)
+              beginIfStatement(if)
                 handleIdentifier(x, expression)
-                handleNoTypeArguments(-)
-                handleNoArguments(-)
-                handleSend(x, -)
-                beginBinaryExpression(-)
-                handleLiteralInt(1)
-                endBinaryExpression(-)
-              endArguments(1, (, ))
-              handleSend(with, +)
-              beginBinaryExpression(+)
-              handleLiteralInt(1)
-              endBinaryExpression(+)
-            endReturnStatement(true, return, ;)
-          endBlockFunctionBody(2, {, })
-        endClassMethod(null, int, (, null, })
-      endMember()
-      beginMetadataStar(int)
-      endMetadataStar(0)
-      beginMember()
-        beginMethod(null, null, null, null, null, yield)
-          handleIdentifier(int, typeReference)
-          handleNoTypeArguments(yield)
-          handleType(int, null)
-          handleIdentifier(yield, 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, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
-          endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
-          handleNoInitializers()
-          handleAsyncModifier(null, null)
-          beginBlockFunctionBody({)
-            beginIfStatement(if)
-              handleIdentifier(x, expression)
-              handleNoTypeArguments(==)
-              handleNoArguments(==)
-              handleSend(x, ==)
-              beginBinaryExpression(==)
-              handleLiteralInt(0)
-              endBinaryExpression(==)
-              handleParenthesizedCondition(()
-              beginThenStatement(return)
-                beginReturnStatement(return)
-                  handleLiteralInt(42)
-                endReturnStatement(true, return, ;)
-              endThenStatement(;)
-            endIfStatement(if, null)
-            beginReturnStatement(return)
-              handleIdentifier(yield, expression)
-              handleNoTypeArguments(()
-              beginArguments(()
-                handleIdentifier(x, expression)
-                handleNoTypeArguments(-)
-                handleNoArguments(-)
-                handleSend(x, -)
-                beginBinaryExpression(-)
-                handleLiteralInt(1)
-                endBinaryExpression(-)
-              endArguments(1, (, ))
-              handleSend(yield, +)
-              beginBinaryExpression(+)
-              handleLiteralInt(1)
-              endBinaryExpression(+)
-            endReturnStatement(true, return, ;)
-          endBlockFunctionBody(2, {, })
-        endClassMethod(null, int, (, null, })
-      endMember()
-    endClassOrMixinBody(DeclarationKind.Class, 70, {, })
-  endClassDeclaration(class, })
-endTopLevelDeclaration()
+                handleNoTypeArguments(==)
+                handleNoArguments(==)
+                handleSend(x, ==)
+                beginBinaryExpression(==)
+                  handleLiteralInt(0)
+                endBinaryExpression(==)
+                handleParenthesizedCondition(()
+                beginThenStatement(return)
+                  beginReturnStatement(return)
+                    handleLiteralInt(42)
+                  endReturnStatement(true, return, ;)
+                endThenStatement(;)
+              endIfStatement(if, null)
+              beginReturnStatement(return)
+                handleIdentifier(yield, expression)
+                handleNoTypeArguments(()
+                beginArguments(()
+                  handleIdentifier(x, expression)
+                  handleNoTypeArguments(-)
+                  handleNoArguments(-)
+                  handleSend(x, -)
+                  beginBinaryExpression(-)
+                    handleLiteralInt(1)
+                  endBinaryExpression(-)
+                endArguments(1, (, ))
+                handleSend(yield, +)
+                beginBinaryExpression(+)
+                  handleLiteralInt(1)
+                endBinaryExpression(+)
+              endReturnStatement(true, return, ;)
+            endBlockFunctionBody(2, {, })
+          endClassMethod(null, int, (, null, })
+        endMember()
+      endClassOrMixinBody(DeclarationKind.Class, 70, {, })
+    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 d61d8a2..325c75e 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
@@ -8862,6 +8862,7 @@
               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(})
                   listener: handleIdentifier(int, typeReference)
                   listener: handleNoTypeArguments(this)
                   listener: handleType(int, null)
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 544e865..7789ff7 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,862 +136,931 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    handleIdentifier(int, typeReference)
-    handleNoTypeArguments(abstract)
-    handleType(int, null)
-    handleIdentifier(abstract, topLevelVariableDeclaration)
-    beginFieldInitializer(=)
-      handleLiteralInt(42)
-    endFieldInitializer(=, ;)
-  endTopLevelFields(null, null, null, null, null, 1, int, ;)
-endTopLevelDeclaration(int)
-beginMetadataStar(int)
-endMetadataStar(0)
-beginTopLevelMember(int)
-  handleIdentifier(int, typeReference)
-  handleNoTypeArguments(as)
-  handleType(int, null)
-  handleIdentifier(as, topLevelVariableDeclaration)
-  beginFieldInitializer(=)
-    handleLiteralInt(42)
-  endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, null, 1, int, ;)
-endTopLevelDeclaration(int)
-beginMetadataStar(int)
-endMetadataStar(0)
-beginTopLevelMember(int)
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(assert)
-handleType(int, null)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'assert'., null, {token: assert}], assert, assert)
-handleIdentifier(assert, topLevelVariableDeclaration)
-beginFieldInitializer(=)
-  handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, null, 1, int, ;)
-endTopLevelDeclaration(int)
-beginMetadataStar(int)
-endMetadataStar(0)
-beginTopLevelMember(int)
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(async)
-handleType(int, null)
-handleIdentifier(async, topLevelVariableDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, null, 1, int, ;)
-endTopLevelDeclaration(int)
-beginMetadataStar(int)
-endMetadataStar(0)
-beginTopLevelMember(int)
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(await)
-handleType(int, null)
-handleIdentifier(await, topLevelVariableDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, null, 1, int, ;)
-endTopLevelDeclaration(int)
-beginMetadataStar(int)
-endMetadataStar(0)
-beginTopLevelMember(int)
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(break)
-handleType(int, null)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'break'., null, {token: break}], break, break)
-handleIdentifier(break, topLevelVariableDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, null, 1, int, ;)
-endTopLevelDeclaration(int)
-beginMetadataStar(int)
-endMetadataStar(0)
-beginTopLevelMember(int)
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(case)
-handleType(int, null)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'case'., null, {token: case}], case, case)
-handleIdentifier(case, topLevelVariableDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, null, 1, int, ;)
-endTopLevelDeclaration(int)
-beginMetadataStar(int)
-endMetadataStar(0)
-beginTopLevelMember(int)
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(catch)
-handleType(int, null)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'catch'., null, {token: catch}], catch, catch)
-handleIdentifier(catch, topLevelVariableDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, null, 1, int, ;)
-endTopLevelDeclaration(int)
-beginMetadataStar(int)
-endMetadataStar(0)
-beginTopLevelMember(int)
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(class)
-handleType(int, null)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'class'., null, {token: class}], class, class)
-handleIdentifier(class, topLevelVariableDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, null, 1, int, ;)
-endTopLevelDeclaration(int)
-beginMetadataStar(int)
-endMetadataStar(0)
-beginTopLevelMember(int)
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(const)
-handleType(int, null)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'const'., null, {token: const}], const, const)
-handleIdentifier(const, topLevelVariableDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, null, 1, int, ;)
-endTopLevelDeclaration(int)
-beginMetadataStar(int)
-endMetadataStar(0)
-beginTopLevelMember(int)
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(continue)
-handleType(int, null)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'continue'., null, {token: continue}], continue, continue)
-handleIdentifier(continue, topLevelVariableDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, null, 1, int, ;)
-endTopLevelDeclaration(int)
-beginMetadataStar(int)
-endMetadataStar(0)
-beginTopLevelMember(int)
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(covariant)
-handleType(int, null)
-handleIdentifier(covariant, topLevelVariableDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, null, 1, int, ;)
-endTopLevelDeclaration(int)
-beginMetadataStar(int)
-endMetadataStar(0)
-beginTopLevelMember(int)
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(default)
-handleType(int, null)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'default'., null, {token: default}], default, default)
-handleIdentifier(default, topLevelVariableDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, null, 1, int, ;)
-endTopLevelDeclaration(int)
-beginMetadataStar(int)
-endMetadataStar(0)
-beginTopLevelMember(int)
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(deferred)
-handleType(int, null)
-handleIdentifier(deferred, topLevelVariableDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, null, 1, int, ;)
-endTopLevelDeclaration(int)
-beginMetadataStar(int)
-endMetadataStar(0)
-beginTopLevelMember(int)
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(do)
-handleType(int, null)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'do'., null, {token: do}], do, do)
-handleIdentifier(do, topLevelVariableDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, null, 1, int, ;)
-endTopLevelDeclaration(int)
-beginMetadataStar(int)
-endMetadataStar(0)
-beginTopLevelMember(int)
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(dynamic)
-handleType(int, null)
-handleIdentifier(dynamic, topLevelVariableDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, null, 1, int, ;)
-endTopLevelDeclaration(int)
-beginMetadataStar(int)
-endMetadataStar(0)
-beginTopLevelMember(int)
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(else)
-handleType(int, null)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'else'., null, {token: else}], else, else)
-handleIdentifier(else, topLevelVariableDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, null, 1, int, ;)
-endTopLevelDeclaration(int)
-beginMetadataStar(int)
-endMetadataStar(0)
-beginTopLevelMember(int)
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(enum)
-handleType(int, null)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'enum'., null, {token: enum}], enum, enum)
-handleIdentifier(enum, topLevelVariableDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, null, 1, int, ;)
-endTopLevelDeclaration(int)
-beginMetadataStar(int)
-endMetadataStar(0)
-beginTopLevelMember(int)
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(export)
-handleType(int, null)
-handleIdentifier(export, topLevelVariableDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, null, 1, int, ;)
-endTopLevelDeclaration(int)
-beginMetadataStar(int)
-endMetadataStar(0)
-beginTopLevelMember(int)
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(extends)
-handleType(int, null)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'extends'., null, {token: extends}], extends, extends)
-handleIdentifier(extends, topLevelVariableDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, null, 1, int, ;)
-endTopLevelDeclaration(int)
-beginMetadataStar(int)
-endMetadataStar(0)
-beginTopLevelMember(int)
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(extension)
-handleType(int, null)
-handleIdentifier(extension, topLevelVariableDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, null, 1, int, ;)
-endTopLevelDeclaration(int)
-beginMetadataStar(int)
-endMetadataStar(0)
-beginTopLevelMember(int)
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(external)
-handleType(int, null)
-handleIdentifier(external, topLevelVariableDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, null, 1, int, ;)
-endTopLevelDeclaration(int)
-beginMetadataStar(int)
-endMetadataStar(0)
-beginTopLevelMember(int)
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(factory)
-handleType(int, null)
-handleIdentifier(factory, topLevelVariableDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, null, 1, int, ;)
-endTopLevelDeclaration(int)
-beginMetadataStar(int)
-endMetadataStar(0)
-beginTopLevelMember(int)
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(false)
-handleType(int, null)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'false'., null, {token: false}], false, false)
-handleIdentifier(false, topLevelVariableDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, null, 1, int, ;)
-endTopLevelDeclaration(int)
-beginMetadataStar(int)
-endMetadataStar(0)
-beginTopLevelMember(int)
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(final)
-handleType(int, null)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'final'., null, {token: final}], final, final)
-handleIdentifier(final, topLevelVariableDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, null, 1, int, ;)
-endTopLevelDeclaration(int)
-beginMetadataStar(int)
-endMetadataStar(0)
-beginTopLevelMember(int)
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(finally)
-handleType(int, null)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'finally'., null, {token: finally}], finally, finally)
-handleIdentifier(finally, topLevelVariableDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, null, 1, int, ;)
-endTopLevelDeclaration(int)
-beginMetadataStar(int)
-endMetadataStar(0)
-beginTopLevelMember(int)
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(for)
-handleType(int, null)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'for'., null, {token: for}], for, for)
-handleIdentifier(for, topLevelVariableDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, null, 1, int, ;)
-endTopLevelDeclaration(int)
-beginMetadataStar(int)
-endMetadataStar(0)
-beginTopLevelMember(int)
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(Function)
-handleType(int, null)
-handleIdentifier(Function, topLevelVariableDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, null, 1, int, ;)
-endTopLevelDeclaration(int)
-beginMetadataStar(int)
-endMetadataStar(0)
-beginTopLevelMember(int)
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(get)
-handleType(int, null)
-handleIdentifier(get, topLevelVariableDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, null, 1, int, ;)
-endTopLevelDeclaration(int)
-beginMetadataStar(int)
-endMetadataStar(0)
-beginTopLevelMember(int)
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(hide)
-handleType(int, null)
-handleIdentifier(hide, topLevelVariableDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, null, 1, int, ;)
-endTopLevelDeclaration(int)
-beginMetadataStar(int)
-endMetadataStar(0)
-beginTopLevelMember(int)
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(if)
-handleType(int, null)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'if'., null, {token: if}], if, if)
-handleIdentifier(if, topLevelVariableDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, null, 1, int, ;)
-endTopLevelDeclaration(int)
-beginMetadataStar(int)
-endMetadataStar(0)
-beginTopLevelMember(int)
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(implements)
-handleType(int, null)
-handleIdentifier(implements, topLevelVariableDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, null, 1, int, ;)
-endTopLevelDeclaration(int)
-beginMetadataStar(int)
-endMetadataStar(0)
-beginTopLevelMember(int)
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(import)
-handleType(int, null)
-handleIdentifier(import, topLevelVariableDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, null, 1, int, ;)
-endTopLevelDeclaration(int)
-beginMetadataStar(int)
-endMetadataStar(0)
-beginTopLevelMember(int)
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(in)
-handleType(int, null)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'in'., null, {token: in}], in, in)
-handleIdentifier(in, topLevelVariableDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, null, 1, int, ;)
-endTopLevelDeclaration(int)
-beginMetadataStar(int)
-endMetadataStar(0)
-beginTopLevelMember(int)
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(inout)
-handleType(int, null)
-handleIdentifier(inout, topLevelVariableDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, null, 1, int, ;)
-endTopLevelDeclaration(int)
-beginMetadataStar(int)
-endMetadataStar(0)
-beginTopLevelMember(int)
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(interface)
-handleType(int, null)
-handleIdentifier(interface, topLevelVariableDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, null, 1, int, ;)
-endTopLevelDeclaration(int)
-beginMetadataStar(int)
-endMetadataStar(0)
-beginTopLevelMember(int)
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(is)
-handleType(int, null)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'is'., null, {token: is}], is, is)
-handleIdentifier(is, topLevelVariableDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, null, 1, int, ;)
-endTopLevelDeclaration(int)
-beginMetadataStar(int)
-endMetadataStar(0)
-beginTopLevelMember(int)
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(late)
-handleType(int, null)
-handleIdentifier(late, topLevelVariableDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, null, 1, int, ;)
-endTopLevelDeclaration(int)
-beginMetadataStar(int)
-endMetadataStar(0)
-beginTopLevelMember(int)
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(library)
-handleType(int, null)
-handleIdentifier(library, topLevelVariableDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, null, 1, int, ;)
-endTopLevelDeclaration(int)
-beginMetadataStar(int)
-endMetadataStar(0)
-beginTopLevelMember(int)
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(mixin)
-handleType(int, null)
-handleIdentifier(mixin, topLevelVariableDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, null, 1, int, ;)
-endTopLevelDeclaration(int)
-beginMetadataStar(int)
-endMetadataStar(0)
-beginTopLevelMember(int)
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(native)
-handleType(int, null)
-handleIdentifier(native, topLevelVariableDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, null, 1, int, ;)
-endTopLevelDeclaration(int)
-beginMetadataStar(int)
-endMetadataStar(0)
-beginTopLevelMember(int)
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(new)
-handleType(int, null)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'new'., null, {token: new}], new, new)
-handleIdentifier(new, topLevelVariableDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, null, 1, int, ;)
-endTopLevelDeclaration(int)
-beginMetadataStar(int)
-endMetadataStar(0)
-beginTopLevelMember(int)
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(null)
-handleType(int, null)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'null'., null, {token: null}], null, null)
-handleIdentifier(null, topLevelVariableDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, null, 1, int, ;)
-endTopLevelDeclaration(int)
-beginMetadataStar(int)
-endMetadataStar(0)
-beginTopLevelMember(int)
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(of)
-handleType(int, null)
-handleIdentifier(of, topLevelVariableDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, null, 1, int, ;)
-endTopLevelDeclaration(int)
-beginMetadataStar(int)
-endMetadataStar(0)
-beginTopLevelMember(int)
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(on)
-handleType(int, null)
-handleIdentifier(on, topLevelVariableDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, null, 1, int, ;)
-endTopLevelDeclaration(int)
-beginMetadataStar(int)
-endMetadataStar(0)
-beginTopLevelMember(int)
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(operator)
-handleType(int, null)
-handleIdentifier(operator, topLevelVariableDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, null, 1, int, ;)
-endTopLevelDeclaration(int)
-beginMetadataStar(int)
-endMetadataStar(0)
-beginTopLevelMember(int)
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(out)
-handleType(int, null)
-handleIdentifier(out, topLevelVariableDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, null, 1, int, ;)
-endTopLevelDeclaration(int)
-beginMetadataStar(int)
-endMetadataStar(0)
-beginTopLevelMember(int)
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(part)
-handleType(int, null)
-handleIdentifier(part, topLevelVariableDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, null, 1, int, ;)
-endTopLevelDeclaration(int)
-beginMetadataStar(int)
-endMetadataStar(0)
-beginTopLevelMember(int)
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(patch)
-handleType(int, null)
-handleIdentifier(patch, topLevelVariableDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, null, 1, int, ;)
-endTopLevelDeclaration(int)
-beginMetadataStar(int)
-endMetadataStar(0)
-beginTopLevelMember(int)
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(required)
-handleType(int, null)
-handleIdentifier(required, topLevelVariableDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, null, 1, int, ;)
-endTopLevelDeclaration(int)
-beginMetadataStar(int)
-endMetadataStar(0)
-beginTopLevelMember(int)
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(rethrow)
-handleType(int, null)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'rethrow'., null, {token: rethrow}], rethrow, rethrow)
-handleIdentifier(rethrow, topLevelVariableDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, null, 1, int, ;)
-endTopLevelDeclaration(int)
-beginMetadataStar(int)
-endMetadataStar(0)
-beginTopLevelMember(int)
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(return)
-handleType(int, null)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'return'., null, {token: return}], return, return)
-handleIdentifier(return, topLevelVariableDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, null, 1, int, ;)
-endTopLevelDeclaration(int)
-beginMetadataStar(int)
-endMetadataStar(0)
-beginTopLevelMember(int)
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(set)
-handleType(int, null)
-handleIdentifier(set, topLevelVariableDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, null, 1, int, ;)
-endTopLevelDeclaration(int)
-beginMetadataStar(int)
-endMetadataStar(0)
-beginTopLevelMember(int)
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(show)
-handleType(int, null)
-handleIdentifier(show, topLevelVariableDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, null, 1, int, ;)
-endTopLevelDeclaration(int)
-beginMetadataStar(int)
-endMetadataStar(0)
-beginTopLevelMember(int)
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(source)
-handleType(int, null)
-handleIdentifier(source, topLevelVariableDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, null, 1, int, ;)
-endTopLevelDeclaration(int)
-beginMetadataStar(int)
-endMetadataStar(0)
-beginTopLevelMember(int)
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(static)
-handleType(int, null)
-handleIdentifier(static, topLevelVariableDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, null, 1, int, ;)
-endTopLevelDeclaration(int)
-beginMetadataStar(int)
-endMetadataStar(0)
-beginTopLevelMember(int)
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(super)
-handleType(int, null)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'super'., null, {token: super}], super, super)
-handleIdentifier(super, topLevelVariableDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, null, 1, int, ;)
-endTopLevelDeclaration(int)
-beginMetadataStar(int)
-endMetadataStar(0)
-beginTopLevelMember(int)
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(switch)
-handleType(int, null)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'switch'., null, {token: switch}], switch, switch)
-handleIdentifier(switch, topLevelVariableDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, null, 1, int, ;)
-endTopLevelDeclaration(int)
-beginMetadataStar(int)
-endMetadataStar(0)
-beginTopLevelMember(int)
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(sync)
-handleType(int, null)
-handleIdentifier(sync, topLevelVariableDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, null, 1, int, ;)
-endTopLevelDeclaration(int)
-beginMetadataStar(int)
-endMetadataStar(0)
-beginTopLevelMember(int)
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(this)
-handleType(int, null)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'this'., null, {token: this}], this, this)
-handleIdentifier(this, topLevelVariableDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, null, 1, int, ;)
-endTopLevelDeclaration(int)
-beginMetadataStar(int)
-endMetadataStar(0)
-beginTopLevelMember(int)
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(throw)
-handleType(int, null)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'throw'., null, {token: throw}], throw, throw)
-handleIdentifier(throw, topLevelVariableDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, null, 1, int, ;)
-endTopLevelDeclaration(int)
-beginMetadataStar(int)
-endMetadataStar(0)
-beginTopLevelMember(int)
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(true)
-handleType(int, null)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'true'., null, {token: true}], true, true)
-handleIdentifier(true, topLevelVariableDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, null, 1, int, ;)
-endTopLevelDeclaration(int)
-beginMetadataStar(int)
-endMetadataStar(0)
-beginTopLevelMember(int)
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(try)
-handleType(int, null)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'try'., null, {token: try}], try, try)
-handleIdentifier(try, topLevelVariableDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, null, 1, int, ;)
-endTopLevelDeclaration(int)
-beginMetadataStar(int)
-endMetadataStar(0)
-beginTopLevelMember(int)
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(typedef)
-handleType(int, null)
-handleIdentifier(typedef, topLevelVariableDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, null, 1, int, ;)
-endTopLevelDeclaration(int)
-beginMetadataStar(int)
-endMetadataStar(0)
-beginTopLevelMember(int)
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(var)
-handleType(int, null)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'var'., null, {token: var}], var, var)
-handleIdentifier(var, topLevelVariableDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, null, 1, int, ;)
-endTopLevelDeclaration(int)
-beginMetadataStar(int)
-endMetadataStar(0)
-beginTopLevelMember(int)
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(void)
-handleType(int, null)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'void'., null, {token: void}], void, void)
-handleIdentifier(void, topLevelVariableDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, null, 1, int, ;)
-endTopLevelDeclaration(int)
-beginMetadataStar(int)
-endMetadataStar(0)
-beginTopLevelMember(int)
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(while)
-handleType(int, null)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'while'., null, {token: while}], while, while)
-handleIdentifier(while, topLevelVariableDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, null, 1, int, ;)
-endTopLevelDeclaration(int)
-beginMetadataStar(int)
-endMetadataStar(0)
-beginTopLevelMember(int)
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(with)
-handleType(int, null)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'with'., null, {token: with}], with, with)
-handleIdentifier(with, topLevelVariableDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, null, 1, int, ;)
-endTopLevelDeclaration(int)
-beginMetadataStar(int)
-endMetadataStar(0)
-beginTopLevelMember(int)
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(yield)
-handleType(int, null)
-handleIdentifier(yield, topLevelVariableDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, null, 1, int, ;)
-endTopLevelDeclaration()
+    beginFields()
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(abstract)
+      handleType(int, null)
+      handleIdentifier(abstract, topLevelVariableDeclaration)
+      beginFieldInitializer(=)
+        handleLiteralInt(42)
+      endFieldInitializer(=, ;)
+    endTopLevelFields(null, null, null, null, null, 1, int, ;)
+  endTopLevelDeclaration(int)
+  beginMetadataStar(int)
+  endMetadataStar(0)
+  beginTopLevelMember(int)
+    beginFields(;)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(as)
+      handleType(int, null)
+      handleIdentifier(as, topLevelVariableDeclaration)
+      beginFieldInitializer(=)
+        handleLiteralInt(42)
+      endFieldInitializer(=, ;)
+    endTopLevelFields(null, null, null, null, null, 1, int, ;)
+  endTopLevelDeclaration(int)
+  beginMetadataStar(int)
+  endMetadataStar(0)
+  beginTopLevelMember(int)
+    beginFields(;)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(assert)
+      handleType(int, null)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'assert'., null, {token: assert}], assert, assert)
+      handleIdentifier(assert, topLevelVariableDeclaration)
+      beginFieldInitializer(=)
+        handleLiteralInt(42)
+      endFieldInitializer(=, ;)
+    endTopLevelFields(null, null, null, null, null, 1, int, ;)
+  endTopLevelDeclaration(int)
+  beginMetadataStar(int)
+  endMetadataStar(0)
+  beginTopLevelMember(int)
+    beginFields(;)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(async)
+      handleType(int, null)
+      handleIdentifier(async, topLevelVariableDeclaration)
+      beginFieldInitializer(=)
+        handleLiteralInt(42)
+      endFieldInitializer(=, ;)
+    endTopLevelFields(null, null, null, null, null, 1, int, ;)
+  endTopLevelDeclaration(int)
+  beginMetadataStar(int)
+  endMetadataStar(0)
+  beginTopLevelMember(int)
+    beginFields(;)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(await)
+      handleType(int, null)
+      handleIdentifier(await, topLevelVariableDeclaration)
+      beginFieldInitializer(=)
+        handleLiteralInt(42)
+      endFieldInitializer(=, ;)
+    endTopLevelFields(null, null, null, null, null, 1, int, ;)
+  endTopLevelDeclaration(int)
+  beginMetadataStar(int)
+  endMetadataStar(0)
+  beginTopLevelMember(int)
+    beginFields(;)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(break)
+      handleType(int, null)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'break'., null, {token: break}], break, break)
+      handleIdentifier(break, topLevelVariableDeclaration)
+      beginFieldInitializer(=)
+        handleLiteralInt(42)
+      endFieldInitializer(=, ;)
+    endTopLevelFields(null, null, null, null, null, 1, int, ;)
+  endTopLevelDeclaration(int)
+  beginMetadataStar(int)
+  endMetadataStar(0)
+  beginTopLevelMember(int)
+    beginFields(;)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(case)
+      handleType(int, null)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'case'., null, {token: case}], case, case)
+      handleIdentifier(case, topLevelVariableDeclaration)
+      beginFieldInitializer(=)
+        handleLiteralInt(42)
+      endFieldInitializer(=, ;)
+    endTopLevelFields(null, null, null, null, null, 1, int, ;)
+  endTopLevelDeclaration(int)
+  beginMetadataStar(int)
+  endMetadataStar(0)
+  beginTopLevelMember(int)
+    beginFields(;)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(catch)
+      handleType(int, null)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'catch'., null, {token: catch}], catch, catch)
+      handleIdentifier(catch, topLevelVariableDeclaration)
+      beginFieldInitializer(=)
+        handleLiteralInt(42)
+      endFieldInitializer(=, ;)
+    endTopLevelFields(null, null, null, null, null, 1, int, ;)
+  endTopLevelDeclaration(int)
+  beginMetadataStar(int)
+  endMetadataStar(0)
+  beginTopLevelMember(int)
+    beginFields(;)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(class)
+      handleType(int, null)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'class'., null, {token: class}], class, class)
+      handleIdentifier(class, topLevelVariableDeclaration)
+      beginFieldInitializer(=)
+        handleLiteralInt(42)
+      endFieldInitializer(=, ;)
+    endTopLevelFields(null, null, null, null, null, 1, int, ;)
+  endTopLevelDeclaration(int)
+  beginMetadataStar(int)
+  endMetadataStar(0)
+  beginTopLevelMember(int)
+    beginFields(;)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(const)
+      handleType(int, null)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'const'., null, {token: const}], const, const)
+      handleIdentifier(const, topLevelVariableDeclaration)
+      beginFieldInitializer(=)
+        handleLiteralInt(42)
+      endFieldInitializer(=, ;)
+    endTopLevelFields(null, null, null, null, null, 1, int, ;)
+  endTopLevelDeclaration(int)
+  beginMetadataStar(int)
+  endMetadataStar(0)
+  beginTopLevelMember(int)
+    beginFields(;)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(continue)
+      handleType(int, null)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'continue'., null, {token: continue}], continue, continue)
+      handleIdentifier(continue, topLevelVariableDeclaration)
+      beginFieldInitializer(=)
+        handleLiteralInt(42)
+      endFieldInitializer(=, ;)
+    endTopLevelFields(null, null, null, null, null, 1, int, ;)
+  endTopLevelDeclaration(int)
+  beginMetadataStar(int)
+  endMetadataStar(0)
+  beginTopLevelMember(int)
+    beginFields(;)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(covariant)
+      handleType(int, null)
+      handleIdentifier(covariant, topLevelVariableDeclaration)
+      beginFieldInitializer(=)
+        handleLiteralInt(42)
+      endFieldInitializer(=, ;)
+    endTopLevelFields(null, null, null, null, null, 1, int, ;)
+  endTopLevelDeclaration(int)
+  beginMetadataStar(int)
+  endMetadataStar(0)
+  beginTopLevelMember(int)
+    beginFields(;)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(default)
+      handleType(int, null)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'default'., null, {token: default}], default, default)
+      handleIdentifier(default, topLevelVariableDeclaration)
+      beginFieldInitializer(=)
+        handleLiteralInt(42)
+      endFieldInitializer(=, ;)
+    endTopLevelFields(null, null, null, null, null, 1, int, ;)
+  endTopLevelDeclaration(int)
+  beginMetadataStar(int)
+  endMetadataStar(0)
+  beginTopLevelMember(int)
+    beginFields(;)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(deferred)
+      handleType(int, null)
+      handleIdentifier(deferred, topLevelVariableDeclaration)
+      beginFieldInitializer(=)
+        handleLiteralInt(42)
+      endFieldInitializer(=, ;)
+    endTopLevelFields(null, null, null, null, null, 1, int, ;)
+  endTopLevelDeclaration(int)
+  beginMetadataStar(int)
+  endMetadataStar(0)
+  beginTopLevelMember(int)
+    beginFields(;)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(do)
+      handleType(int, null)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'do'., null, {token: do}], do, do)
+      handleIdentifier(do, topLevelVariableDeclaration)
+      beginFieldInitializer(=)
+        handleLiteralInt(42)
+      endFieldInitializer(=, ;)
+    endTopLevelFields(null, null, null, null, null, 1, int, ;)
+  endTopLevelDeclaration(int)
+  beginMetadataStar(int)
+  endMetadataStar(0)
+  beginTopLevelMember(int)
+    beginFields(;)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(dynamic)
+      handleType(int, null)
+      handleIdentifier(dynamic, topLevelVariableDeclaration)
+      beginFieldInitializer(=)
+        handleLiteralInt(42)
+      endFieldInitializer(=, ;)
+    endTopLevelFields(null, null, null, null, null, 1, int, ;)
+  endTopLevelDeclaration(int)
+  beginMetadataStar(int)
+  endMetadataStar(0)
+  beginTopLevelMember(int)
+    beginFields(;)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(else)
+      handleType(int, null)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'else'., null, {token: else}], else, else)
+      handleIdentifier(else, topLevelVariableDeclaration)
+      beginFieldInitializer(=)
+        handleLiteralInt(42)
+      endFieldInitializer(=, ;)
+    endTopLevelFields(null, null, null, null, null, 1, int, ;)
+  endTopLevelDeclaration(int)
+  beginMetadataStar(int)
+  endMetadataStar(0)
+  beginTopLevelMember(int)
+    beginFields(;)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(enum)
+      handleType(int, null)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'enum'., null, {token: enum}], enum, enum)
+      handleIdentifier(enum, topLevelVariableDeclaration)
+      beginFieldInitializer(=)
+        handleLiteralInt(42)
+      endFieldInitializer(=, ;)
+    endTopLevelFields(null, null, null, null, null, 1, int, ;)
+  endTopLevelDeclaration(int)
+  beginMetadataStar(int)
+  endMetadataStar(0)
+  beginTopLevelMember(int)
+    beginFields(;)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(export)
+      handleType(int, null)
+      handleIdentifier(export, topLevelVariableDeclaration)
+      beginFieldInitializer(=)
+        handleLiteralInt(42)
+      endFieldInitializer(=, ;)
+    endTopLevelFields(null, null, null, null, null, 1, int, ;)
+  endTopLevelDeclaration(int)
+  beginMetadataStar(int)
+  endMetadataStar(0)
+  beginTopLevelMember(int)
+    beginFields(;)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(extends)
+      handleType(int, null)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'extends'., null, {token: extends}], extends, extends)
+      handleIdentifier(extends, topLevelVariableDeclaration)
+      beginFieldInitializer(=)
+        handleLiteralInt(42)
+      endFieldInitializer(=, ;)
+    endTopLevelFields(null, null, null, null, null, 1, int, ;)
+  endTopLevelDeclaration(int)
+  beginMetadataStar(int)
+  endMetadataStar(0)
+  beginTopLevelMember(int)
+    beginFields(;)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(extension)
+      handleType(int, null)
+      handleIdentifier(extension, topLevelVariableDeclaration)
+      beginFieldInitializer(=)
+        handleLiteralInt(42)
+      endFieldInitializer(=, ;)
+    endTopLevelFields(null, null, null, null, null, 1, int, ;)
+  endTopLevelDeclaration(int)
+  beginMetadataStar(int)
+  endMetadataStar(0)
+  beginTopLevelMember(int)
+    beginFields(;)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(external)
+      handleType(int, null)
+      handleIdentifier(external, topLevelVariableDeclaration)
+      beginFieldInitializer(=)
+        handleLiteralInt(42)
+      endFieldInitializer(=, ;)
+    endTopLevelFields(null, null, null, null, null, 1, int, ;)
+  endTopLevelDeclaration(int)
+  beginMetadataStar(int)
+  endMetadataStar(0)
+  beginTopLevelMember(int)
+    beginFields(;)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(factory)
+      handleType(int, null)
+      handleIdentifier(factory, topLevelVariableDeclaration)
+      beginFieldInitializer(=)
+        handleLiteralInt(42)
+      endFieldInitializer(=, ;)
+    endTopLevelFields(null, null, null, null, null, 1, int, ;)
+  endTopLevelDeclaration(int)
+  beginMetadataStar(int)
+  endMetadataStar(0)
+  beginTopLevelMember(int)
+    beginFields(;)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(false)
+      handleType(int, null)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'false'., null, {token: false}], false, false)
+      handleIdentifier(false, topLevelVariableDeclaration)
+      beginFieldInitializer(=)
+        handleLiteralInt(42)
+      endFieldInitializer(=, ;)
+    endTopLevelFields(null, null, null, null, null, 1, int, ;)
+  endTopLevelDeclaration(int)
+  beginMetadataStar(int)
+  endMetadataStar(0)
+  beginTopLevelMember(int)
+    beginFields(;)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(final)
+      handleType(int, null)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'final'., null, {token: final}], final, final)
+      handleIdentifier(final, topLevelVariableDeclaration)
+      beginFieldInitializer(=)
+        handleLiteralInt(42)
+      endFieldInitializer(=, ;)
+    endTopLevelFields(null, null, null, null, null, 1, int, ;)
+  endTopLevelDeclaration(int)
+  beginMetadataStar(int)
+  endMetadataStar(0)
+  beginTopLevelMember(int)
+    beginFields(;)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(finally)
+      handleType(int, null)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'finally'., null, {token: finally}], finally, finally)
+      handleIdentifier(finally, topLevelVariableDeclaration)
+      beginFieldInitializer(=)
+        handleLiteralInt(42)
+      endFieldInitializer(=, ;)
+    endTopLevelFields(null, null, null, null, null, 1, int, ;)
+  endTopLevelDeclaration(int)
+  beginMetadataStar(int)
+  endMetadataStar(0)
+  beginTopLevelMember(int)
+    beginFields(;)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(for)
+      handleType(int, null)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'for'., null, {token: for}], for, for)
+      handleIdentifier(for, topLevelVariableDeclaration)
+      beginFieldInitializer(=)
+        handleLiteralInt(42)
+      endFieldInitializer(=, ;)
+    endTopLevelFields(null, null, null, null, null, 1, int, ;)
+  endTopLevelDeclaration(int)
+  beginMetadataStar(int)
+  endMetadataStar(0)
+  beginTopLevelMember(int)
+    beginFields(;)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(Function)
+      handleType(int, null)
+      handleIdentifier(Function, topLevelVariableDeclaration)
+      beginFieldInitializer(=)
+        handleLiteralInt(42)
+      endFieldInitializer(=, ;)
+    endTopLevelFields(null, null, null, null, null, 1, int, ;)
+  endTopLevelDeclaration(int)
+  beginMetadataStar(int)
+  endMetadataStar(0)
+  beginTopLevelMember(int)
+    beginFields(;)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(get)
+      handleType(int, null)
+      handleIdentifier(get, topLevelVariableDeclaration)
+      beginFieldInitializer(=)
+        handleLiteralInt(42)
+      endFieldInitializer(=, ;)
+    endTopLevelFields(null, null, null, null, null, 1, int, ;)
+  endTopLevelDeclaration(int)
+  beginMetadataStar(int)
+  endMetadataStar(0)
+  beginTopLevelMember(int)
+    beginFields(;)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(hide)
+      handleType(int, null)
+      handleIdentifier(hide, topLevelVariableDeclaration)
+      beginFieldInitializer(=)
+        handleLiteralInt(42)
+      endFieldInitializer(=, ;)
+    endTopLevelFields(null, null, null, null, null, 1, int, ;)
+  endTopLevelDeclaration(int)
+  beginMetadataStar(int)
+  endMetadataStar(0)
+  beginTopLevelMember(int)
+    beginFields(;)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(if)
+      handleType(int, null)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'if'., null, {token: if}], if, if)
+      handleIdentifier(if, topLevelVariableDeclaration)
+      beginFieldInitializer(=)
+        handleLiteralInt(42)
+      endFieldInitializer(=, ;)
+    endTopLevelFields(null, null, null, null, null, 1, int, ;)
+  endTopLevelDeclaration(int)
+  beginMetadataStar(int)
+  endMetadataStar(0)
+  beginTopLevelMember(int)
+    beginFields(;)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(implements)
+      handleType(int, null)
+      handleIdentifier(implements, topLevelVariableDeclaration)
+      beginFieldInitializer(=)
+        handleLiteralInt(42)
+      endFieldInitializer(=, ;)
+    endTopLevelFields(null, null, null, null, null, 1, int, ;)
+  endTopLevelDeclaration(int)
+  beginMetadataStar(int)
+  endMetadataStar(0)
+  beginTopLevelMember(int)
+    beginFields(;)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(import)
+      handleType(int, null)
+      handleIdentifier(import, topLevelVariableDeclaration)
+      beginFieldInitializer(=)
+        handleLiteralInt(42)
+      endFieldInitializer(=, ;)
+    endTopLevelFields(null, null, null, null, null, 1, int, ;)
+  endTopLevelDeclaration(int)
+  beginMetadataStar(int)
+  endMetadataStar(0)
+  beginTopLevelMember(int)
+    beginFields(;)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(in)
+      handleType(int, null)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'in'., null, {token: in}], in, in)
+      handleIdentifier(in, topLevelVariableDeclaration)
+      beginFieldInitializer(=)
+        handleLiteralInt(42)
+      endFieldInitializer(=, ;)
+    endTopLevelFields(null, null, null, null, null, 1, int, ;)
+  endTopLevelDeclaration(int)
+  beginMetadataStar(int)
+  endMetadataStar(0)
+  beginTopLevelMember(int)
+    beginFields(;)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(inout)
+      handleType(int, null)
+      handleIdentifier(inout, topLevelVariableDeclaration)
+      beginFieldInitializer(=)
+        handleLiteralInt(42)
+      endFieldInitializer(=, ;)
+    endTopLevelFields(null, null, null, null, null, 1, int, ;)
+  endTopLevelDeclaration(int)
+  beginMetadataStar(int)
+  endMetadataStar(0)
+  beginTopLevelMember(int)
+    beginFields(;)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(interface)
+      handleType(int, null)
+      handleIdentifier(interface, topLevelVariableDeclaration)
+      beginFieldInitializer(=)
+        handleLiteralInt(42)
+      endFieldInitializer(=, ;)
+    endTopLevelFields(null, null, null, null, null, 1, int, ;)
+  endTopLevelDeclaration(int)
+  beginMetadataStar(int)
+  endMetadataStar(0)
+  beginTopLevelMember(int)
+    beginFields(;)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(is)
+      handleType(int, null)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'is'., null, {token: is}], is, is)
+      handleIdentifier(is, topLevelVariableDeclaration)
+      beginFieldInitializer(=)
+        handleLiteralInt(42)
+      endFieldInitializer(=, ;)
+    endTopLevelFields(null, null, null, null, null, 1, int, ;)
+  endTopLevelDeclaration(int)
+  beginMetadataStar(int)
+  endMetadataStar(0)
+  beginTopLevelMember(int)
+    beginFields(;)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(late)
+      handleType(int, null)
+      handleIdentifier(late, topLevelVariableDeclaration)
+      beginFieldInitializer(=)
+        handleLiteralInt(42)
+      endFieldInitializer(=, ;)
+    endTopLevelFields(null, null, null, null, null, 1, int, ;)
+  endTopLevelDeclaration(int)
+  beginMetadataStar(int)
+  endMetadataStar(0)
+  beginTopLevelMember(int)
+    beginFields(;)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(library)
+      handleType(int, null)
+      handleIdentifier(library, topLevelVariableDeclaration)
+      beginFieldInitializer(=)
+        handleLiteralInt(42)
+      endFieldInitializer(=, ;)
+    endTopLevelFields(null, null, null, null, null, 1, int, ;)
+  endTopLevelDeclaration(int)
+  beginMetadataStar(int)
+  endMetadataStar(0)
+  beginTopLevelMember(int)
+    beginFields(;)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(mixin)
+      handleType(int, null)
+      handleIdentifier(mixin, topLevelVariableDeclaration)
+      beginFieldInitializer(=)
+        handleLiteralInt(42)
+      endFieldInitializer(=, ;)
+    endTopLevelFields(null, null, null, null, null, 1, int, ;)
+  endTopLevelDeclaration(int)
+  beginMetadataStar(int)
+  endMetadataStar(0)
+  beginTopLevelMember(int)
+    beginFields(;)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(native)
+      handleType(int, null)
+      handleIdentifier(native, topLevelVariableDeclaration)
+      beginFieldInitializer(=)
+        handleLiteralInt(42)
+      endFieldInitializer(=, ;)
+    endTopLevelFields(null, null, null, null, null, 1, int, ;)
+  endTopLevelDeclaration(int)
+  beginMetadataStar(int)
+  endMetadataStar(0)
+  beginTopLevelMember(int)
+    beginFields(;)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(new)
+      handleType(int, null)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'new'., null, {token: new}], new, new)
+      handleIdentifier(new, topLevelVariableDeclaration)
+      beginFieldInitializer(=)
+        handleLiteralInt(42)
+      endFieldInitializer(=, ;)
+    endTopLevelFields(null, null, null, null, null, 1, int, ;)
+  endTopLevelDeclaration(int)
+  beginMetadataStar(int)
+  endMetadataStar(0)
+  beginTopLevelMember(int)
+    beginFields(;)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(null)
+      handleType(int, null)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'null'., null, {token: null}], null, null)
+      handleIdentifier(null, topLevelVariableDeclaration)
+      beginFieldInitializer(=)
+        handleLiteralInt(42)
+      endFieldInitializer(=, ;)
+    endTopLevelFields(null, null, null, null, null, 1, int, ;)
+  endTopLevelDeclaration(int)
+  beginMetadataStar(int)
+  endMetadataStar(0)
+  beginTopLevelMember(int)
+    beginFields(;)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(of)
+      handleType(int, null)
+      handleIdentifier(of, topLevelVariableDeclaration)
+      beginFieldInitializer(=)
+        handleLiteralInt(42)
+      endFieldInitializer(=, ;)
+    endTopLevelFields(null, null, null, null, null, 1, int, ;)
+  endTopLevelDeclaration(int)
+  beginMetadataStar(int)
+  endMetadataStar(0)
+  beginTopLevelMember(int)
+    beginFields(;)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(on)
+      handleType(int, null)
+      handleIdentifier(on, topLevelVariableDeclaration)
+      beginFieldInitializer(=)
+        handleLiteralInt(42)
+      endFieldInitializer(=, ;)
+    endTopLevelFields(null, null, null, null, null, 1, int, ;)
+  endTopLevelDeclaration(int)
+  beginMetadataStar(int)
+  endMetadataStar(0)
+  beginTopLevelMember(int)
+    beginFields(;)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(operator)
+      handleType(int, null)
+      handleIdentifier(operator, topLevelVariableDeclaration)
+      beginFieldInitializer(=)
+        handleLiteralInt(42)
+      endFieldInitializer(=, ;)
+    endTopLevelFields(null, null, null, null, null, 1, int, ;)
+  endTopLevelDeclaration(int)
+  beginMetadataStar(int)
+  endMetadataStar(0)
+  beginTopLevelMember(int)
+    beginFields(;)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(out)
+      handleType(int, null)
+      handleIdentifier(out, topLevelVariableDeclaration)
+      beginFieldInitializer(=)
+        handleLiteralInt(42)
+      endFieldInitializer(=, ;)
+    endTopLevelFields(null, null, null, null, null, 1, int, ;)
+  endTopLevelDeclaration(int)
+  beginMetadataStar(int)
+  endMetadataStar(0)
+  beginTopLevelMember(int)
+    beginFields(;)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(part)
+      handleType(int, null)
+      handleIdentifier(part, topLevelVariableDeclaration)
+      beginFieldInitializer(=)
+        handleLiteralInt(42)
+      endFieldInitializer(=, ;)
+    endTopLevelFields(null, null, null, null, null, 1, int, ;)
+  endTopLevelDeclaration(int)
+  beginMetadataStar(int)
+  endMetadataStar(0)
+  beginTopLevelMember(int)
+    beginFields(;)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(patch)
+      handleType(int, null)
+      handleIdentifier(patch, topLevelVariableDeclaration)
+      beginFieldInitializer(=)
+        handleLiteralInt(42)
+      endFieldInitializer(=, ;)
+    endTopLevelFields(null, null, null, null, null, 1, int, ;)
+  endTopLevelDeclaration(int)
+  beginMetadataStar(int)
+  endMetadataStar(0)
+  beginTopLevelMember(int)
+    beginFields(;)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(required)
+      handleType(int, null)
+      handleIdentifier(required, topLevelVariableDeclaration)
+      beginFieldInitializer(=)
+        handleLiteralInt(42)
+      endFieldInitializer(=, ;)
+    endTopLevelFields(null, null, null, null, null, 1, int, ;)
+  endTopLevelDeclaration(int)
+  beginMetadataStar(int)
+  endMetadataStar(0)
+  beginTopLevelMember(int)
+    beginFields(;)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(rethrow)
+      handleType(int, null)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'rethrow'., null, {token: rethrow}], rethrow, rethrow)
+      handleIdentifier(rethrow, topLevelVariableDeclaration)
+      beginFieldInitializer(=)
+        handleLiteralInt(42)
+      endFieldInitializer(=, ;)
+    endTopLevelFields(null, null, null, null, null, 1, int, ;)
+  endTopLevelDeclaration(int)
+  beginMetadataStar(int)
+  endMetadataStar(0)
+  beginTopLevelMember(int)
+    beginFields(;)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(return)
+      handleType(int, null)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'return'., null, {token: return}], return, return)
+      handleIdentifier(return, topLevelVariableDeclaration)
+      beginFieldInitializer(=)
+        handleLiteralInt(42)
+      endFieldInitializer(=, ;)
+    endTopLevelFields(null, null, null, null, null, 1, int, ;)
+  endTopLevelDeclaration(int)
+  beginMetadataStar(int)
+  endMetadataStar(0)
+  beginTopLevelMember(int)
+    beginFields(;)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(set)
+      handleType(int, null)
+      handleIdentifier(set, topLevelVariableDeclaration)
+      beginFieldInitializer(=)
+        handleLiteralInt(42)
+      endFieldInitializer(=, ;)
+    endTopLevelFields(null, null, null, null, null, 1, int, ;)
+  endTopLevelDeclaration(int)
+  beginMetadataStar(int)
+  endMetadataStar(0)
+  beginTopLevelMember(int)
+    beginFields(;)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(show)
+      handleType(int, null)
+      handleIdentifier(show, topLevelVariableDeclaration)
+      beginFieldInitializer(=)
+        handleLiteralInt(42)
+      endFieldInitializer(=, ;)
+    endTopLevelFields(null, null, null, null, null, 1, int, ;)
+  endTopLevelDeclaration(int)
+  beginMetadataStar(int)
+  endMetadataStar(0)
+  beginTopLevelMember(int)
+    beginFields(;)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(source)
+      handleType(int, null)
+      handleIdentifier(source, topLevelVariableDeclaration)
+      beginFieldInitializer(=)
+        handleLiteralInt(42)
+      endFieldInitializer(=, ;)
+    endTopLevelFields(null, null, null, null, null, 1, int, ;)
+  endTopLevelDeclaration(int)
+  beginMetadataStar(int)
+  endMetadataStar(0)
+  beginTopLevelMember(int)
+    beginFields(;)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(static)
+      handleType(int, null)
+      handleIdentifier(static, topLevelVariableDeclaration)
+      beginFieldInitializer(=)
+        handleLiteralInt(42)
+      endFieldInitializer(=, ;)
+    endTopLevelFields(null, null, null, null, null, 1, int, ;)
+  endTopLevelDeclaration(int)
+  beginMetadataStar(int)
+  endMetadataStar(0)
+  beginTopLevelMember(int)
+    beginFields(;)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(super)
+      handleType(int, null)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'super'., null, {token: super}], super, super)
+      handleIdentifier(super, topLevelVariableDeclaration)
+      beginFieldInitializer(=)
+        handleLiteralInt(42)
+      endFieldInitializer(=, ;)
+    endTopLevelFields(null, null, null, null, null, 1, int, ;)
+  endTopLevelDeclaration(int)
+  beginMetadataStar(int)
+  endMetadataStar(0)
+  beginTopLevelMember(int)
+    beginFields(;)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(switch)
+      handleType(int, null)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'switch'., null, {token: switch}], switch, switch)
+      handleIdentifier(switch, topLevelVariableDeclaration)
+      beginFieldInitializer(=)
+        handleLiteralInt(42)
+      endFieldInitializer(=, ;)
+    endTopLevelFields(null, null, null, null, null, 1, int, ;)
+  endTopLevelDeclaration(int)
+  beginMetadataStar(int)
+  endMetadataStar(0)
+  beginTopLevelMember(int)
+    beginFields(;)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(sync)
+      handleType(int, null)
+      handleIdentifier(sync, topLevelVariableDeclaration)
+      beginFieldInitializer(=)
+        handleLiteralInt(42)
+      endFieldInitializer(=, ;)
+    endTopLevelFields(null, null, null, null, null, 1, int, ;)
+  endTopLevelDeclaration(int)
+  beginMetadataStar(int)
+  endMetadataStar(0)
+  beginTopLevelMember(int)
+    beginFields(;)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(this)
+      handleType(int, null)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'this'., null, {token: this}], this, this)
+      handleIdentifier(this, topLevelVariableDeclaration)
+      beginFieldInitializer(=)
+        handleLiteralInt(42)
+      endFieldInitializer(=, ;)
+    endTopLevelFields(null, null, null, null, null, 1, int, ;)
+  endTopLevelDeclaration(int)
+  beginMetadataStar(int)
+  endMetadataStar(0)
+  beginTopLevelMember(int)
+    beginFields(;)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(throw)
+      handleType(int, null)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'throw'., null, {token: throw}], throw, throw)
+      handleIdentifier(throw, topLevelVariableDeclaration)
+      beginFieldInitializer(=)
+        handleLiteralInt(42)
+      endFieldInitializer(=, ;)
+    endTopLevelFields(null, null, null, null, null, 1, int, ;)
+  endTopLevelDeclaration(int)
+  beginMetadataStar(int)
+  endMetadataStar(0)
+  beginTopLevelMember(int)
+    beginFields(;)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(true)
+      handleType(int, null)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'true'., null, {token: true}], true, true)
+      handleIdentifier(true, topLevelVariableDeclaration)
+      beginFieldInitializer(=)
+        handleLiteralInt(42)
+      endFieldInitializer(=, ;)
+    endTopLevelFields(null, null, null, null, null, 1, int, ;)
+  endTopLevelDeclaration(int)
+  beginMetadataStar(int)
+  endMetadataStar(0)
+  beginTopLevelMember(int)
+    beginFields(;)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(try)
+      handleType(int, null)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'try'., null, {token: try}], try, try)
+      handleIdentifier(try, topLevelVariableDeclaration)
+      beginFieldInitializer(=)
+        handleLiteralInt(42)
+      endFieldInitializer(=, ;)
+    endTopLevelFields(null, null, null, null, null, 1, int, ;)
+  endTopLevelDeclaration(int)
+  beginMetadataStar(int)
+  endMetadataStar(0)
+  beginTopLevelMember(int)
+    beginFields(;)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(typedef)
+      handleType(int, null)
+      handleIdentifier(typedef, topLevelVariableDeclaration)
+      beginFieldInitializer(=)
+        handleLiteralInt(42)
+      endFieldInitializer(=, ;)
+    endTopLevelFields(null, null, null, null, null, 1, int, ;)
+  endTopLevelDeclaration(int)
+  beginMetadataStar(int)
+  endMetadataStar(0)
+  beginTopLevelMember(int)
+    beginFields(;)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(var)
+      handleType(int, null)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'var'., null, {token: var}], var, var)
+      handleIdentifier(var, topLevelVariableDeclaration)
+      beginFieldInitializer(=)
+        handleLiteralInt(42)
+      endFieldInitializer(=, ;)
+    endTopLevelFields(null, null, null, null, null, 1, int, ;)
+  endTopLevelDeclaration(int)
+  beginMetadataStar(int)
+  endMetadataStar(0)
+  beginTopLevelMember(int)
+    beginFields(;)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(void)
+      handleType(int, null)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'void'., null, {token: void}], void, void)
+      handleIdentifier(void, topLevelVariableDeclaration)
+      beginFieldInitializer(=)
+        handleLiteralInt(42)
+      endFieldInitializer(=, ;)
+    endTopLevelFields(null, null, null, null, null, 1, int, ;)
+  endTopLevelDeclaration(int)
+  beginMetadataStar(int)
+  endMetadataStar(0)
+  beginTopLevelMember(int)
+    beginFields(;)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(while)
+      handleType(int, null)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'while'., null, {token: while}], while, while)
+      handleIdentifier(while, topLevelVariableDeclaration)
+      beginFieldInitializer(=)
+        handleLiteralInt(42)
+      endFieldInitializer(=, ;)
+    endTopLevelFields(null, null, null, null, null, 1, int, ;)
+  endTopLevelDeclaration(int)
+  beginMetadataStar(int)
+  endMetadataStar(0)
+  beginTopLevelMember(int)
+    beginFields(;)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(with)
+      handleType(int, null)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'with'., null, {token: with}], with, with)
+      handleIdentifier(with, topLevelVariableDeclaration)
+      beginFieldInitializer(=)
+        handleLiteralInt(42)
+      endFieldInitializer(=, ;)
+    endTopLevelFields(null, null, null, null, null, 1, int, ;)
+  endTopLevelDeclaration(int)
+  beginMetadataStar(int)
+  endMetadataStar(0)
+  beginTopLevelMember(int)
+    beginFields(;)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(yield)
+      handleType(int, null)
+      handleIdentifier(yield, topLevelVariableDeclaration)
+      beginFieldInitializer(=)
+        handleLiteralInt(42)
+      endFieldInitializer(=, ;)
+    endTopLevelFields(null, null, null, null, null, 1, int, ;)
+  endTopLevelDeclaration()
 endCompilationUnit(69, )
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 0c129c8..fc69737 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
@@ -9,6 +9,7 @@
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(int)
       parseFields(, null, null, null, null, null, null, , Instance of 'SimpleType', abstract, DeclarationKind.TopLevel, null, false)
+        listener: beginFields()
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(abstract)
         listener: handleType(int, null)
@@ -32,6 +33,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', as, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(as)
         listener: handleType(int, null)
@@ -57,6 +59,7 @@
       isReservedKeyword(assert)
       indicatesMethodOrField(=)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', assert, DeclarationKind.TopLevel, null, true)
+        listener: beginFields(;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(assert)
         listener: handleType(int, null)
@@ -82,6 +85,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', async, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(async)
         listener: handleType(int, null)
@@ -105,6 +109,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', await, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(await)
         listener: handleType(int, null)
@@ -130,6 +135,7 @@
       isReservedKeyword(break)
       indicatesMethodOrField(=)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', break, DeclarationKind.TopLevel, null, true)
+        listener: beginFields(;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(break)
         listener: handleType(int, null)
@@ -157,6 +163,7 @@
       isReservedKeyword(case)
       indicatesMethodOrField(=)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', case, DeclarationKind.TopLevel, null, true)
+        listener: beginFields(;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(case)
         listener: handleType(int, null)
@@ -184,6 +191,7 @@
       isReservedKeyword(catch)
       indicatesMethodOrField(=)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', catch, DeclarationKind.TopLevel, null, true)
+        listener: beginFields(;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(catch)
         listener: handleType(int, null)
@@ -211,6 +219,7 @@
       isReservedKeyword(class)
       indicatesMethodOrField(=)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', class, DeclarationKind.TopLevel, null, true)
+        listener: beginFields(;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(class)
         listener: handleType(int, null)
@@ -238,6 +247,7 @@
       isReservedKeyword(const)
       indicatesMethodOrField(=)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', const, DeclarationKind.TopLevel, null, true)
+        listener: beginFields(;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(const)
         listener: handleType(int, null)
@@ -265,6 +275,7 @@
       isReservedKeyword(continue)
       indicatesMethodOrField(=)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', continue, DeclarationKind.TopLevel, null, true)
+        listener: beginFields(;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(continue)
         listener: handleType(int, null)
@@ -290,6 +301,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', covariant, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(covariant)
         listener: handleType(int, null)
@@ -315,6 +327,7 @@
       isReservedKeyword(default)
       indicatesMethodOrField(=)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', default, DeclarationKind.TopLevel, null, true)
+        listener: beginFields(;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(default)
         listener: handleType(int, null)
@@ -340,6 +353,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', deferred, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(deferred)
         listener: handleType(int, null)
@@ -365,6 +379,7 @@
       isReservedKeyword(do)
       indicatesMethodOrField(=)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', do, DeclarationKind.TopLevel, null, true)
+        listener: beginFields(;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(do)
         listener: handleType(int, null)
@@ -390,6 +405,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', dynamic, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(dynamic)
         listener: handleType(int, null)
@@ -415,6 +431,7 @@
       isReservedKeyword(else)
       indicatesMethodOrField(=)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', else, DeclarationKind.TopLevel, null, true)
+        listener: beginFields(;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(else)
         listener: handleType(int, null)
@@ -442,6 +459,7 @@
       isReservedKeyword(enum)
       indicatesMethodOrField(=)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', enum, DeclarationKind.TopLevel, null, true)
+        listener: beginFields(;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(enum)
         listener: handleType(int, null)
@@ -467,6 +485,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', export, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(export)
         listener: handleType(int, null)
@@ -492,6 +511,7 @@
       isReservedKeyword(extends)
       indicatesMethodOrField(=)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', extends, DeclarationKind.TopLevel, null, true)
+        listener: beginFields(;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(extends)
         listener: handleType(int, null)
@@ -517,6 +537,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', extension, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(extension)
         listener: handleType(int, null)
@@ -540,6 +561,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', external, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(external)
         listener: handleType(int, null)
@@ -563,6 +585,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', factory, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(factory)
         listener: handleType(int, null)
@@ -588,6 +611,7 @@
       isReservedKeyword(false)
       indicatesMethodOrField(=)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', false, DeclarationKind.TopLevel, null, true)
+        listener: beginFields(;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(false)
         listener: handleType(int, null)
@@ -615,6 +639,7 @@
       isReservedKeyword(final)
       indicatesMethodOrField(=)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', final, DeclarationKind.TopLevel, null, true)
+        listener: beginFields(;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(final)
         listener: handleType(int, null)
@@ -642,6 +667,7 @@
       isReservedKeyword(finally)
       indicatesMethodOrField(=)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', finally, DeclarationKind.TopLevel, null, true)
+        listener: beginFields(;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(finally)
         listener: handleType(int, null)
@@ -669,6 +695,7 @@
       isReservedKeyword(for)
       indicatesMethodOrField(=)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', for, DeclarationKind.TopLevel, null, true)
+        listener: beginFields(;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(for)
         listener: handleType(int, null)
@@ -694,6 +721,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', Function, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(Function)
         listener: handleType(int, null)
@@ -717,6 +745,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', get, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(get)
         listener: handleType(int, null)
@@ -740,6 +769,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', hide, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(hide)
         listener: handleType(int, null)
@@ -765,6 +795,7 @@
       isReservedKeyword(if)
       indicatesMethodOrField(=)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', if, DeclarationKind.TopLevel, null, true)
+        listener: beginFields(;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(if)
         listener: handleType(int, null)
@@ -790,6 +821,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', implements, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(implements)
         listener: handleType(int, null)
@@ -813,6 +845,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', import, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(import)
         listener: handleType(int, null)
@@ -838,6 +871,7 @@
       isReservedKeyword(in)
       indicatesMethodOrField(=)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', in, DeclarationKind.TopLevel, null, true)
+        listener: beginFields(;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(in)
         listener: handleType(int, null)
@@ -863,6 +897,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', inout, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(inout)
         listener: handleType(int, null)
@@ -886,6 +921,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', interface, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(interface)
         listener: handleType(int, null)
@@ -911,6 +947,7 @@
       isReservedKeyword(is)
       indicatesMethodOrField(=)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', is, DeclarationKind.TopLevel, null, true)
+        listener: beginFields(;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(is)
         listener: handleType(int, null)
@@ -936,6 +973,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', late, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(late)
         listener: handleType(int, null)
@@ -959,6 +997,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', library, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(library)
         listener: handleType(int, null)
@@ -982,6 +1021,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', mixin, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(mixin)
         listener: handleType(int, null)
@@ -1005,6 +1045,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', native, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(native)
         listener: handleType(int, null)
@@ -1030,6 +1071,7 @@
       isReservedKeyword(new)
       indicatesMethodOrField(=)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', new, DeclarationKind.TopLevel, null, true)
+        listener: beginFields(;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(new)
         listener: handleType(int, null)
@@ -1057,6 +1099,7 @@
       isReservedKeyword(null)
       indicatesMethodOrField(=)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', null, DeclarationKind.TopLevel, null, true)
+        listener: beginFields(;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(null)
         listener: handleType(int, null)
@@ -1082,6 +1125,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', of, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(of)
         listener: handleType(int, null)
@@ -1105,6 +1149,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', on, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(on)
         listener: handleType(int, null)
@@ -1128,6 +1173,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', operator, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(operator)
         listener: handleType(int, null)
@@ -1151,6 +1197,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', out, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(out)
         listener: handleType(int, null)
@@ -1174,6 +1221,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', part, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(part)
         listener: handleType(int, null)
@@ -1197,6 +1245,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', patch, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(patch)
         listener: handleType(int, null)
@@ -1220,6 +1269,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', required, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(required)
         listener: handleType(int, null)
@@ -1245,6 +1295,7 @@
       isReservedKeyword(rethrow)
       indicatesMethodOrField(=)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', rethrow, DeclarationKind.TopLevel, null, true)
+        listener: beginFields(;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(rethrow)
         listener: handleType(int, null)
@@ -1272,6 +1323,7 @@
       isReservedKeyword(return)
       indicatesMethodOrField(=)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', return, DeclarationKind.TopLevel, null, true)
+        listener: beginFields(;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(return)
         listener: handleType(int, null)
@@ -1297,6 +1349,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', set, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(set)
         listener: handleType(int, null)
@@ -1320,6 +1373,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', show, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(show)
         listener: handleType(int, null)
@@ -1343,6 +1397,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', source, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(source)
         listener: handleType(int, null)
@@ -1366,6 +1421,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', static, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(static)
         listener: handleType(int, null)
@@ -1391,6 +1447,7 @@
       isReservedKeyword(super)
       indicatesMethodOrField(=)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', super, DeclarationKind.TopLevel, null, true)
+        listener: beginFields(;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(super)
         listener: handleType(int, null)
@@ -1418,6 +1475,7 @@
       isReservedKeyword(switch)
       indicatesMethodOrField(=)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', switch, DeclarationKind.TopLevel, null, true)
+        listener: beginFields(;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(switch)
         listener: handleType(int, null)
@@ -1443,6 +1501,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', sync, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(sync)
         listener: handleType(int, null)
@@ -1466,6 +1525,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', this, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(this)
         listener: handleType(int, null)
@@ -1493,6 +1553,7 @@
       isReservedKeyword(throw)
       indicatesMethodOrField(=)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', throw, DeclarationKind.TopLevel, null, true)
+        listener: beginFields(;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(throw)
         listener: handleType(int, null)
@@ -1520,6 +1581,7 @@
       isReservedKeyword(true)
       indicatesMethodOrField(=)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', true, DeclarationKind.TopLevel, null, true)
+        listener: beginFields(;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(true)
         listener: handleType(int, null)
@@ -1547,6 +1609,7 @@
       isReservedKeyword(try)
       indicatesMethodOrField(=)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', try, DeclarationKind.TopLevel, null, true)
+        listener: beginFields(;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(try)
         listener: handleType(int, null)
@@ -1572,6 +1635,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', typedef, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(typedef)
         listener: handleType(int, null)
@@ -1597,6 +1661,7 @@
       isReservedKeyword(var)
       indicatesMethodOrField(=)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', var, DeclarationKind.TopLevel, null, true)
+        listener: beginFields(;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(var)
         listener: handleType(int, null)
@@ -1624,6 +1689,7 @@
       isReservedKeyword(void)
       indicatesMethodOrField(=)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', void, DeclarationKind.TopLevel, null, true)
+        listener: beginFields(;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(void)
         listener: handleType(int, null)
@@ -1651,6 +1717,7 @@
       isReservedKeyword(while)
       indicatesMethodOrField(=)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', while, DeclarationKind.TopLevel, null, true)
+        listener: beginFields(;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(while)
         listener: handleType(int, null)
@@ -1678,6 +1745,7 @@
       isReservedKeyword(with)
       indicatesMethodOrField(=)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', with, DeclarationKind.TopLevel, null, true)
+        listener: beginFields(;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(with)
         listener: handleType(int, null)
@@ -1703,6 +1771,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', yield, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(yield)
         listener: handleType(int, null)
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 45af522..df30d32 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
@@ -493,7 +493,7 @@
           handleNoArguments(==)
           handleSend(x, ==)
           beginBinaryExpression(==)
-          handleLiteralInt(0)
+            handleLiteralInt(0)
           endBinaryExpression(==)
           handleParenthesizedCondition(()
           beginThenStatement(return)
@@ -511,12 +511,12 @@
             handleNoArguments(-)
             handleSend(x, -)
             beginBinaryExpression(-)
-            handleLiteralInt(1)
+              handleLiteralInt(1)
             endBinaryExpression(-)
           endArguments(1, (, ))
           handleSend(abstract, +)
           beginBinaryExpression(+)
-          handleLiteralInt(1)
+            handleLiteralInt(1)
           endBinaryExpression(+)
         endReturnStatement(true, return, ;)
       endBlockFunctionBody(2, {, })
@@ -550,7 +550,7 @@
           handleNoArguments(==)
           handleSend(x, ==)
           beginBinaryExpression(==)
-          handleLiteralInt(0)
+            handleLiteralInt(0)
           endBinaryExpression(==)
           handleParenthesizedCondition(()
           beginThenStatement(return)
@@ -568,12 +568,12 @@
             handleNoArguments(-)
             handleSend(x, -)
             beginBinaryExpression(-)
-            handleLiteralInt(1)
+              handleLiteralInt(1)
             endBinaryExpression(-)
           endArguments(1, (, ))
           handleSend(as, +)
           beginBinaryExpression(+)
-          handleLiteralInt(1)
+            handleLiteralInt(1)
           endBinaryExpression(+)
         endReturnStatement(true, return, ;)
       endBlockFunctionBody(2, {, })
@@ -608,7 +608,7 @@
           handleNoArguments(==)
           handleSend(x, ==)
           beginBinaryExpression(==)
-          handleLiteralInt(0)
+            handleLiteralInt(0)
           endBinaryExpression(==)
           handleParenthesizedCondition(()
           beginThenStatement(return)
@@ -624,12 +624,12 @@
             handleNoArguments(-)
             handleSend(x, -)
             beginBinaryExpression(-)
-            handleLiteralInt(1)
+              handleLiteralInt(1)
             endBinaryExpression(-)
             handleRecoverableError(AssertAsExpression, assert, assert)
           endAssert(assert, Assert.Expression, (, null, +)
           beginBinaryExpression(+)
-          handleLiteralInt(1)
+            handleLiteralInt(1)
           endBinaryExpression(+)
         endReturnStatement(true, return, ;)
       endBlockFunctionBody(2, {, })
@@ -663,7 +663,7 @@
           handleNoArguments(==)
           handleSend(x, ==)
           beginBinaryExpression(==)
-          handleLiteralInt(0)
+            handleLiteralInt(0)
           endBinaryExpression(==)
           handleParenthesizedCondition(()
           beginThenStatement(return)
@@ -681,12 +681,12 @@
             handleNoArguments(-)
             handleSend(x, -)
             beginBinaryExpression(-)
-            handleLiteralInt(1)
+              handleLiteralInt(1)
             endBinaryExpression(-)
           endArguments(1, (, ))
           handleSend(async, +)
           beginBinaryExpression(+)
-          handleLiteralInt(1)
+            handleLiteralInt(1)
           endBinaryExpression(+)
         endReturnStatement(true, return, ;)
       endBlockFunctionBody(2, {, })
@@ -720,7 +720,7 @@
           handleNoArguments(==)
           handleSend(x, ==)
           beginBinaryExpression(==)
-          handleLiteralInt(0)
+            handleLiteralInt(0)
           endBinaryExpression(==)
           handleParenthesizedCondition(()
           beginThenStatement(return)
@@ -738,12 +738,12 @@
             handleNoArguments(-)
             handleSend(x, -)
             beginBinaryExpression(-)
-            handleLiteralInt(1)
+              handleLiteralInt(1)
             endBinaryExpression(-)
           endArguments(1, (, ))
           handleSend(await, +)
           beginBinaryExpression(+)
-          handleLiteralInt(1)
+            handleLiteralInt(1)
           endBinaryExpression(+)
         endReturnStatement(true, return, ;)
       endBlockFunctionBody(2, {, })
@@ -778,7 +778,7 @@
           handleNoArguments(==)
           handleSend(x, ==)
           beginBinaryExpression(==)
-          handleLiteralInt(0)
+            handleLiteralInt(0)
           endBinaryExpression(==)
           handleParenthesizedCondition(()
           beginThenStatement(return)
@@ -803,11 +803,11 @@
         handleNoArguments(-)
         handleSend(x, -)
         beginBinaryExpression(-)
-        handleLiteralInt(1)
+          handleLiteralInt(1)
         endBinaryExpression(-)
         handleParenthesizedExpression(()
         beginBinaryExpression(+)
-        handleLiteralInt(1)
+          handleLiteralInt(1)
         endBinaryExpression(+)
         handleExpressionStatement(;)
       endBlockFunctionBody(4, {, })
@@ -842,7 +842,7 @@
           handleNoArguments(==)
           handleSend(x, ==)
           beginBinaryExpression(==)
-          handleLiteralInt(0)
+            handleLiteralInt(0)
           endBinaryExpression(==)
           handleParenthesizedCondition(()
           beginThenStatement(return)
@@ -861,12 +861,12 @@
             handleNoArguments(-)
             handleSend(x, -)
             beginBinaryExpression(-)
-            handleLiteralInt(1)
+              handleLiteralInt(1)
             endBinaryExpression(-)
           endArguments(1, (, ))
           handleSend(case, +)
           beginBinaryExpression(+)
-          handleLiteralInt(1)
+            handleLiteralInt(1)
           endBinaryExpression(+)
         endReturnStatement(true, return, ;)
       endBlockFunctionBody(2, {, })
@@ -901,7 +901,7 @@
           handleNoArguments(==)
           handleSend(x, ==)
           beginBinaryExpression(==)
-          handleLiteralInt(0)
+            handleLiteralInt(0)
           endBinaryExpression(==)
           handleParenthesizedCondition(()
           beginThenStatement(return)
@@ -920,12 +920,12 @@
             handleNoArguments(-)
             handleSend(x, -)
             beginBinaryExpression(-)
-            handleLiteralInt(1)
+              handleLiteralInt(1)
             endBinaryExpression(-)
           endArguments(1, (, ))
           handleSend(catch, +)
           beginBinaryExpression(+)
-          handleLiteralInt(1)
+            handleLiteralInt(1)
           endBinaryExpression(+)
         endReturnStatement(true, return, ;)
       endBlockFunctionBody(2, {, })
@@ -960,7 +960,7 @@
           handleNoArguments(==)
           handleSend(x, ==)
           beginBinaryExpression(==)
-          handleLiteralInt(0)
+            handleLiteralInt(0)
           endBinaryExpression(==)
           handleParenthesizedCondition(()
           beginThenStatement(return)
@@ -979,12 +979,12 @@
             handleNoArguments(-)
             handleSend(x, -)
             beginBinaryExpression(-)
-            handleLiteralInt(1)
+              handleLiteralInt(1)
             endBinaryExpression(-)
           endArguments(1, (, ))
           handleSend(class, +)
           beginBinaryExpression(+)
-          handleLiteralInt(1)
+            handleLiteralInt(1)
           endBinaryExpression(+)
         endReturnStatement(true, return, ;)
       endBlockFunctionBody(2, {, })
@@ -1019,7 +1019,7 @@
           handleNoArguments(==)
           handleSend(x, ==)
           beginBinaryExpression(==)
-          handleLiteralInt(0)
+            handleLiteralInt(0)
           endBinaryExpression(==)
           handleParenthesizedCondition(()
           beginThenStatement(return)
@@ -1042,12 +1042,12 @@
               handleNoArguments(-)
               handleSend(x, -)
               beginBinaryExpression(-)
-              handleLiteralInt(1)
+                handleLiteralInt(1)
               endBinaryExpression(-)
             endArguments(1, (, ))
           endConstExpression(const)
           beginBinaryExpression(+)
-          handleLiteralInt(1)
+            handleLiteralInt(1)
           endBinaryExpression(+)
         endReturnStatement(true, return, ;)
       endBlockFunctionBody(2, {, })
@@ -1082,7 +1082,7 @@
           handleNoArguments(==)
           handleSend(x, ==)
           beginBinaryExpression(==)
-          handleLiteralInt(0)
+            handleLiteralInt(0)
           endBinaryExpression(==)
           handleParenthesizedCondition(()
           beginThenStatement(return)
@@ -1107,11 +1107,11 @@
         handleNoArguments(-)
         handleSend(x, -)
         beginBinaryExpression(-)
-        handleLiteralInt(1)
+          handleLiteralInt(1)
         endBinaryExpression(-)
         handleParenthesizedExpression(()
         beginBinaryExpression(+)
-        handleLiteralInt(1)
+          handleLiteralInt(1)
         endBinaryExpression(+)
         handleExpressionStatement(;)
       endBlockFunctionBody(4, {, })
@@ -1145,7 +1145,7 @@
           handleNoArguments(==)
           handleSend(x, ==)
           beginBinaryExpression(==)
-          handleLiteralInt(0)
+            handleLiteralInt(0)
           endBinaryExpression(==)
           handleParenthesizedCondition(()
           beginThenStatement(return)
@@ -1163,12 +1163,12 @@
             handleNoArguments(-)
             handleSend(x, -)
             beginBinaryExpression(-)
-            handleLiteralInt(1)
+              handleLiteralInt(1)
             endBinaryExpression(-)
           endArguments(1, (, ))
           handleSend(covariant, +)
           beginBinaryExpression(+)
-          handleLiteralInt(1)
+            handleLiteralInt(1)
           endBinaryExpression(+)
         endReturnStatement(true, return, ;)
       endBlockFunctionBody(2, {, })
@@ -1203,7 +1203,7 @@
           handleNoArguments(==)
           handleSend(x, ==)
           beginBinaryExpression(==)
-          handleLiteralInt(0)
+            handleLiteralInt(0)
           endBinaryExpression(==)
           handleParenthesizedCondition(()
           beginThenStatement(return)
@@ -1222,12 +1222,12 @@
             handleNoArguments(-)
             handleSend(x, -)
             beginBinaryExpression(-)
-            handleLiteralInt(1)
+              handleLiteralInt(1)
             endBinaryExpression(-)
           endArguments(1, (, ))
           handleSend(default, +)
           beginBinaryExpression(+)
-          handleLiteralInt(1)
+            handleLiteralInt(1)
           endBinaryExpression(+)
         endReturnStatement(true, return, ;)
       endBlockFunctionBody(2, {, })
@@ -1261,7 +1261,7 @@
           handleNoArguments(==)
           handleSend(x, ==)
           beginBinaryExpression(==)
-          handleLiteralInt(0)
+            handleLiteralInt(0)
           endBinaryExpression(==)
           handleParenthesizedCondition(()
           beginThenStatement(return)
@@ -1279,12 +1279,12 @@
             handleNoArguments(-)
             handleSend(x, -)
             beginBinaryExpression(-)
-            handleLiteralInt(1)
+              handleLiteralInt(1)
             endBinaryExpression(-)
           endArguments(1, (, ))
           handleSend(deferred, +)
           beginBinaryExpression(+)
-          handleLiteralInt(1)
+            handleLiteralInt(1)
           endBinaryExpression(+)
         endReturnStatement(true, return, ;)
       endBlockFunctionBody(2, {, })
@@ -1319,7 +1319,7 @@
           handleNoArguments(==)
           handleSend(x, ==)
           beginBinaryExpression(==)
-          handleLiteralInt(0)
+            handleLiteralInt(0)
           endBinaryExpression(==)
           handleParenthesizedCondition(()
           beginThenStatement(return)
@@ -1343,11 +1343,11 @@
             handleNoArguments(-)
             handleSend(x, -)
             beginBinaryExpression(-)
-            handleLiteralInt(1)
+              handleLiteralInt(1)
             endBinaryExpression(-)
             handleParenthesizedExpression(()
             beginBinaryExpression(+)
-            handleLiteralInt(1)
+              handleLiteralInt(1)
             endBinaryExpression(+)
             handleExpressionStatement(;)
           endDoWhileStatementBody(;)
@@ -1392,7 +1392,7 @@
           handleNoArguments(==)
           handleSend(x, ==)
           beginBinaryExpression(==)
-          handleLiteralInt(0)
+            handleLiteralInt(0)
           endBinaryExpression(==)
           handleParenthesizedCondition(()
           beginThenStatement(return)
@@ -1410,12 +1410,12 @@
             handleNoArguments(-)
             handleSend(x, -)
             beginBinaryExpression(-)
-            handleLiteralInt(1)
+              handleLiteralInt(1)
             endBinaryExpression(-)
           endArguments(1, (, ))
           handleSend(dynamic, +)
           beginBinaryExpression(+)
-          handleLiteralInt(1)
+            handleLiteralInt(1)
           endBinaryExpression(+)
         endReturnStatement(true, return, ;)
       endBlockFunctionBody(2, {, })
@@ -1450,7 +1450,7 @@
           handleNoArguments(==)
           handleSend(x, ==)
           beginBinaryExpression(==)
-          handleLiteralInt(0)
+            handleLiteralInt(0)
           endBinaryExpression(==)
           handleParenthesizedCondition(()
           beginThenStatement(return)
@@ -1480,11 +1480,11 @@
         handleNoArguments(-)
         handleSend(x, -)
         beginBinaryExpression(-)
-        handleLiteralInt(1)
+          handleLiteralInt(1)
         endBinaryExpression(-)
         handleParenthesizedExpression(()
         beginBinaryExpression(+)
-        handleLiteralInt(1)
+          handleLiteralInt(1)
         endBinaryExpression(+)
         handleExpressionStatement(;)
       endBlockFunctionBody(4, {, })
@@ -1519,7 +1519,7 @@
           handleNoArguments(==)
           handleSend(x, ==)
           beginBinaryExpression(==)
-          handleLiteralInt(0)
+            handleLiteralInt(0)
           endBinaryExpression(==)
           handleParenthesizedCondition(()
           beginThenStatement(return)
@@ -1538,12 +1538,12 @@
             handleNoArguments(-)
             handleSend(x, -)
             beginBinaryExpression(-)
-            handleLiteralInt(1)
+              handleLiteralInt(1)
             endBinaryExpression(-)
           endArguments(1, (, ))
           handleSend(enum, +)
           beginBinaryExpression(+)
-          handleLiteralInt(1)
+            handleLiteralInt(1)
           endBinaryExpression(+)
         endReturnStatement(true, return, ;)
       endBlockFunctionBody(2, {, })
@@ -1577,7 +1577,7 @@
           handleNoArguments(==)
           handleSend(x, ==)
           beginBinaryExpression(==)
-          handleLiteralInt(0)
+            handleLiteralInt(0)
           endBinaryExpression(==)
           handleParenthesizedCondition(()
           beginThenStatement(return)
@@ -1595,12 +1595,12 @@
             handleNoArguments(-)
             handleSend(x, -)
             beginBinaryExpression(-)
-            handleLiteralInt(1)
+              handleLiteralInt(1)
             endBinaryExpression(-)
           endArguments(1, (, ))
           handleSend(export, +)
           beginBinaryExpression(+)
-          handleLiteralInt(1)
+            handleLiteralInt(1)
           endBinaryExpression(+)
         endReturnStatement(true, return, ;)
       endBlockFunctionBody(2, {, })
@@ -1635,7 +1635,7 @@
           handleNoArguments(==)
           handleSend(x, ==)
           beginBinaryExpression(==)
-          handleLiteralInt(0)
+            handleLiteralInt(0)
           endBinaryExpression(==)
           handleParenthesizedCondition(()
           beginThenStatement(return)
@@ -1654,12 +1654,12 @@
             handleNoArguments(-)
             handleSend(x, -)
             beginBinaryExpression(-)
-            handleLiteralInt(1)
+              handleLiteralInt(1)
             endBinaryExpression(-)
           endArguments(1, (, ))
           handleSend(extends, +)
           beginBinaryExpression(+)
-          handleLiteralInt(1)
+            handleLiteralInt(1)
           endBinaryExpression(+)
         endReturnStatement(true, return, ;)
       endBlockFunctionBody(2, {, })
@@ -1693,7 +1693,7 @@
           handleNoArguments(==)
           handleSend(x, ==)
           beginBinaryExpression(==)
-          handleLiteralInt(0)
+            handleLiteralInt(0)
           endBinaryExpression(==)
           handleParenthesizedCondition(()
           beginThenStatement(return)
@@ -1711,12 +1711,12 @@
             handleNoArguments(-)
             handleSend(x, -)
             beginBinaryExpression(-)
-            handleLiteralInt(1)
+              handleLiteralInt(1)
             endBinaryExpression(-)
           endArguments(1, (, ))
           handleSend(extension, +)
           beginBinaryExpression(+)
-          handleLiteralInt(1)
+            handleLiteralInt(1)
           endBinaryExpression(+)
         endReturnStatement(true, return, ;)
       endBlockFunctionBody(2, {, })
@@ -1750,7 +1750,7 @@
           handleNoArguments(==)
           handleSend(x, ==)
           beginBinaryExpression(==)
-          handleLiteralInt(0)
+            handleLiteralInt(0)
           endBinaryExpression(==)
           handleParenthesizedCondition(()
           beginThenStatement(return)
@@ -1768,12 +1768,12 @@
             handleNoArguments(-)
             handleSend(x, -)
             beginBinaryExpression(-)
-            handleLiteralInt(1)
+              handleLiteralInt(1)
             endBinaryExpression(-)
           endArguments(1, (, ))
           handleSend(external, +)
           beginBinaryExpression(+)
-          handleLiteralInt(1)
+            handleLiteralInt(1)
           endBinaryExpression(+)
         endReturnStatement(true, return, ;)
       endBlockFunctionBody(2, {, })
@@ -1807,7 +1807,7 @@
           handleNoArguments(==)
           handleSend(x, ==)
           beginBinaryExpression(==)
-          handleLiteralInt(0)
+            handleLiteralInt(0)
           endBinaryExpression(==)
           handleParenthesizedCondition(()
           beginThenStatement(return)
@@ -1825,12 +1825,12 @@
             handleNoArguments(-)
             handleSend(x, -)
             beginBinaryExpression(-)
-            handleLiteralInt(1)
+              handleLiteralInt(1)
             endBinaryExpression(-)
           endArguments(1, (, ))
           handleSend(factory, +)
           beginBinaryExpression(+)
-          handleLiteralInt(1)
+            handleLiteralInt(1)
           endBinaryExpression(+)
         endReturnStatement(true, return, ;)
       endBlockFunctionBody(2, {, })
@@ -1865,7 +1865,7 @@
           handleNoArguments(==)
           handleSend(x, ==)
           beginBinaryExpression(==)
-          handleLiteralInt(0)
+            handleLiteralInt(0)
           endBinaryExpression(==)
           handleParenthesizedCondition(()
           beginThenStatement(return)
@@ -1883,12 +1883,12 @@
             handleNoArguments(-)
             handleSend(x, -)
             beginBinaryExpression(-)
-            handleLiteralInt(1)
+              handleLiteralInt(1)
             endBinaryExpression(-)
           endArguments(1, (, ))
           handleSend((, ))
           beginBinaryExpression(+)
-          handleLiteralInt(1)
+            handleLiteralInt(1)
           endBinaryExpression(+)
         endReturnStatement(true, return, ;)
       endBlockFunctionBody(2, {, })
@@ -1923,7 +1923,7 @@
           handleNoArguments(==)
           handleSend(x, ==)
           beginBinaryExpression(==)
-          handleLiteralInt(0)
+            handleLiteralInt(0)
           endBinaryExpression(==)
           handleParenthesizedCondition(()
           beginThenStatement(return)
@@ -1956,7 +1956,7 @@
         handleNoArguments(-)
         handleSend(x, -)
         beginBinaryExpression(-)
-        handleLiteralInt(1)
+          handleLiteralInt(1)
         endBinaryExpression(-)
         handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], 1, 1)
         handleExpressionStatement(;)
@@ -1974,7 +1974,7 @@
         handleNoArguments(+)
         handleSend(, +)
         beginBinaryExpression(+)
-        handleLiteralInt(1)
+          handleLiteralInt(1)
         endBinaryExpression(+)
         handleExpressionStatement(;)
       endBlockFunctionBody(6, {, })
@@ -2009,7 +2009,7 @@
           handleNoArguments(==)
           handleSend(x, ==)
           beginBinaryExpression(==)
-          handleLiteralInt(0)
+            handleLiteralInt(0)
           endBinaryExpression(==)
           handleParenthesizedCondition(()
           beginThenStatement(return)
@@ -2028,12 +2028,12 @@
             handleNoArguments(-)
             handleSend(x, -)
             beginBinaryExpression(-)
-            handleLiteralInt(1)
+              handleLiteralInt(1)
             endBinaryExpression(-)
           endArguments(1, (, ))
           handleSend(finally, +)
           beginBinaryExpression(+)
-          handleLiteralInt(1)
+            handleLiteralInt(1)
           endBinaryExpression(+)
         endReturnStatement(true, return, ;)
       endBlockFunctionBody(2, {, })
@@ -2068,7 +2068,7 @@
           handleNoArguments(==)
           handleSend(x, ==)
           beginBinaryExpression(==)
-          handleLiteralInt(0)
+            handleLiteralInt(0)
           endBinaryExpression(==)
           handleParenthesizedCondition(()
           beginThenStatement(return)
@@ -2091,7 +2091,7 @@
           handleNoArguments(-)
           handleSend(x, -)
           beginBinaryExpression(-)
-          handleLiteralInt(1)
+            handleLiteralInt(1)
           endBinaryExpression(-)
           handleForInitializerExpressionStatement(1, false)
           handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], 1, 1)
@@ -2110,7 +2110,7 @@
             handleNoArguments(+)
             handleSend(, +)
             beginBinaryExpression(+)
-            handleLiteralInt(1)
+              handleLiteralInt(1)
             endBinaryExpression(+)
             handleExpressionStatement(;)
           endForStatementBody(})
@@ -2146,7 +2146,7 @@
           handleNoArguments(==)
           handleSend(x, ==)
           beginBinaryExpression(==)
-          handleLiteralInt(0)
+            handleLiteralInt(0)
           endBinaryExpression(==)
           handleParenthesizedCondition(()
           beginThenStatement(return)
@@ -2164,12 +2164,12 @@
             handleNoArguments(-)
             handleSend(x, -)
             beginBinaryExpression(-)
-            handleLiteralInt(1)
+              handleLiteralInt(1)
             endBinaryExpression(-)
           endArguments(1, (, ))
           handleSend(Function, +)
           beginBinaryExpression(+)
-          handleLiteralInt(1)
+            handleLiteralInt(1)
           endBinaryExpression(+)
         endReturnStatement(true, return, ;)
       endBlockFunctionBody(2, {, })
@@ -2203,7 +2203,7 @@
           handleNoArguments(==)
           handleSend(x, ==)
           beginBinaryExpression(==)
-          handleLiteralInt(0)
+            handleLiteralInt(0)
           endBinaryExpression(==)
           handleParenthesizedCondition(()
           beginThenStatement(return)
@@ -2221,12 +2221,12 @@
             handleNoArguments(-)
             handleSend(x, -)
             beginBinaryExpression(-)
-            handleLiteralInt(1)
+              handleLiteralInt(1)
             endBinaryExpression(-)
           endArguments(1, (, ))
           handleSend(get, +)
           beginBinaryExpression(+)
-          handleLiteralInt(1)
+            handleLiteralInt(1)
           endBinaryExpression(+)
         endReturnStatement(true, return, ;)
       endBlockFunctionBody(2, {, })
@@ -2260,7 +2260,7 @@
           handleNoArguments(==)
           handleSend(x, ==)
           beginBinaryExpression(==)
-          handleLiteralInt(0)
+            handleLiteralInt(0)
           endBinaryExpression(==)
           handleParenthesizedCondition(()
           beginThenStatement(return)
@@ -2278,12 +2278,12 @@
             handleNoArguments(-)
             handleSend(x, -)
             beginBinaryExpression(-)
-            handleLiteralInt(1)
+              handleLiteralInt(1)
             endBinaryExpression(-)
           endArguments(1, (, ))
           handleSend(hide, +)
           beginBinaryExpression(+)
-          handleLiteralInt(1)
+            handleLiteralInt(1)
           endBinaryExpression(+)
         endReturnStatement(true, return, ;)
       endBlockFunctionBody(2, {, })
@@ -2318,7 +2318,7 @@
           handleNoArguments(==)
           handleSend(x, ==)
           beginBinaryExpression(==)
-          handleLiteralInt(0)
+            handleLiteralInt(0)
           endBinaryExpression(==)
           handleParenthesizedCondition(()
           beginThenStatement(return)
@@ -2341,7 +2341,7 @@
           handleNoArguments(-)
           handleSend(x, -)
           beginBinaryExpression(-)
-          handleLiteralInt(1)
+            handleLiteralInt(1)
           endBinaryExpression(-)
           handleParenthesizedCondition(()
           beginThenStatement(+)
@@ -2351,7 +2351,7 @@
             handleNoArguments(+)
             handleSend(, +)
             beginBinaryExpression(+)
-            handleLiteralInt(1)
+              handleLiteralInt(1)
             endBinaryExpression(+)
             handleExpressionStatement(;)
           endThenStatement(;)
@@ -2387,7 +2387,7 @@
           handleNoArguments(==)
           handleSend(x, ==)
           beginBinaryExpression(==)
-          handleLiteralInt(0)
+            handleLiteralInt(0)
           endBinaryExpression(==)
           handleParenthesizedCondition(()
           beginThenStatement(return)
@@ -2405,12 +2405,12 @@
             handleNoArguments(-)
             handleSend(x, -)
             beginBinaryExpression(-)
-            handleLiteralInt(1)
+              handleLiteralInt(1)
             endBinaryExpression(-)
           endArguments(1, (, ))
           handleSend(implements, +)
           beginBinaryExpression(+)
-          handleLiteralInt(1)
+            handleLiteralInt(1)
           endBinaryExpression(+)
         endReturnStatement(true, return, ;)
       endBlockFunctionBody(2, {, })
@@ -2444,7 +2444,7 @@
           handleNoArguments(==)
           handleSend(x, ==)
           beginBinaryExpression(==)
-          handleLiteralInt(0)
+            handleLiteralInt(0)
           endBinaryExpression(==)
           handleParenthesizedCondition(()
           beginThenStatement(return)
@@ -2462,12 +2462,12 @@
             handleNoArguments(-)
             handleSend(x, -)
             beginBinaryExpression(-)
-            handleLiteralInt(1)
+              handleLiteralInt(1)
             endBinaryExpression(-)
           endArguments(1, (, ))
           handleSend(import, +)
           beginBinaryExpression(+)
-          handleLiteralInt(1)
+            handleLiteralInt(1)
           endBinaryExpression(+)
         endReturnStatement(true, return, ;)
       endBlockFunctionBody(2, {, })
@@ -2502,7 +2502,7 @@
           handleNoArguments(==)
           handleSend(x, ==)
           beginBinaryExpression(==)
-          handleLiteralInt(0)
+            handleLiteralInt(0)
           endBinaryExpression(==)
           handleParenthesizedCondition(()
           beginThenStatement(return)
@@ -2521,12 +2521,12 @@
             handleNoArguments(-)
             handleSend(x, -)
             beginBinaryExpression(-)
-            handleLiteralInt(1)
+              handleLiteralInt(1)
             endBinaryExpression(-)
           endArguments(1, (, ))
           handleSend(in, +)
           beginBinaryExpression(+)
-          handleLiteralInt(1)
+            handleLiteralInt(1)
           endBinaryExpression(+)
         endReturnStatement(true, return, ;)
       endBlockFunctionBody(2, {, })
@@ -2560,7 +2560,7 @@
           handleNoArguments(==)
           handleSend(x, ==)
           beginBinaryExpression(==)
-          handleLiteralInt(0)
+            handleLiteralInt(0)
           endBinaryExpression(==)
           handleParenthesizedCondition(()
           beginThenStatement(return)
@@ -2578,12 +2578,12 @@
             handleNoArguments(-)
             handleSend(x, -)
             beginBinaryExpression(-)
-            handleLiteralInt(1)
+              handleLiteralInt(1)
             endBinaryExpression(-)
           endArguments(1, (, ))
           handleSend(inout, +)
           beginBinaryExpression(+)
-          handleLiteralInt(1)
+            handleLiteralInt(1)
           endBinaryExpression(+)
         endReturnStatement(true, return, ;)
       endBlockFunctionBody(2, {, })
@@ -2617,7 +2617,7 @@
           handleNoArguments(==)
           handleSend(x, ==)
           beginBinaryExpression(==)
-          handleLiteralInt(0)
+            handleLiteralInt(0)
           endBinaryExpression(==)
           handleParenthesizedCondition(()
           beginThenStatement(return)
@@ -2635,12 +2635,12 @@
             handleNoArguments(-)
             handleSend(x, -)
             beginBinaryExpression(-)
-            handleLiteralInt(1)
+              handleLiteralInt(1)
             endBinaryExpression(-)
           endArguments(1, (, ))
           handleSend(interface, +)
           beginBinaryExpression(+)
-          handleLiteralInt(1)
+            handleLiteralInt(1)
           endBinaryExpression(+)
         endReturnStatement(true, return, ;)
       endBlockFunctionBody(2, {, })
@@ -2675,7 +2675,7 @@
           handleNoArguments(==)
           handleSend(x, ==)
           beginBinaryExpression(==)
-          handleLiteralInt(0)
+            handleLiteralInt(0)
           endBinaryExpression(==)
           handleParenthesizedCondition(()
           beginThenStatement(return)
@@ -2704,11 +2704,11 @@
         handleNoArguments(-)
         handleSend(x, -)
         beginBinaryExpression(-)
-        handleLiteralInt(1)
+          handleLiteralInt(1)
         endBinaryExpression(-)
         handleParenthesizedExpression(()
         beginBinaryExpression(+)
-        handleLiteralInt(1)
+          handleLiteralInt(1)
         endBinaryExpression(+)
         handleExpressionStatement(;)
       endBlockFunctionBody(3, {, })
@@ -2742,7 +2742,7 @@
           handleNoArguments(==)
           handleSend(x, ==)
           beginBinaryExpression(==)
-          handleLiteralInt(0)
+            handleLiteralInt(0)
           endBinaryExpression(==)
           handleParenthesizedCondition(()
           beginThenStatement(return)
@@ -2760,12 +2760,12 @@
             handleNoArguments(-)
             handleSend(x, -)
             beginBinaryExpression(-)
-            handleLiteralInt(1)
+              handleLiteralInt(1)
             endBinaryExpression(-)
           endArguments(1, (, ))
           handleSend(late, +)
           beginBinaryExpression(+)
-          handleLiteralInt(1)
+            handleLiteralInt(1)
           endBinaryExpression(+)
         endReturnStatement(true, return, ;)
       endBlockFunctionBody(2, {, })
@@ -2799,7 +2799,7 @@
           handleNoArguments(==)
           handleSend(x, ==)
           beginBinaryExpression(==)
-          handleLiteralInt(0)
+            handleLiteralInt(0)
           endBinaryExpression(==)
           handleParenthesizedCondition(()
           beginThenStatement(return)
@@ -2817,12 +2817,12 @@
             handleNoArguments(-)
             handleSend(x, -)
             beginBinaryExpression(-)
-            handleLiteralInt(1)
+              handleLiteralInt(1)
             endBinaryExpression(-)
           endArguments(1, (, ))
           handleSend(library, +)
           beginBinaryExpression(+)
-          handleLiteralInt(1)
+            handleLiteralInt(1)
           endBinaryExpression(+)
         endReturnStatement(true, return, ;)
       endBlockFunctionBody(2, {, })
@@ -2856,7 +2856,7 @@
           handleNoArguments(==)
           handleSend(x, ==)
           beginBinaryExpression(==)
-          handleLiteralInt(0)
+            handleLiteralInt(0)
           endBinaryExpression(==)
           handleParenthesizedCondition(()
           beginThenStatement(return)
@@ -2874,12 +2874,12 @@
             handleNoArguments(-)
             handleSend(x, -)
             beginBinaryExpression(-)
-            handleLiteralInt(1)
+              handleLiteralInt(1)
             endBinaryExpression(-)
           endArguments(1, (, ))
           handleSend(mixin, +)
           beginBinaryExpression(+)
-          handleLiteralInt(1)
+            handleLiteralInt(1)
           endBinaryExpression(+)
         endReturnStatement(true, return, ;)
       endBlockFunctionBody(2, {, })
@@ -2913,7 +2913,7 @@
           handleNoArguments(==)
           handleSend(x, ==)
           beginBinaryExpression(==)
-          handleLiteralInt(0)
+            handleLiteralInt(0)
           endBinaryExpression(==)
           handleParenthesizedCondition(()
           beginThenStatement(return)
@@ -2931,12 +2931,12 @@
             handleNoArguments(-)
             handleSend(x, -)
             beginBinaryExpression(-)
-            handleLiteralInt(1)
+              handleLiteralInt(1)
             endBinaryExpression(-)
           endArguments(1, (, ))
           handleSend(native, +)
           beginBinaryExpression(+)
-          handleLiteralInt(1)
+            handleLiteralInt(1)
           endBinaryExpression(+)
         endReturnStatement(true, return, ;)
       endBlockFunctionBody(2, {, })
@@ -2971,7 +2971,7 @@
           handleNoArguments(==)
           handleSend(x, ==)
           beginBinaryExpression(==)
-          handleLiteralInt(0)
+            handleLiteralInt(0)
           endBinaryExpression(==)
           handleParenthesizedCondition(()
           beginThenStatement(return)
@@ -2994,12 +2994,12 @@
               handleNoArguments(-)
               handleSend(x, -)
               beginBinaryExpression(-)
-              handleLiteralInt(1)
+                handleLiteralInt(1)
               endBinaryExpression(-)
             endArguments(1, (, ))
           endNewExpression(new)
           beginBinaryExpression(+)
-          handleLiteralInt(1)
+            handleLiteralInt(1)
           endBinaryExpression(+)
         endReturnStatement(true, return, ;)
       endBlockFunctionBody(2, {, })
@@ -3034,7 +3034,7 @@
           handleNoArguments(==)
           handleSend(x, ==)
           beginBinaryExpression(==)
-          handleLiteralInt(0)
+            handleLiteralInt(0)
           endBinaryExpression(==)
           handleParenthesizedCondition(()
           beginThenStatement(return)
@@ -3052,12 +3052,12 @@
             handleNoArguments(-)
             handleSend(x, -)
             beginBinaryExpression(-)
-            handleLiteralInt(1)
+              handleLiteralInt(1)
             endBinaryExpression(-)
           endArguments(1, (, ))
           handleSend((, ))
           beginBinaryExpression(+)
-          handleLiteralInt(1)
+            handleLiteralInt(1)
           endBinaryExpression(+)
         endReturnStatement(true, return, ;)
       endBlockFunctionBody(2, {, })
@@ -3091,7 +3091,7 @@
           handleNoArguments(==)
           handleSend(x, ==)
           beginBinaryExpression(==)
-          handleLiteralInt(0)
+            handleLiteralInt(0)
           endBinaryExpression(==)
           handleParenthesizedCondition(()
           beginThenStatement(return)
@@ -3109,12 +3109,12 @@
             handleNoArguments(-)
             handleSend(x, -)
             beginBinaryExpression(-)
-            handleLiteralInt(1)
+              handleLiteralInt(1)
             endBinaryExpression(-)
           endArguments(1, (, ))
           handleSend(of, +)
           beginBinaryExpression(+)
-          handleLiteralInt(1)
+            handleLiteralInt(1)
           endBinaryExpression(+)
         endReturnStatement(true, return, ;)
       endBlockFunctionBody(2, {, })
@@ -3148,7 +3148,7 @@
           handleNoArguments(==)
           handleSend(x, ==)
           beginBinaryExpression(==)
-          handleLiteralInt(0)
+            handleLiteralInt(0)
           endBinaryExpression(==)
           handleParenthesizedCondition(()
           beginThenStatement(return)
@@ -3166,12 +3166,12 @@
             handleNoArguments(-)
             handleSend(x, -)
             beginBinaryExpression(-)
-            handleLiteralInt(1)
+              handleLiteralInt(1)
             endBinaryExpression(-)
           endArguments(1, (, ))
           handleSend(on, +)
           beginBinaryExpression(+)
-          handleLiteralInt(1)
+            handleLiteralInt(1)
           endBinaryExpression(+)
         endReturnStatement(true, return, ;)
       endBlockFunctionBody(2, {, })
@@ -3205,7 +3205,7 @@
           handleNoArguments(==)
           handleSend(x, ==)
           beginBinaryExpression(==)
-          handleLiteralInt(0)
+            handleLiteralInt(0)
           endBinaryExpression(==)
           handleParenthesizedCondition(()
           beginThenStatement(return)
@@ -3223,12 +3223,12 @@
             handleNoArguments(-)
             handleSend(x, -)
             beginBinaryExpression(-)
-            handleLiteralInt(1)
+              handleLiteralInt(1)
             endBinaryExpression(-)
           endArguments(1, (, ))
           handleSend(operator, +)
           beginBinaryExpression(+)
-          handleLiteralInt(1)
+            handleLiteralInt(1)
           endBinaryExpression(+)
         endReturnStatement(true, return, ;)
       endBlockFunctionBody(2, {, })
@@ -3262,7 +3262,7 @@
           handleNoArguments(==)
           handleSend(x, ==)
           beginBinaryExpression(==)
-          handleLiteralInt(0)
+            handleLiteralInt(0)
           endBinaryExpression(==)
           handleParenthesizedCondition(()
           beginThenStatement(return)
@@ -3280,12 +3280,12 @@
             handleNoArguments(-)
             handleSend(x, -)
             beginBinaryExpression(-)
-            handleLiteralInt(1)
+              handleLiteralInt(1)
             endBinaryExpression(-)
           endArguments(1, (, ))
           handleSend(out, +)
           beginBinaryExpression(+)
-          handleLiteralInt(1)
+            handleLiteralInt(1)
           endBinaryExpression(+)
         endReturnStatement(true, return, ;)
       endBlockFunctionBody(2, {, })
@@ -3319,7 +3319,7 @@
           handleNoArguments(==)
           handleSend(x, ==)
           beginBinaryExpression(==)
-          handleLiteralInt(0)
+            handleLiteralInt(0)
           endBinaryExpression(==)
           handleParenthesizedCondition(()
           beginThenStatement(return)
@@ -3337,12 +3337,12 @@
             handleNoArguments(-)
             handleSend(x, -)
             beginBinaryExpression(-)
-            handleLiteralInt(1)
+              handleLiteralInt(1)
             endBinaryExpression(-)
           endArguments(1, (, ))
           handleSend(part, +)
           beginBinaryExpression(+)
-          handleLiteralInt(1)
+            handleLiteralInt(1)
           endBinaryExpression(+)
         endReturnStatement(true, return, ;)
       endBlockFunctionBody(2, {, })
@@ -3376,7 +3376,7 @@
           handleNoArguments(==)
           handleSend(x, ==)
           beginBinaryExpression(==)
-          handleLiteralInt(0)
+            handleLiteralInt(0)
           endBinaryExpression(==)
           handleParenthesizedCondition(()
           beginThenStatement(return)
@@ -3394,12 +3394,12 @@
             handleNoArguments(-)
             handleSend(x, -)
             beginBinaryExpression(-)
-            handleLiteralInt(1)
+              handleLiteralInt(1)
             endBinaryExpression(-)
           endArguments(1, (, ))
           handleSend(patch, +)
           beginBinaryExpression(+)
-          handleLiteralInt(1)
+            handleLiteralInt(1)
           endBinaryExpression(+)
         endReturnStatement(true, return, ;)
       endBlockFunctionBody(2, {, })
@@ -3433,7 +3433,7 @@
           handleNoArguments(==)
           handleSend(x, ==)
           beginBinaryExpression(==)
-          handleLiteralInt(0)
+            handleLiteralInt(0)
           endBinaryExpression(==)
           handleParenthesizedCondition(()
           beginThenStatement(return)
@@ -3451,12 +3451,12 @@
             handleNoArguments(-)
             handleSend(x, -)
             beginBinaryExpression(-)
-            handleLiteralInt(1)
+              handleLiteralInt(1)
             endBinaryExpression(-)
           endArguments(1, (, ))
           handleSend(required, +)
           beginBinaryExpression(+)
-          handleLiteralInt(1)
+            handleLiteralInt(1)
           endBinaryExpression(+)
         endReturnStatement(true, return, ;)
       endBlockFunctionBody(2, {, })
@@ -3491,7 +3491,7 @@
           handleNoArguments(==)
           handleSend(x, ==)
           beginBinaryExpression(==)
-          handleLiteralInt(0)
+            handleLiteralInt(0)
           endBinaryExpression(==)
           handleParenthesizedCondition(()
           beginThenStatement(return)
@@ -3510,12 +3510,12 @@
             handleNoArguments(-)
             handleSend(x, -)
             beginBinaryExpression(-)
-            handleLiteralInt(1)
+              handleLiteralInt(1)
             endBinaryExpression(-)
           endArguments(1, (, ))
           handleSend(rethrow, +)
           beginBinaryExpression(+)
-          handleLiteralInt(1)
+            handleLiteralInt(1)
           endBinaryExpression(+)
         endReturnStatement(true, return, ;)
       endBlockFunctionBody(2, {, })
@@ -3550,7 +3550,7 @@
           handleNoArguments(==)
           handleSend(x, ==)
           beginBinaryExpression(==)
-          handleLiteralInt(0)
+            handleLiteralInt(0)
           endBinaryExpression(==)
           handleParenthesizedCondition(()
           beginThenStatement(return)
@@ -3566,11 +3566,11 @@
           handleNoArguments(-)
           handleSend(x, -)
           beginBinaryExpression(-)
-          handleLiteralInt(1)
+            handleLiteralInt(1)
           endBinaryExpression(-)
           handleParenthesizedExpression(()
           beginBinaryExpression(+)
-          handleLiteralInt(1)
+            handleLiteralInt(1)
           endBinaryExpression(+)
         endReturnStatement(true, return, ;)
       endBlockFunctionBody(2, {, })
@@ -3604,7 +3604,7 @@
           handleNoArguments(==)
           handleSend(x, ==)
           beginBinaryExpression(==)
-          handleLiteralInt(0)
+            handleLiteralInt(0)
           endBinaryExpression(==)
           handleParenthesizedCondition(()
           beginThenStatement(return)
@@ -3622,12 +3622,12 @@
             handleNoArguments(-)
             handleSend(x, -)
             beginBinaryExpression(-)
-            handleLiteralInt(1)
+              handleLiteralInt(1)
             endBinaryExpression(-)
           endArguments(1, (, ))
           handleSend(set, +)
           beginBinaryExpression(+)
-          handleLiteralInt(1)
+            handleLiteralInt(1)
           endBinaryExpression(+)
         endReturnStatement(true, return, ;)
       endBlockFunctionBody(2, {, })
@@ -3661,7 +3661,7 @@
           handleNoArguments(==)
           handleSend(x, ==)
           beginBinaryExpression(==)
-          handleLiteralInt(0)
+            handleLiteralInt(0)
           endBinaryExpression(==)
           handleParenthesizedCondition(()
           beginThenStatement(return)
@@ -3679,12 +3679,12 @@
             handleNoArguments(-)
             handleSend(x, -)
             beginBinaryExpression(-)
-            handleLiteralInt(1)
+              handleLiteralInt(1)
             endBinaryExpression(-)
           endArguments(1, (, ))
           handleSend(show, +)
           beginBinaryExpression(+)
-          handleLiteralInt(1)
+            handleLiteralInt(1)
           endBinaryExpression(+)
         endReturnStatement(true, return, ;)
       endBlockFunctionBody(2, {, })
@@ -3718,7 +3718,7 @@
           handleNoArguments(==)
           handleSend(x, ==)
           beginBinaryExpression(==)
-          handleLiteralInt(0)
+            handleLiteralInt(0)
           endBinaryExpression(==)
           handleParenthesizedCondition(()
           beginThenStatement(return)
@@ -3736,12 +3736,12 @@
             handleNoArguments(-)
             handleSend(x, -)
             beginBinaryExpression(-)
-            handleLiteralInt(1)
+              handleLiteralInt(1)
             endBinaryExpression(-)
           endArguments(1, (, ))
           handleSend(source, +)
           beginBinaryExpression(+)
-          handleLiteralInt(1)
+            handleLiteralInt(1)
           endBinaryExpression(+)
         endReturnStatement(true, return, ;)
       endBlockFunctionBody(2, {, })
@@ -3775,7 +3775,7 @@
           handleNoArguments(==)
           handleSend(x, ==)
           beginBinaryExpression(==)
-          handleLiteralInt(0)
+            handleLiteralInt(0)
           endBinaryExpression(==)
           handleParenthesizedCondition(()
           beginThenStatement(return)
@@ -3793,12 +3793,12 @@
             handleNoArguments(-)
             handleSend(x, -)
             beginBinaryExpression(-)
-            handleLiteralInt(1)
+              handleLiteralInt(1)
             endBinaryExpression(-)
           endArguments(1, (, ))
           handleSend(static, +)
           beginBinaryExpression(+)
-          handleLiteralInt(1)
+            handleLiteralInt(1)
           endBinaryExpression(+)
         endReturnStatement(true, return, ;)
       endBlockFunctionBody(2, {, })
@@ -3833,7 +3833,7 @@
           handleNoArguments(==)
           handleSend(x, ==)
           beginBinaryExpression(==)
-          handleLiteralInt(0)
+            handleLiteralInt(0)
           endBinaryExpression(==)
           handleParenthesizedCondition(()
           beginThenStatement(return)
@@ -3851,12 +3851,12 @@
             handleNoArguments(-)
             handleSend(x, -)
             beginBinaryExpression(-)
-            handleLiteralInt(1)
+              handleLiteralInt(1)
             endBinaryExpression(-)
           endArguments(1, (, ))
           handleSend(super, +)
           beginBinaryExpression(+)
-          handleLiteralInt(1)
+            handleLiteralInt(1)
           endBinaryExpression(+)
         endReturnStatement(true, return, ;)
       endBlockFunctionBody(2, {, })
@@ -3891,7 +3891,7 @@
           handleNoArguments(==)
           handleSend(x, ==)
           beginBinaryExpression(==)
-          handleLiteralInt(0)
+            handleLiteralInt(0)
           endBinaryExpression(==)
           handleParenthesizedCondition(()
           beginThenStatement(return)
@@ -3914,7 +3914,7 @@
           handleNoArguments(-)
           handleSend(x, -)
           beginBinaryExpression(-)
-          handleLiteralInt(1)
+            handleLiteralInt(1)
           endBinaryExpression(-)
           handleParenthesizedCondition(()
           handleRecoverableError(Message[ExpectedClassOrMixinBody, A switch statement must have a body, even if it is empty., Try adding an empty body., {string: switch statement}], ), ))
@@ -3927,7 +3927,7 @@
         handleNoArguments(+)
         handleSend(, +)
         beginBinaryExpression(+)
-        handleLiteralInt(1)
+          handleLiteralInt(1)
         endBinaryExpression(+)
         handleExpressionStatement(;)
       endBlockFunctionBody(4, {, })
@@ -3961,7 +3961,7 @@
           handleNoArguments(==)
           handleSend(x, ==)
           beginBinaryExpression(==)
-          handleLiteralInt(0)
+            handleLiteralInt(0)
           endBinaryExpression(==)
           handleParenthesizedCondition(()
           beginThenStatement(return)
@@ -3979,12 +3979,12 @@
             handleNoArguments(-)
             handleSend(x, -)
             beginBinaryExpression(-)
-            handleLiteralInt(1)
+              handleLiteralInt(1)
             endBinaryExpression(-)
           endArguments(1, (, ))
           handleSend(sync, +)
           beginBinaryExpression(+)
-          handleLiteralInt(1)
+            handleLiteralInt(1)
           endBinaryExpression(+)
         endReturnStatement(true, return, ;)
       endBlockFunctionBody(2, {, })
@@ -4019,7 +4019,7 @@
           handleNoArguments(==)
           handleSend(x, ==)
           beginBinaryExpression(==)
-          handleLiteralInt(0)
+            handleLiteralInt(0)
           endBinaryExpression(==)
           handleParenthesizedCondition(()
           beginThenStatement(return)
@@ -4037,12 +4037,12 @@
             handleNoArguments(-)
             handleSend(x, -)
             beginBinaryExpression(-)
-            handleLiteralInt(1)
+              handleLiteralInt(1)
             endBinaryExpression(-)
           endArguments(1, (, ))
           handleSend(this, +)
           beginBinaryExpression(+)
-          handleLiteralInt(1)
+            handleLiteralInt(1)
           endBinaryExpression(+)
         endReturnStatement(true, return, ;)
       endBlockFunctionBody(2, {, })
@@ -4077,7 +4077,7 @@
           handleNoArguments(==)
           handleSend(x, ==)
           beginBinaryExpression(==)
-          handleLiteralInt(0)
+            handleLiteralInt(0)
           endBinaryExpression(==)
           handleParenthesizedCondition(()
           beginThenStatement(return)
@@ -4092,11 +4092,11 @@
           handleNoArguments(-)
           handleSend(x, -)
           beginBinaryExpression(-)
-          handleLiteralInt(1)
+            handleLiteralInt(1)
           endBinaryExpression(-)
           handleParenthesizedExpression(()
           beginBinaryExpression(+)
-          handleLiteralInt(1)
+            handleLiteralInt(1)
           endBinaryExpression(+)
           handleThrowExpression(throw, ;)
         endReturnStatement(true, return, ;)
@@ -4132,7 +4132,7 @@
           handleNoArguments(==)
           handleSend(x, ==)
           beginBinaryExpression(==)
-          handleLiteralInt(0)
+            handleLiteralInt(0)
           endBinaryExpression(==)
           handleParenthesizedCondition(()
           beginThenStatement(return)
@@ -4150,12 +4150,12 @@
             handleNoArguments(-)
             handleSend(x, -)
             beginBinaryExpression(-)
-            handleLiteralInt(1)
+              handleLiteralInt(1)
             endBinaryExpression(-)
           endArguments(1, (, ))
           handleSend((, ))
           beginBinaryExpression(+)
-          handleLiteralInt(1)
+            handleLiteralInt(1)
           endBinaryExpression(+)
         endReturnStatement(true, return, ;)
       endBlockFunctionBody(2, {, })
@@ -4190,7 +4190,7 @@
           handleNoArguments(==)
           handleSend(x, ==)
           beginBinaryExpression(==)
-          handleLiteralInt(0)
+            handleLiteralInt(0)
           endBinaryExpression(==)
           handleParenthesizedCondition(()
           beginThenStatement(return)
@@ -4218,11 +4218,11 @@
         handleNoArguments(-)
         handleSend(x, -)
         beginBinaryExpression(-)
-        handleLiteralInt(1)
+          handleLiteralInt(1)
         endBinaryExpression(-)
         handleParenthesizedExpression(()
         beginBinaryExpression(+)
-        handleLiteralInt(1)
+          handleLiteralInt(1)
         endBinaryExpression(+)
         handleExpressionStatement(;)
       endBlockFunctionBody(4, {, })
@@ -4256,7 +4256,7 @@
           handleNoArguments(==)
           handleSend(x, ==)
           beginBinaryExpression(==)
-          handleLiteralInt(0)
+            handleLiteralInt(0)
           endBinaryExpression(==)
           handleParenthesizedCondition(()
           beginThenStatement(return)
@@ -4274,12 +4274,12 @@
             handleNoArguments(-)
             handleSend(x, -)
             beginBinaryExpression(-)
-            handleLiteralInt(1)
+              handleLiteralInt(1)
             endBinaryExpression(-)
           endArguments(1, (, ))
           handleSend(typedef, +)
           beginBinaryExpression(+)
-          handleLiteralInt(1)
+            handleLiteralInt(1)
           endBinaryExpression(+)
         endReturnStatement(true, return, ;)
       endBlockFunctionBody(2, {, })
@@ -4314,7 +4314,7 @@
           handleNoArguments(==)
           handleSend(x, ==)
           beginBinaryExpression(==)
-          handleLiteralInt(0)
+            handleLiteralInt(0)
           endBinaryExpression(==)
           handleParenthesizedCondition(()
           beginThenStatement(return)
@@ -4347,7 +4347,7 @@
         handleNoArguments(-)
         handleSend(x, -)
         beginBinaryExpression(-)
-        handleLiteralInt(1)
+          handleLiteralInt(1)
         endBinaryExpression(-)
         handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], 1, 1)
         handleExpressionStatement(;)
@@ -4365,7 +4365,7 @@
         handleNoArguments(+)
         handleSend(, +)
         beginBinaryExpression(+)
-        handleLiteralInt(1)
+          handleLiteralInt(1)
         endBinaryExpression(+)
         handleExpressionStatement(;)
       endBlockFunctionBody(6, {, })
@@ -4400,7 +4400,7 @@
           handleNoArguments(==)
           handleSend(x, ==)
           beginBinaryExpression(==)
-          handleLiteralInt(0)
+            handleLiteralInt(0)
           endBinaryExpression(==)
           handleParenthesizedCondition(()
           beginThenStatement(return)
@@ -4433,7 +4433,7 @@
         handleNoArguments(-)
         handleSend(x, -)
         beginBinaryExpression(-)
-        handleLiteralInt(1)
+          handleLiteralInt(1)
         endBinaryExpression(-)
         handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], 1, 1)
         handleExpressionStatement(;)
@@ -4451,7 +4451,7 @@
         handleNoArguments(+)
         handleSend(, +)
         beginBinaryExpression(+)
-        handleLiteralInt(1)
+          handleLiteralInt(1)
         endBinaryExpression(+)
         handleExpressionStatement(;)
       endBlockFunctionBody(6, {, })
@@ -4486,7 +4486,7 @@
           handleNoArguments(==)
           handleSend(x, ==)
           beginBinaryExpression(==)
-          handleLiteralInt(0)
+            handleLiteralInt(0)
           endBinaryExpression(==)
           handleParenthesizedCondition(()
           beginThenStatement(return)
@@ -4509,7 +4509,7 @@
           handleNoArguments(-)
           handleSend(x, -)
           beginBinaryExpression(-)
-          handleLiteralInt(1)
+            handleLiteralInt(1)
           endBinaryExpression(-)
           handleParenthesizedCondition(()
           beginWhileStatementBody(+)
@@ -4519,7 +4519,7 @@
             handleNoArguments(+)
             handleSend(, +)
             beginBinaryExpression(+)
-            handleLiteralInt(1)
+              handleLiteralInt(1)
             endBinaryExpression(+)
             handleExpressionStatement(;)
           endWhileStatementBody(})
@@ -4556,7 +4556,7 @@
           handleNoArguments(==)
           handleSend(x, ==)
           beginBinaryExpression(==)
-          handleLiteralInt(0)
+            handleLiteralInt(0)
           endBinaryExpression(==)
           handleParenthesizedCondition(()
           beginThenStatement(return)
@@ -4575,12 +4575,12 @@
             handleNoArguments(-)
             handleSend(x, -)
             beginBinaryExpression(-)
-            handleLiteralInt(1)
+              handleLiteralInt(1)
             endBinaryExpression(-)
           endArguments(1, (, ))
           handleSend(with, +)
           beginBinaryExpression(+)
-          handleLiteralInt(1)
+            handleLiteralInt(1)
           endBinaryExpression(+)
         endReturnStatement(true, return, ;)
       endBlockFunctionBody(2, {, })
@@ -4614,7 +4614,7 @@
           handleNoArguments(==)
           handleSend(x, ==)
           beginBinaryExpression(==)
-          handleLiteralInt(0)
+            handleLiteralInt(0)
           endBinaryExpression(==)
           handleParenthesizedCondition(()
           beginThenStatement(return)
@@ -4632,12 +4632,12 @@
             handleNoArguments(-)
             handleSend(x, -)
             beginBinaryExpression(-)
-            handleLiteralInt(1)
+              handleLiteralInt(1)
             endBinaryExpression(-)
           endArguments(1, (, ))
           handleSend(yield, +)
           beginBinaryExpression(+)
-          handleLiteralInt(1)
+            handleLiteralInt(1)
           endBinaryExpression(+)
         endReturnStatement(true, return, ;)
       endBlockFunctionBody(2, {, })
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 5a39839..22a636f 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
@@ -467,1720 +467,1858 @@
 beginCompilationUnit(typedef)
   beginMetadataStar(typedef)
   endMetadataStar(0)
-  beginFunctionTypeAlias(typedef)
-    handleVoidKeyword(void)
-    handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'abstract'., null, {token: abstract}], abstract, abstract)
-    handleIdentifier(abstract, typedefDeclaration)
-    handleNoTypeVariables(()
-    beginFormalParameters((, MemberKind.FunctionTypeAlias)
-    endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
-  endFunctionTypeAlias(typedef, null, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-  handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'abstract'., null, {token: abstract}], abstract, abstract)
-  handleIdentifier(abstract, typedefDeclaration)
-  handleNoTypeVariables(=)
-  beginFunctionType(void)
-    handleNoTypeVariables(()
-    handleVoidKeyword(void)
-    beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-    endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
-  endFunctionType(Function, null)
-endFunctionTypeAlias(typedef, =, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleVoidKeyword(void)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'as'., null, {token: as}], as, as)
-handleIdentifier(as, typedefDeclaration)
-handleNoTypeVariables(()
-beginFormalParameters((, MemberKind.FunctionTypeAlias)
-endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
-endFunctionTypeAlias(typedef, null, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'as'., null, {token: as}], as, as)
-handleIdentifier(as, typedefDeclaration)
-handleNoTypeVariables(=)
-beginFunctionType(void)
-handleNoTypeVariables(()
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-endFunctionTypeAlias(typedef, =, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleVoidKeyword(void)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'assert'., null, {token: assert}], assert, assert)
-handleIdentifier(assert, typedefDeclaration)
-handleNoTypeVariables(()
-beginFormalParameters((, MemberKind.FunctionTypeAlias)
-endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
-endFunctionTypeAlias(typedef, null, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'assert'., null, {token: assert}], assert, assert)
-handleIdentifier(assert, typedefDeclaration)
-handleNoTypeVariables(=)
-beginFunctionType(void)
-handleNoTypeVariables(()
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-endFunctionTypeAlias(typedef, =, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleVoidKeyword(void)
-handleIdentifier(async, typedefDeclaration)
-handleNoTypeVariables(()
-beginFormalParameters((, MemberKind.FunctionTypeAlias)
-endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
-endFunctionTypeAlias(typedef, null, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleIdentifier(async, typedefDeclaration)
-handleNoTypeVariables(=)
-beginFunctionType(void)
-handleNoTypeVariables(()
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-endFunctionTypeAlias(typedef, =, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleVoidKeyword(void)
-handleIdentifier(await, typedefDeclaration)
-handleNoTypeVariables(()
-beginFormalParameters((, MemberKind.FunctionTypeAlias)
-endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
-endFunctionTypeAlias(typedef, null, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleIdentifier(await, typedefDeclaration)
-handleNoTypeVariables(=)
-beginFunctionType(void)
-handleNoTypeVariables(()
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-endFunctionTypeAlias(typedef, =, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleVoidKeyword(void)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'break'., null, {token: break}], break, break)
-handleIdentifier(break, typedefDeclaration)
-handleNoTypeVariables(()
-beginFormalParameters((, MemberKind.FunctionTypeAlias)
-endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
-endFunctionTypeAlias(typedef, null, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'break'., null, {token: break}], break, break)
-handleIdentifier(break, typedefDeclaration)
-handleNoTypeVariables(=)
-beginFunctionType(void)
-handleNoTypeVariables(()
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-endFunctionTypeAlias(typedef, =, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleVoidKeyword(void)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'case'., null, {token: case}], case, case)
-handleIdentifier(case, typedefDeclaration)
-handleNoTypeVariables(()
-beginFormalParameters((, MemberKind.FunctionTypeAlias)
-endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
-endFunctionTypeAlias(typedef, null, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'case'., null, {token: case}], case, case)
-handleIdentifier(case, typedefDeclaration)
-handleNoTypeVariables(=)
-beginFunctionType(void)
-handleNoTypeVariables(()
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-endFunctionTypeAlias(typedef, =, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleVoidKeyword(void)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'catch'., null, {token: catch}], catch, catch)
-handleIdentifier(catch, typedefDeclaration)
-handleNoTypeVariables(()
-beginFormalParameters((, MemberKind.FunctionTypeAlias)
-endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
-endFunctionTypeAlias(typedef, null, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'catch'., null, {token: catch}], catch, catch)
-handleIdentifier(catch, typedefDeclaration)
-handleNoTypeVariables(=)
-beginFunctionType(void)
-handleNoTypeVariables(()
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-endFunctionTypeAlias(typedef, =, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleVoidKeyword(void)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'class'., null, {token: class}], class, class)
-handleIdentifier(class, typedefDeclaration)
-handleNoTypeVariables(()
-beginFormalParameters((, MemberKind.FunctionTypeAlias)
-endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
-endFunctionTypeAlias(typedef, null, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'class'., null, {token: class}], class, class)
-handleIdentifier(class, typedefDeclaration)
-handleNoTypeVariables(=)
-beginFunctionType(void)
-handleNoTypeVariables(()
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-endFunctionTypeAlias(typedef, =, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleVoidKeyword(void)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'const'., null, {token: const}], const, const)
-handleIdentifier(const, typedefDeclaration)
-handleNoTypeVariables(()
-beginFormalParameters((, MemberKind.FunctionTypeAlias)
-endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
-endFunctionTypeAlias(typedef, null, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'const'., null, {token: const}], const, const)
-handleIdentifier(const, typedefDeclaration)
-handleNoTypeVariables(=)
-beginFunctionType(void)
-handleNoTypeVariables(()
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-endFunctionTypeAlias(typedef, =, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleVoidKeyword(void)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'continue'., null, {token: continue}], continue, continue)
-handleIdentifier(continue, typedefDeclaration)
-handleNoTypeVariables(()
-beginFormalParameters((, MemberKind.FunctionTypeAlias)
-endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
-endFunctionTypeAlias(typedef, null, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'continue'., null, {token: continue}], continue, continue)
-handleIdentifier(continue, typedefDeclaration)
-handleNoTypeVariables(=)
-beginFunctionType(void)
-handleNoTypeVariables(()
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-endFunctionTypeAlias(typedef, =, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleVoidKeyword(void)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'covariant'., null, {token: covariant}], covariant, covariant)
-handleIdentifier(covariant, typedefDeclaration)
-handleNoTypeVariables(()
-beginFormalParameters((, MemberKind.FunctionTypeAlias)
-endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
-endFunctionTypeAlias(typedef, null, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'covariant'., null, {token: covariant}], covariant, covariant)
-handleIdentifier(covariant, typedefDeclaration)
-handleNoTypeVariables(=)
-beginFunctionType(void)
-handleNoTypeVariables(()
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-endFunctionTypeAlias(typedef, =, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleVoidKeyword(void)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'default'., null, {token: default}], default, default)
-handleIdentifier(default, typedefDeclaration)
-handleNoTypeVariables(()
-beginFormalParameters((, MemberKind.FunctionTypeAlias)
-endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
-endFunctionTypeAlias(typedef, null, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'default'., null, {token: default}], default, default)
-handleIdentifier(default, typedefDeclaration)
-handleNoTypeVariables(=)
-beginFunctionType(void)
-handleNoTypeVariables(()
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-endFunctionTypeAlias(typedef, =, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleVoidKeyword(void)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'deferred'., null, {token: deferred}], deferred, deferred)
-handleIdentifier(deferred, typedefDeclaration)
-handleNoTypeVariables(()
-beginFormalParameters((, MemberKind.FunctionTypeAlias)
-endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
-endFunctionTypeAlias(typedef, null, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'deferred'., null, {token: deferred}], deferred, deferred)
-handleIdentifier(deferred, typedefDeclaration)
-handleNoTypeVariables(=)
-beginFunctionType(void)
-handleNoTypeVariables(()
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-endFunctionTypeAlias(typedef, =, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleVoidKeyword(void)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'do'., null, {token: do}], do, do)
-handleIdentifier(do, typedefDeclaration)
-handleNoTypeVariables(()
-beginFormalParameters((, MemberKind.FunctionTypeAlias)
-endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
-endFunctionTypeAlias(typedef, null, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'do'., null, {token: do}], do, do)
-handleIdentifier(do, typedefDeclaration)
-handleNoTypeVariables(=)
-beginFunctionType(void)
-handleNoTypeVariables(()
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-endFunctionTypeAlias(typedef, =, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleVoidKeyword(void)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'dynamic'., null, {token: dynamic}], dynamic, dynamic)
-handleIdentifier(dynamic, typedefDeclaration)
-handleNoTypeVariables(()
-beginFormalParameters((, MemberKind.FunctionTypeAlias)
-endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
-endFunctionTypeAlias(typedef, null, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'dynamic'., null, {token: dynamic}], dynamic, dynamic)
-handleIdentifier(dynamic, typedefDeclaration)
-handleNoTypeVariables(=)
-beginFunctionType(void)
-handleNoTypeVariables(()
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-endFunctionTypeAlias(typedef, =, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleVoidKeyword(void)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'else'., null, {token: else}], else, else)
-handleIdentifier(else, typedefDeclaration)
-handleNoTypeVariables(()
-beginFormalParameters((, MemberKind.FunctionTypeAlias)
-endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
-endFunctionTypeAlias(typedef, null, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'else'., null, {token: else}], else, else)
-handleIdentifier(else, typedefDeclaration)
-handleNoTypeVariables(=)
-beginFunctionType(void)
-handleNoTypeVariables(()
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-endFunctionTypeAlias(typedef, =, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleVoidKeyword(void)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'enum'., null, {token: enum}], enum, enum)
-handleIdentifier(enum, typedefDeclaration)
-handleNoTypeVariables(()
-beginFormalParameters((, MemberKind.FunctionTypeAlias)
-endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
-endFunctionTypeAlias(typedef, null, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'enum'., null, {token: enum}], enum, enum)
-handleIdentifier(enum, typedefDeclaration)
-handleNoTypeVariables(=)
-beginFunctionType(void)
-handleNoTypeVariables(()
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-endFunctionTypeAlias(typedef, =, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleVoidKeyword(void)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'export'., null, {token: export}], export, export)
-handleIdentifier(export, typedefDeclaration)
-handleNoTypeVariables(()
-beginFormalParameters((, MemberKind.FunctionTypeAlias)
-endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
-endFunctionTypeAlias(typedef, null, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'export'., null, {token: export}], export, export)
-handleIdentifier(export, typedefDeclaration)
-handleNoTypeVariables(=)
-beginFunctionType(void)
-handleNoTypeVariables(()
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-endFunctionTypeAlias(typedef, =, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleVoidKeyword(void)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'extends'., null, {token: extends}], extends, extends)
-handleIdentifier(extends, typedefDeclaration)
-handleNoTypeVariables(()
-beginFormalParameters((, MemberKind.FunctionTypeAlias)
-endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
-endFunctionTypeAlias(typedef, null, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'extends'., null, {token: extends}], extends, extends)
-handleIdentifier(extends, typedefDeclaration)
-handleNoTypeVariables(=)
-beginFunctionType(void)
-handleNoTypeVariables(()
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-endFunctionTypeAlias(typedef, =, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleVoidKeyword(void)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'extension'., null, {token: extension}], extension, extension)
-handleIdentifier(extension, typedefDeclaration)
-handleNoTypeVariables(()
-beginFormalParameters((, MemberKind.FunctionTypeAlias)
-endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
-endFunctionTypeAlias(typedef, null, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'extension'., null, {token: extension}], extension, extension)
-handleIdentifier(extension, typedefDeclaration)
-handleNoTypeVariables(=)
-beginFunctionType(void)
-handleNoTypeVariables(()
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-endFunctionTypeAlias(typedef, =, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleVoidKeyword(void)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'external'., null, {token: external}], external, external)
-handleIdentifier(external, typedefDeclaration)
-handleNoTypeVariables(()
-beginFormalParameters((, MemberKind.FunctionTypeAlias)
-endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
-endFunctionTypeAlias(typedef, null, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'external'., null, {token: external}], external, external)
-handleIdentifier(external, typedefDeclaration)
-handleNoTypeVariables(=)
-beginFunctionType(void)
-handleNoTypeVariables(()
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-endFunctionTypeAlias(typedef, =, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleVoidKeyword(void)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'factory'., null, {token: factory}], factory, factory)
-handleIdentifier(factory, typedefDeclaration)
-handleNoTypeVariables(()
-beginFormalParameters((, MemberKind.FunctionTypeAlias)
-endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
-endFunctionTypeAlias(typedef, null, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'factory'., null, {token: factory}], factory, factory)
-handleIdentifier(factory, typedefDeclaration)
-handleNoTypeVariables(=)
-beginFunctionType(void)
-handleNoTypeVariables(()
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-endFunctionTypeAlias(typedef, =, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleVoidKeyword(void)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'false'., null, {token: false}], false, false)
-handleIdentifier(false, typedefDeclaration)
-handleNoTypeVariables(()
-beginFormalParameters((, MemberKind.FunctionTypeAlias)
-endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
-endFunctionTypeAlias(typedef, null, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'false'., null, {token: false}], false, false)
-handleIdentifier(false, typedefDeclaration)
-handleNoTypeVariables(=)
-beginFunctionType(void)
-handleNoTypeVariables(()
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-endFunctionTypeAlias(typedef, =, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleVoidKeyword(void)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'final'., null, {token: final}], final, final)
-handleIdentifier(final, typedefDeclaration)
-handleNoTypeVariables(()
-beginFormalParameters((, MemberKind.FunctionTypeAlias)
-endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
-endFunctionTypeAlias(typedef, null, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'final'., null, {token: final}], final, final)
-handleIdentifier(final, typedefDeclaration)
-handleNoTypeVariables(=)
-beginFunctionType(void)
-handleNoTypeVariables(()
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-endFunctionTypeAlias(typedef, =, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleVoidKeyword(void)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'finally'., null, {token: finally}], finally, finally)
-handleIdentifier(finally, typedefDeclaration)
-handleNoTypeVariables(()
-beginFormalParameters((, MemberKind.FunctionTypeAlias)
-endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
-endFunctionTypeAlias(typedef, null, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'finally'., null, {token: finally}], finally, finally)
-handleIdentifier(finally, typedefDeclaration)
-handleNoTypeVariables(=)
-beginFunctionType(void)
-handleNoTypeVariables(()
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-endFunctionTypeAlias(typedef, =, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleVoidKeyword(void)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'for'., null, {token: for}], for, for)
-handleIdentifier(for, typedefDeclaration)
-handleNoTypeVariables(()
-beginFormalParameters((, MemberKind.FunctionTypeAlias)
-endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
-endFunctionTypeAlias(typedef, null, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'for'., null, {token: for}], for, for)
-handleIdentifier(for, typedefDeclaration)
-handleNoTypeVariables(=)
-beginFunctionType(void)
-handleNoTypeVariables(()
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-endFunctionTypeAlias(typedef, =, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleVoidKeyword(void)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'Function'., null, {token: Function}], Function, Function)
-handleIdentifier(Function, typedefDeclaration)
-handleNoTypeVariables(()
-beginFormalParameters((, MemberKind.FunctionTypeAlias)
-endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
-endFunctionTypeAlias(typedef, null, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'Function'., null, {token: Function}], Function, Function)
-handleIdentifier(Function, typedefDeclaration)
-handleNoTypeVariables(=)
-beginFunctionType(void)
-handleNoTypeVariables(()
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-endFunctionTypeAlias(typedef, =, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleVoidKeyword(void)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'get'., null, {token: get}], get, get)
-handleIdentifier(get, typedefDeclaration)
-handleNoTypeVariables(()
-beginFormalParameters((, MemberKind.FunctionTypeAlias)
-endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
-endFunctionTypeAlias(typedef, null, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'get'., null, {token: get}], get, get)
-handleIdentifier(get, typedefDeclaration)
-handleNoTypeVariables(=)
-beginFunctionType(void)
-handleNoTypeVariables(()
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-endFunctionTypeAlias(typedef, =, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleVoidKeyword(void)
-handleIdentifier(hide, typedefDeclaration)
-handleNoTypeVariables(()
-beginFormalParameters((, MemberKind.FunctionTypeAlias)
-endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
-endFunctionTypeAlias(typedef, null, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleIdentifier(hide, typedefDeclaration)
-handleNoTypeVariables(=)
-beginFunctionType(void)
-handleNoTypeVariables(()
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-endFunctionTypeAlias(typedef, =, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleVoidKeyword(void)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'if'., null, {token: if}], if, if)
-handleIdentifier(if, typedefDeclaration)
-handleNoTypeVariables(()
-beginFormalParameters((, MemberKind.FunctionTypeAlias)
-endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
-endFunctionTypeAlias(typedef, null, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'if'., null, {token: if}], if, if)
-handleIdentifier(if, typedefDeclaration)
-handleNoTypeVariables(=)
-beginFunctionType(void)
-handleNoTypeVariables(()
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-endFunctionTypeAlias(typedef, =, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleVoidKeyword(void)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'implements'., null, {token: implements}], implements, implements)
-handleIdentifier(implements, typedefDeclaration)
-handleNoTypeVariables(()
-beginFormalParameters((, MemberKind.FunctionTypeAlias)
-endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
-endFunctionTypeAlias(typedef, null, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'implements'., null, {token: implements}], implements, implements)
-handleIdentifier(implements, typedefDeclaration)
-handleNoTypeVariables(=)
-beginFunctionType(void)
-handleNoTypeVariables(()
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-endFunctionTypeAlias(typedef, =, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleVoidKeyword(void)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'import'., null, {token: import}], import, import)
-handleIdentifier(import, typedefDeclaration)
-handleNoTypeVariables(()
-beginFormalParameters((, MemberKind.FunctionTypeAlias)
-endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
-endFunctionTypeAlias(typedef, null, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'import'., null, {token: import}], import, import)
-handleIdentifier(import, typedefDeclaration)
-handleNoTypeVariables(=)
-beginFunctionType(void)
-handleNoTypeVariables(()
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-endFunctionTypeAlias(typedef, =, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleVoidKeyword(void)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'in'., null, {token: in}], in, in)
-handleIdentifier(in, typedefDeclaration)
-handleNoTypeVariables(()
-beginFormalParameters((, MemberKind.FunctionTypeAlias)
-endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
-endFunctionTypeAlias(typedef, null, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'in'., null, {token: in}], in, in)
-handleIdentifier(in, typedefDeclaration)
-handleNoTypeVariables(=)
-beginFunctionType(void)
-handleNoTypeVariables(()
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-endFunctionTypeAlias(typedef, =, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleVoidKeyword(void)
-handleIdentifier(inout, typedefDeclaration)
-handleNoTypeVariables(()
-beginFormalParameters((, MemberKind.FunctionTypeAlias)
-endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
-endFunctionTypeAlias(typedef, null, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleIdentifier(inout, typedefDeclaration)
-handleNoTypeVariables(=)
-beginFunctionType(void)
-handleNoTypeVariables(()
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-endFunctionTypeAlias(typedef, =, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleVoidKeyword(void)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'interface'., null, {token: interface}], interface, interface)
-handleIdentifier(interface, typedefDeclaration)
-handleNoTypeVariables(()
-beginFormalParameters((, MemberKind.FunctionTypeAlias)
-endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
-endFunctionTypeAlias(typedef, null, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'interface'., null, {token: interface}], interface, interface)
-handleIdentifier(interface, typedefDeclaration)
-handleNoTypeVariables(=)
-beginFunctionType(void)
-handleNoTypeVariables(()
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-endFunctionTypeAlias(typedef, =, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleVoidKeyword(void)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'is'., null, {token: is}], is, is)
-handleIdentifier(is, typedefDeclaration)
-handleNoTypeVariables(()
-beginFormalParameters((, MemberKind.FunctionTypeAlias)
-endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
-endFunctionTypeAlias(typedef, null, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'is'., null, {token: is}], is, is)
-handleIdentifier(is, typedefDeclaration)
-handleNoTypeVariables(=)
-beginFunctionType(void)
-handleNoTypeVariables(()
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-endFunctionTypeAlias(typedef, =, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleVoidKeyword(void)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'late'., null, {token: late}], late, late)
-handleIdentifier(late, typedefDeclaration)
-handleNoTypeVariables(()
-beginFormalParameters((, MemberKind.FunctionTypeAlias)
-endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
-endFunctionTypeAlias(typedef, null, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'late'., null, {token: late}], late, late)
-handleIdentifier(late, typedefDeclaration)
-handleNoTypeVariables(=)
-beginFunctionType(void)
-handleNoTypeVariables(()
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-endFunctionTypeAlias(typedef, =, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleVoidKeyword(void)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'library'., null, {token: library}], library, library)
-handleIdentifier(library, typedefDeclaration)
-handleNoTypeVariables(()
-beginFormalParameters((, MemberKind.FunctionTypeAlias)
-endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
-endFunctionTypeAlias(typedef, null, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'library'., null, {token: library}], library, library)
-handleIdentifier(library, typedefDeclaration)
-handleNoTypeVariables(=)
-beginFunctionType(void)
-handleNoTypeVariables(()
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-endFunctionTypeAlias(typedef, =, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleVoidKeyword(void)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'mixin'., null, {token: mixin}], mixin, mixin)
-handleIdentifier(mixin, typedefDeclaration)
-handleNoTypeVariables(()
-beginFormalParameters((, MemberKind.FunctionTypeAlias)
-endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
-endFunctionTypeAlias(typedef, null, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'mixin'., null, {token: mixin}], mixin, mixin)
-handleIdentifier(mixin, typedefDeclaration)
-handleNoTypeVariables(=)
-beginFunctionType(void)
-handleNoTypeVariables(()
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-endFunctionTypeAlias(typedef, =, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleVoidKeyword(void)
-handleIdentifier(native, typedefDeclaration)
-handleNoTypeVariables(()
-beginFormalParameters((, MemberKind.FunctionTypeAlias)
-endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
-endFunctionTypeAlias(typedef, null, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleIdentifier(native, typedefDeclaration)
-handleNoTypeVariables(=)
-beginFunctionType(void)
-handleNoTypeVariables(()
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-endFunctionTypeAlias(typedef, =, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleVoidKeyword(void)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'new'., null, {token: new}], new, new)
-handleIdentifier(new, typedefDeclaration)
-handleNoTypeVariables(()
-beginFormalParameters((, MemberKind.FunctionTypeAlias)
-endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
-endFunctionTypeAlias(typedef, null, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'new'., null, {token: new}], new, new)
-handleIdentifier(new, typedefDeclaration)
-handleNoTypeVariables(=)
-beginFunctionType(void)
-handleNoTypeVariables(()
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-endFunctionTypeAlias(typedef, =, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleVoidKeyword(void)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'null'., null, {token: null}], null, null)
-handleIdentifier(null, typedefDeclaration)
-handleNoTypeVariables(()
-beginFormalParameters((, MemberKind.FunctionTypeAlias)
-endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
-endFunctionTypeAlias(typedef, null, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'null'., null, {token: null}], null, null)
-handleIdentifier(null, typedefDeclaration)
-handleNoTypeVariables(=)
-beginFunctionType(void)
-handleNoTypeVariables(()
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-endFunctionTypeAlias(typedef, =, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleVoidKeyword(void)
-handleIdentifier(of, typedefDeclaration)
-handleNoTypeVariables(()
-beginFormalParameters((, MemberKind.FunctionTypeAlias)
-endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
-endFunctionTypeAlias(typedef, null, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleIdentifier(of, typedefDeclaration)
-handleNoTypeVariables(=)
-beginFunctionType(void)
-handleNoTypeVariables(()
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-endFunctionTypeAlias(typedef, =, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleVoidKeyword(void)
-handleIdentifier(on, typedefDeclaration)
-handleNoTypeVariables(()
-beginFormalParameters((, MemberKind.FunctionTypeAlias)
-endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
-endFunctionTypeAlias(typedef, null, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleIdentifier(on, typedefDeclaration)
-handleNoTypeVariables(=)
-beginFunctionType(void)
-handleNoTypeVariables(()
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-endFunctionTypeAlias(typedef, =, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleVoidKeyword(void)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'operator'., null, {token: operator}], operator, operator)
-handleIdentifier(operator, typedefDeclaration)
-handleNoTypeVariables(()
-beginFormalParameters((, MemberKind.FunctionTypeAlias)
-endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
-endFunctionTypeAlias(typedef, null, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'operator'., null, {token: operator}], operator, operator)
-handleIdentifier(operator, typedefDeclaration)
-handleNoTypeVariables(=)
-beginFunctionType(void)
-handleNoTypeVariables(()
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-endFunctionTypeAlias(typedef, =, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleVoidKeyword(void)
-handleIdentifier(out, typedefDeclaration)
-handleNoTypeVariables(()
-beginFormalParameters((, MemberKind.FunctionTypeAlias)
-endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
-endFunctionTypeAlias(typedef, null, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleIdentifier(out, typedefDeclaration)
-handleNoTypeVariables(=)
-beginFunctionType(void)
-handleNoTypeVariables(()
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-endFunctionTypeAlias(typedef, =, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleVoidKeyword(void)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'part'., null, {token: part}], part, part)
-handleIdentifier(part, typedefDeclaration)
-handleNoTypeVariables(()
-beginFormalParameters((, MemberKind.FunctionTypeAlias)
-endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
-endFunctionTypeAlias(typedef, null, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'part'., null, {token: part}], part, part)
-handleIdentifier(part, typedefDeclaration)
-handleNoTypeVariables(=)
-beginFunctionType(void)
-handleNoTypeVariables(()
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-endFunctionTypeAlias(typedef, =, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleVoidKeyword(void)
-handleIdentifier(patch, typedefDeclaration)
-handleNoTypeVariables(()
-beginFormalParameters((, MemberKind.FunctionTypeAlias)
-endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
-endFunctionTypeAlias(typedef, null, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleIdentifier(patch, typedefDeclaration)
-handleNoTypeVariables(=)
-beginFunctionType(void)
-handleNoTypeVariables(()
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-endFunctionTypeAlias(typedef, =, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleVoidKeyword(void)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'required'., null, {token: required}], required, required)
-handleIdentifier(required, typedefDeclaration)
-handleNoTypeVariables(()
-beginFormalParameters((, MemberKind.FunctionTypeAlias)
-endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
-endFunctionTypeAlias(typedef, null, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'required'., null, {token: required}], required, required)
-handleIdentifier(required, typedefDeclaration)
-handleNoTypeVariables(=)
-beginFunctionType(void)
-handleNoTypeVariables(()
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-endFunctionTypeAlias(typedef, =, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleVoidKeyword(void)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'rethrow'., null, {token: rethrow}], rethrow, rethrow)
-handleIdentifier(rethrow, typedefDeclaration)
-handleNoTypeVariables(()
-beginFormalParameters((, MemberKind.FunctionTypeAlias)
-endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
-endFunctionTypeAlias(typedef, null, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'rethrow'., null, {token: rethrow}], rethrow, rethrow)
-handleIdentifier(rethrow, typedefDeclaration)
-handleNoTypeVariables(=)
-beginFunctionType(void)
-handleNoTypeVariables(()
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-endFunctionTypeAlias(typedef, =, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleVoidKeyword(void)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'return'., null, {token: return}], return, return)
-handleIdentifier(return, typedefDeclaration)
-handleNoTypeVariables(()
-beginFormalParameters((, MemberKind.FunctionTypeAlias)
-endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
-endFunctionTypeAlias(typedef, null, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'return'., null, {token: return}], return, return)
-handleIdentifier(return, typedefDeclaration)
-handleNoTypeVariables(=)
-beginFunctionType(void)
-handleNoTypeVariables(()
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-endFunctionTypeAlias(typedef, =, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleVoidKeyword(void)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'set'., null, {token: set}], set, set)
-handleIdentifier(set, typedefDeclaration)
-handleNoTypeVariables(()
-beginFormalParameters((, MemberKind.FunctionTypeAlias)
-endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
-endFunctionTypeAlias(typedef, null, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'set'., null, {token: set}], set, set)
-handleIdentifier(set, typedefDeclaration)
-handleNoTypeVariables(=)
-beginFunctionType(void)
-handleNoTypeVariables(()
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-endFunctionTypeAlias(typedef, =, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleVoidKeyword(void)
-handleIdentifier(show, typedefDeclaration)
-handleNoTypeVariables(()
-beginFormalParameters((, MemberKind.FunctionTypeAlias)
-endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
-endFunctionTypeAlias(typedef, null, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleIdentifier(show, typedefDeclaration)
-handleNoTypeVariables(=)
-beginFunctionType(void)
-handleNoTypeVariables(()
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-endFunctionTypeAlias(typedef, =, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleVoidKeyword(void)
-handleIdentifier(source, typedefDeclaration)
-handleNoTypeVariables(()
-beginFormalParameters((, MemberKind.FunctionTypeAlias)
-endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
-endFunctionTypeAlias(typedef, null, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleIdentifier(source, typedefDeclaration)
-handleNoTypeVariables(=)
-beginFunctionType(void)
-handleNoTypeVariables(()
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-endFunctionTypeAlias(typedef, =, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleVoidKeyword(void)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'static'., null, {token: static}], static, static)
-handleIdentifier(static, typedefDeclaration)
-handleNoTypeVariables(()
-beginFormalParameters((, MemberKind.FunctionTypeAlias)
-endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
-endFunctionTypeAlias(typedef, null, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'static'., null, {token: static}], static, static)
-handleIdentifier(static, typedefDeclaration)
-handleNoTypeVariables(=)
-beginFunctionType(void)
-handleNoTypeVariables(()
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-endFunctionTypeAlias(typedef, =, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleVoidKeyword(void)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'super'., null, {token: super}], super, super)
-handleIdentifier(super, typedefDeclaration)
-handleNoTypeVariables(()
-beginFormalParameters((, MemberKind.FunctionTypeAlias)
-endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
-endFunctionTypeAlias(typedef, null, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'super'., null, {token: super}], super, super)
-handleIdentifier(super, typedefDeclaration)
-handleNoTypeVariables(=)
-beginFunctionType(void)
-handleNoTypeVariables(()
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-endFunctionTypeAlias(typedef, =, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleVoidKeyword(void)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'switch'., null, {token: switch}], switch, switch)
-handleIdentifier(switch, typedefDeclaration)
-handleNoTypeVariables(()
-beginFormalParameters((, MemberKind.FunctionTypeAlias)
-endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
-endFunctionTypeAlias(typedef, null, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'switch'., null, {token: switch}], switch, switch)
-handleIdentifier(switch, typedefDeclaration)
-handleNoTypeVariables(=)
-beginFunctionType(void)
-handleNoTypeVariables(()
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-endFunctionTypeAlias(typedef, =, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleVoidKeyword(void)
-handleIdentifier(sync, typedefDeclaration)
-handleNoTypeVariables(()
-beginFormalParameters((, MemberKind.FunctionTypeAlias)
-endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
-endFunctionTypeAlias(typedef, null, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleIdentifier(sync, typedefDeclaration)
-handleNoTypeVariables(=)
-beginFunctionType(void)
-handleNoTypeVariables(()
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-endFunctionTypeAlias(typedef, =, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleVoidKeyword(void)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'this'., null, {token: this}], this, this)
-handleIdentifier(this, typedefDeclaration)
-handleNoTypeVariables(()
-beginFormalParameters((, MemberKind.FunctionTypeAlias)
-endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
-endFunctionTypeAlias(typedef, null, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'this'., null, {token: this}], this, this)
-handleIdentifier(this, typedefDeclaration)
-handleNoTypeVariables(=)
-beginFunctionType(void)
-handleNoTypeVariables(()
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-endFunctionTypeAlias(typedef, =, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleVoidKeyword(void)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'throw'., null, {token: throw}], throw, throw)
-handleIdentifier(throw, typedefDeclaration)
-handleNoTypeVariables(()
-beginFormalParameters((, MemberKind.FunctionTypeAlias)
-endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
-endFunctionTypeAlias(typedef, null, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'throw'., null, {token: throw}], throw, throw)
-handleIdentifier(throw, typedefDeclaration)
-handleNoTypeVariables(=)
-beginFunctionType(void)
-handleNoTypeVariables(()
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-endFunctionTypeAlias(typedef, =, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleVoidKeyword(void)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'true'., null, {token: true}], true, true)
-handleIdentifier(true, typedefDeclaration)
-handleNoTypeVariables(()
-beginFormalParameters((, MemberKind.FunctionTypeAlias)
-endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
-endFunctionTypeAlias(typedef, null, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'true'., null, {token: true}], true, true)
-handleIdentifier(true, typedefDeclaration)
-handleNoTypeVariables(=)
-beginFunctionType(void)
-handleNoTypeVariables(()
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-endFunctionTypeAlias(typedef, =, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleVoidKeyword(void)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'try'., null, {token: try}], try, try)
-handleIdentifier(try, typedefDeclaration)
-handleNoTypeVariables(()
-beginFormalParameters((, MemberKind.FunctionTypeAlias)
-endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
-endFunctionTypeAlias(typedef, null, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'try'., null, {token: try}], try, try)
-handleIdentifier(try, typedefDeclaration)
-handleNoTypeVariables(=)
-beginFunctionType(void)
-handleNoTypeVariables(()
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-endFunctionTypeAlias(typedef, =, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleVoidKeyword(void)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'typedef'., null, {token: typedef}], typedef, typedef)
-handleIdentifier(typedef, typedefDeclaration)
-handleNoTypeVariables(()
-beginFormalParameters((, MemberKind.FunctionTypeAlias)
-endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
-endFunctionTypeAlias(typedef, null, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'typedef'., null, {token: typedef}], typedef, typedef)
-handleIdentifier(typedef, typedefDeclaration)
-handleNoTypeVariables(=)
-beginFunctionType(void)
-handleNoTypeVariables(()
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-endFunctionTypeAlias(typedef, =, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleVoidKeyword(void)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'var'., null, {token: var}], var, var)
-handleIdentifier(var, typedefDeclaration)
-handleNoTypeVariables(()
-beginFormalParameters((, MemberKind.FunctionTypeAlias)
-endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
-endFunctionTypeAlias(typedef, null, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'var'., null, {token: var}], var, var)
-handleIdentifier(var, typedefDeclaration)
-handleNoTypeVariables(=)
-beginFunctionType(void)
-handleNoTypeVariables(()
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-endFunctionTypeAlias(typedef, =, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleVoidKeyword(void)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'void'., null, {token: void}], void, void)
-handleIdentifier(void, typedefDeclaration)
-handleNoTypeVariables(()
-beginFormalParameters((, MemberKind.FunctionTypeAlias)
-endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
-endFunctionTypeAlias(typedef, null, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleVoidKeyword(void)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '='., null, {token: =}], =, =)
-handleIdentifier(, typedefDeclaration)
-handleNoTypeVariables(=)
-handleRecoverableError(MissingTypedefParameters, =, =)
-beginFormalParameters((, MemberKind.FunctionTypeAlias)
-endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
-handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], =, =)
-endFunctionTypeAlias(typedef, null, ;)
-endTopLevelDeclaration(=)
-beginMetadataStar(=)
-endMetadataStar(0)
-beginTopLevelMember(=)
-handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got '='., null, {token: =}], =, =)
-handleInvalidTopLevelDeclaration(=)
-endTopLevelDeclaration(void)
-beginMetadataStar(void)
-endMetadataStar(0)
-beginTopLevelMember(void)
-beginTopLevelMethod(=, null)
-handleVoidKeyword(void)
-handleIdentifier(Function, topLevelFunctionDeclaration)
-handleNoTypeVariables(()
-beginFormalParameters((, MemberKind.TopLevelMethod)
-endFormalParameters(0, (, ), MemberKind.TopLevelMethod)
-handleAsyncModifier(null, null)
-handleRecoverableError(ExpectedBody, ;, ;)
-handleEmptyFunctionBody(;)
-endTopLevelMethod(void, null, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleVoidKeyword(void)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'while'., null, {token: while}], while, while)
-handleIdentifier(while, typedefDeclaration)
-handleNoTypeVariables(()
-beginFormalParameters((, MemberKind.FunctionTypeAlias)
-endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
-endFunctionTypeAlias(typedef, null, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'while'., null, {token: while}], while, while)
-handleIdentifier(while, typedefDeclaration)
-handleNoTypeVariables(=)
-beginFunctionType(void)
-handleNoTypeVariables(()
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-endFunctionTypeAlias(typedef, =, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleVoidKeyword(void)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'with'., null, {token: with}], with, with)
-handleIdentifier(with, typedefDeclaration)
-handleNoTypeVariables(()
-beginFormalParameters((, MemberKind.FunctionTypeAlias)
-endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
-endFunctionTypeAlias(typedef, null, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'with'., null, {token: with}], with, with)
-handleIdentifier(with, typedefDeclaration)
-handleNoTypeVariables(=)
-beginFunctionType(void)
-handleNoTypeVariables(()
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-endFunctionTypeAlias(typedef, =, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleVoidKeyword(void)
-handleIdentifier(yield, typedefDeclaration)
-handleNoTypeVariables(()
-beginFormalParameters((, MemberKind.FunctionTypeAlias)
-endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
-endFunctionTypeAlias(typedef, null, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleIdentifier(yield, typedefDeclaration)
-handleNoTypeVariables(=)
-beginFunctionType(void)
-handleNoTypeVariables(()
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-endFunctionTypeAlias(typedef, =, ;)
-endTopLevelDeclaration()
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleVoidKeyword(void)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'abstract'., null, {token: abstract}], abstract, abstract)
+      handleIdentifier(abstract, typedefDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.FunctionTypeAlias)
+      endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
+    endFunctionTypeAlias(typedef, null, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'abstract'., null, {token: abstract}], abstract, abstract)
+      handleIdentifier(abstract, typedefDeclaration)
+      handleNoTypeVariables(=)
+      beginFunctionType(void)
+        handleNoTypeVariables(()
+        handleVoidKeyword(void)
+        beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+        endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
+      endFunctionType(Function, null)
+    endFunctionTypeAlias(typedef, =, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleVoidKeyword(void)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'as'., null, {token: as}], as, as)
+      handleIdentifier(as, typedefDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.FunctionTypeAlias)
+      endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
+    endFunctionTypeAlias(typedef, null, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'as'., null, {token: as}], as, as)
+      handleIdentifier(as, typedefDeclaration)
+      handleNoTypeVariables(=)
+      beginFunctionType(void)
+        handleNoTypeVariables(()
+        handleVoidKeyword(void)
+        beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+        endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
+      endFunctionType(Function, null)
+    endFunctionTypeAlias(typedef, =, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleVoidKeyword(void)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'assert'., null, {token: assert}], assert, assert)
+      handleIdentifier(assert, typedefDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.FunctionTypeAlias)
+      endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
+    endFunctionTypeAlias(typedef, null, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'assert'., null, {token: assert}], assert, assert)
+      handleIdentifier(assert, typedefDeclaration)
+      handleNoTypeVariables(=)
+      beginFunctionType(void)
+        handleNoTypeVariables(()
+        handleVoidKeyword(void)
+        beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+        endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
+      endFunctionType(Function, null)
+    endFunctionTypeAlias(typedef, =, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleVoidKeyword(void)
+      handleIdentifier(async, typedefDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.FunctionTypeAlias)
+      endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
+    endFunctionTypeAlias(typedef, null, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleIdentifier(async, typedefDeclaration)
+      handleNoTypeVariables(=)
+      beginFunctionType(void)
+        handleNoTypeVariables(()
+        handleVoidKeyword(void)
+        beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+        endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
+      endFunctionType(Function, null)
+    endFunctionTypeAlias(typedef, =, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleVoidKeyword(void)
+      handleIdentifier(await, typedefDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.FunctionTypeAlias)
+      endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
+    endFunctionTypeAlias(typedef, null, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleIdentifier(await, typedefDeclaration)
+      handleNoTypeVariables(=)
+      beginFunctionType(void)
+        handleNoTypeVariables(()
+        handleVoidKeyword(void)
+        beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+        endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
+      endFunctionType(Function, null)
+    endFunctionTypeAlias(typedef, =, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleVoidKeyword(void)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'break'., null, {token: break}], break, break)
+      handleIdentifier(break, typedefDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.FunctionTypeAlias)
+      endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
+    endFunctionTypeAlias(typedef, null, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'break'., null, {token: break}], break, break)
+      handleIdentifier(break, typedefDeclaration)
+      handleNoTypeVariables(=)
+      beginFunctionType(void)
+        handleNoTypeVariables(()
+        handleVoidKeyword(void)
+        beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+        endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
+      endFunctionType(Function, null)
+    endFunctionTypeAlias(typedef, =, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleVoidKeyword(void)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'case'., null, {token: case}], case, case)
+      handleIdentifier(case, typedefDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.FunctionTypeAlias)
+      endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
+    endFunctionTypeAlias(typedef, null, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'case'., null, {token: case}], case, case)
+      handleIdentifier(case, typedefDeclaration)
+      handleNoTypeVariables(=)
+      beginFunctionType(void)
+        handleNoTypeVariables(()
+        handleVoidKeyword(void)
+        beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+        endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
+      endFunctionType(Function, null)
+    endFunctionTypeAlias(typedef, =, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleVoidKeyword(void)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'catch'., null, {token: catch}], catch, catch)
+      handleIdentifier(catch, typedefDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.FunctionTypeAlias)
+      endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
+    endFunctionTypeAlias(typedef, null, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'catch'., null, {token: catch}], catch, catch)
+      handleIdentifier(catch, typedefDeclaration)
+      handleNoTypeVariables(=)
+      beginFunctionType(void)
+        handleNoTypeVariables(()
+        handleVoidKeyword(void)
+        beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+        endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
+      endFunctionType(Function, null)
+    endFunctionTypeAlias(typedef, =, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleVoidKeyword(void)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'class'., null, {token: class}], class, class)
+      handleIdentifier(class, typedefDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.FunctionTypeAlias)
+      endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
+    endFunctionTypeAlias(typedef, null, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'class'., null, {token: class}], class, class)
+      handleIdentifier(class, typedefDeclaration)
+      handleNoTypeVariables(=)
+      beginFunctionType(void)
+        handleNoTypeVariables(()
+        handleVoidKeyword(void)
+        beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+        endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
+      endFunctionType(Function, null)
+    endFunctionTypeAlias(typedef, =, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleVoidKeyword(void)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'const'., null, {token: const}], const, const)
+      handleIdentifier(const, typedefDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.FunctionTypeAlias)
+      endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
+    endFunctionTypeAlias(typedef, null, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'const'., null, {token: const}], const, const)
+      handleIdentifier(const, typedefDeclaration)
+      handleNoTypeVariables(=)
+      beginFunctionType(void)
+        handleNoTypeVariables(()
+        handleVoidKeyword(void)
+        beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+        endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
+      endFunctionType(Function, null)
+    endFunctionTypeAlias(typedef, =, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleVoidKeyword(void)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'continue'., null, {token: continue}], continue, continue)
+      handleIdentifier(continue, typedefDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.FunctionTypeAlias)
+      endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
+    endFunctionTypeAlias(typedef, null, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'continue'., null, {token: continue}], continue, continue)
+      handleIdentifier(continue, typedefDeclaration)
+      handleNoTypeVariables(=)
+      beginFunctionType(void)
+        handleNoTypeVariables(()
+        handleVoidKeyword(void)
+        beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+        endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
+      endFunctionType(Function, null)
+    endFunctionTypeAlias(typedef, =, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleVoidKeyword(void)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'covariant'., null, {token: covariant}], covariant, covariant)
+      handleIdentifier(covariant, typedefDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.FunctionTypeAlias)
+      endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
+    endFunctionTypeAlias(typedef, null, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'covariant'., null, {token: covariant}], covariant, covariant)
+      handleIdentifier(covariant, typedefDeclaration)
+      handleNoTypeVariables(=)
+      beginFunctionType(void)
+        handleNoTypeVariables(()
+        handleVoidKeyword(void)
+        beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+        endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
+      endFunctionType(Function, null)
+    endFunctionTypeAlias(typedef, =, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleVoidKeyword(void)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'default'., null, {token: default}], default, default)
+      handleIdentifier(default, typedefDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.FunctionTypeAlias)
+      endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
+    endFunctionTypeAlias(typedef, null, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'default'., null, {token: default}], default, default)
+      handleIdentifier(default, typedefDeclaration)
+      handleNoTypeVariables(=)
+      beginFunctionType(void)
+        handleNoTypeVariables(()
+        handleVoidKeyword(void)
+        beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+        endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
+      endFunctionType(Function, null)
+    endFunctionTypeAlias(typedef, =, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleVoidKeyword(void)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'deferred'., null, {token: deferred}], deferred, deferred)
+      handleIdentifier(deferred, typedefDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.FunctionTypeAlias)
+      endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
+    endFunctionTypeAlias(typedef, null, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'deferred'., null, {token: deferred}], deferred, deferred)
+      handleIdentifier(deferred, typedefDeclaration)
+      handleNoTypeVariables(=)
+      beginFunctionType(void)
+        handleNoTypeVariables(()
+        handleVoidKeyword(void)
+        beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+        endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
+      endFunctionType(Function, null)
+    endFunctionTypeAlias(typedef, =, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleVoidKeyword(void)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'do'., null, {token: do}], do, do)
+      handleIdentifier(do, typedefDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.FunctionTypeAlias)
+      endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
+    endFunctionTypeAlias(typedef, null, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'do'., null, {token: do}], do, do)
+      handleIdentifier(do, typedefDeclaration)
+      handleNoTypeVariables(=)
+      beginFunctionType(void)
+        handleNoTypeVariables(()
+        handleVoidKeyword(void)
+        beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+        endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
+      endFunctionType(Function, null)
+    endFunctionTypeAlias(typedef, =, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleVoidKeyword(void)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'dynamic'., null, {token: dynamic}], dynamic, dynamic)
+      handleIdentifier(dynamic, typedefDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.FunctionTypeAlias)
+      endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
+    endFunctionTypeAlias(typedef, null, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'dynamic'., null, {token: dynamic}], dynamic, dynamic)
+      handleIdentifier(dynamic, typedefDeclaration)
+      handleNoTypeVariables(=)
+      beginFunctionType(void)
+        handleNoTypeVariables(()
+        handleVoidKeyword(void)
+        beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+        endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
+      endFunctionType(Function, null)
+    endFunctionTypeAlias(typedef, =, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleVoidKeyword(void)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'else'., null, {token: else}], else, else)
+      handleIdentifier(else, typedefDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.FunctionTypeAlias)
+      endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
+    endFunctionTypeAlias(typedef, null, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'else'., null, {token: else}], else, else)
+      handleIdentifier(else, typedefDeclaration)
+      handleNoTypeVariables(=)
+      beginFunctionType(void)
+        handleNoTypeVariables(()
+        handleVoidKeyword(void)
+        beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+        endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
+      endFunctionType(Function, null)
+    endFunctionTypeAlias(typedef, =, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleVoidKeyword(void)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'enum'., null, {token: enum}], enum, enum)
+      handleIdentifier(enum, typedefDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.FunctionTypeAlias)
+      endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
+    endFunctionTypeAlias(typedef, null, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'enum'., null, {token: enum}], enum, enum)
+      handleIdentifier(enum, typedefDeclaration)
+      handleNoTypeVariables(=)
+      beginFunctionType(void)
+        handleNoTypeVariables(()
+        handleVoidKeyword(void)
+        beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+        endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
+      endFunctionType(Function, null)
+    endFunctionTypeAlias(typedef, =, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleVoidKeyword(void)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'export'., null, {token: export}], export, export)
+      handleIdentifier(export, typedefDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.FunctionTypeAlias)
+      endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
+    endFunctionTypeAlias(typedef, null, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'export'., null, {token: export}], export, export)
+      handleIdentifier(export, typedefDeclaration)
+      handleNoTypeVariables(=)
+      beginFunctionType(void)
+        handleNoTypeVariables(()
+        handleVoidKeyword(void)
+        beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+        endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
+      endFunctionType(Function, null)
+    endFunctionTypeAlias(typedef, =, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleVoidKeyword(void)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'extends'., null, {token: extends}], extends, extends)
+      handleIdentifier(extends, typedefDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.FunctionTypeAlias)
+      endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
+    endFunctionTypeAlias(typedef, null, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'extends'., null, {token: extends}], extends, extends)
+      handleIdentifier(extends, typedefDeclaration)
+      handleNoTypeVariables(=)
+      beginFunctionType(void)
+        handleNoTypeVariables(()
+        handleVoidKeyword(void)
+        beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+        endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
+      endFunctionType(Function, null)
+    endFunctionTypeAlias(typedef, =, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleVoidKeyword(void)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'extension'., null, {token: extension}], extension, extension)
+      handleIdentifier(extension, typedefDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.FunctionTypeAlias)
+      endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
+    endFunctionTypeAlias(typedef, null, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'extension'., null, {token: extension}], extension, extension)
+      handleIdentifier(extension, typedefDeclaration)
+      handleNoTypeVariables(=)
+      beginFunctionType(void)
+        handleNoTypeVariables(()
+        handleVoidKeyword(void)
+        beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+        endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
+      endFunctionType(Function, null)
+    endFunctionTypeAlias(typedef, =, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleVoidKeyword(void)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'external'., null, {token: external}], external, external)
+      handleIdentifier(external, typedefDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.FunctionTypeAlias)
+      endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
+    endFunctionTypeAlias(typedef, null, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'external'., null, {token: external}], external, external)
+      handleIdentifier(external, typedefDeclaration)
+      handleNoTypeVariables(=)
+      beginFunctionType(void)
+        handleNoTypeVariables(()
+        handleVoidKeyword(void)
+        beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+        endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
+      endFunctionType(Function, null)
+    endFunctionTypeAlias(typedef, =, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleVoidKeyword(void)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'factory'., null, {token: factory}], factory, factory)
+      handleIdentifier(factory, typedefDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.FunctionTypeAlias)
+      endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
+    endFunctionTypeAlias(typedef, null, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'factory'., null, {token: factory}], factory, factory)
+      handleIdentifier(factory, typedefDeclaration)
+      handleNoTypeVariables(=)
+      beginFunctionType(void)
+        handleNoTypeVariables(()
+        handleVoidKeyword(void)
+        beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+        endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
+      endFunctionType(Function, null)
+    endFunctionTypeAlias(typedef, =, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleVoidKeyword(void)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'false'., null, {token: false}], false, false)
+      handleIdentifier(false, typedefDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.FunctionTypeAlias)
+      endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
+    endFunctionTypeAlias(typedef, null, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'false'., null, {token: false}], false, false)
+      handleIdentifier(false, typedefDeclaration)
+      handleNoTypeVariables(=)
+      beginFunctionType(void)
+        handleNoTypeVariables(()
+        handleVoidKeyword(void)
+        beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+        endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
+      endFunctionType(Function, null)
+    endFunctionTypeAlias(typedef, =, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleVoidKeyword(void)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'final'., null, {token: final}], final, final)
+      handleIdentifier(final, typedefDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.FunctionTypeAlias)
+      endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
+    endFunctionTypeAlias(typedef, null, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'final'., null, {token: final}], final, final)
+      handleIdentifier(final, typedefDeclaration)
+      handleNoTypeVariables(=)
+      beginFunctionType(void)
+        handleNoTypeVariables(()
+        handleVoidKeyword(void)
+        beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+        endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
+      endFunctionType(Function, null)
+    endFunctionTypeAlias(typedef, =, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleVoidKeyword(void)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'finally'., null, {token: finally}], finally, finally)
+      handleIdentifier(finally, typedefDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.FunctionTypeAlias)
+      endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
+    endFunctionTypeAlias(typedef, null, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'finally'., null, {token: finally}], finally, finally)
+      handleIdentifier(finally, typedefDeclaration)
+      handleNoTypeVariables(=)
+      beginFunctionType(void)
+        handleNoTypeVariables(()
+        handleVoidKeyword(void)
+        beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+        endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
+      endFunctionType(Function, null)
+    endFunctionTypeAlias(typedef, =, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleVoidKeyword(void)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'for'., null, {token: for}], for, for)
+      handleIdentifier(for, typedefDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.FunctionTypeAlias)
+      endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
+    endFunctionTypeAlias(typedef, null, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'for'., null, {token: for}], for, for)
+      handleIdentifier(for, typedefDeclaration)
+      handleNoTypeVariables(=)
+      beginFunctionType(void)
+        handleNoTypeVariables(()
+        handleVoidKeyword(void)
+        beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+        endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
+      endFunctionType(Function, null)
+    endFunctionTypeAlias(typedef, =, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleVoidKeyword(void)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'Function'., null, {token: Function}], Function, Function)
+      handleIdentifier(Function, typedefDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.FunctionTypeAlias)
+      endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
+    endFunctionTypeAlias(typedef, null, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'Function'., null, {token: Function}], Function, Function)
+      handleIdentifier(Function, typedefDeclaration)
+      handleNoTypeVariables(=)
+      beginFunctionType(void)
+        handleNoTypeVariables(()
+        handleVoidKeyword(void)
+        beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+        endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
+      endFunctionType(Function, null)
+    endFunctionTypeAlias(typedef, =, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleVoidKeyword(void)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'get'., null, {token: get}], get, get)
+      handleIdentifier(get, typedefDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.FunctionTypeAlias)
+      endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
+    endFunctionTypeAlias(typedef, null, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'get'., null, {token: get}], get, get)
+      handleIdentifier(get, typedefDeclaration)
+      handleNoTypeVariables(=)
+      beginFunctionType(void)
+        handleNoTypeVariables(()
+        handleVoidKeyword(void)
+        beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+        endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
+      endFunctionType(Function, null)
+    endFunctionTypeAlias(typedef, =, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleVoidKeyword(void)
+      handleIdentifier(hide, typedefDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.FunctionTypeAlias)
+      endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
+    endFunctionTypeAlias(typedef, null, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleIdentifier(hide, typedefDeclaration)
+      handleNoTypeVariables(=)
+      beginFunctionType(void)
+        handleNoTypeVariables(()
+        handleVoidKeyword(void)
+        beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+        endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
+      endFunctionType(Function, null)
+    endFunctionTypeAlias(typedef, =, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleVoidKeyword(void)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'if'., null, {token: if}], if, if)
+      handleIdentifier(if, typedefDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.FunctionTypeAlias)
+      endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
+    endFunctionTypeAlias(typedef, null, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'if'., null, {token: if}], if, if)
+      handleIdentifier(if, typedefDeclaration)
+      handleNoTypeVariables(=)
+      beginFunctionType(void)
+        handleNoTypeVariables(()
+        handleVoidKeyword(void)
+        beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+        endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
+      endFunctionType(Function, null)
+    endFunctionTypeAlias(typedef, =, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleVoidKeyword(void)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'implements'., null, {token: implements}], implements, implements)
+      handleIdentifier(implements, typedefDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.FunctionTypeAlias)
+      endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
+    endFunctionTypeAlias(typedef, null, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'implements'., null, {token: implements}], implements, implements)
+      handleIdentifier(implements, typedefDeclaration)
+      handleNoTypeVariables(=)
+      beginFunctionType(void)
+        handleNoTypeVariables(()
+        handleVoidKeyword(void)
+        beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+        endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
+      endFunctionType(Function, null)
+    endFunctionTypeAlias(typedef, =, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleVoidKeyword(void)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'import'., null, {token: import}], import, import)
+      handleIdentifier(import, typedefDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.FunctionTypeAlias)
+      endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
+    endFunctionTypeAlias(typedef, null, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'import'., null, {token: import}], import, import)
+      handleIdentifier(import, typedefDeclaration)
+      handleNoTypeVariables(=)
+      beginFunctionType(void)
+        handleNoTypeVariables(()
+        handleVoidKeyword(void)
+        beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+        endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
+      endFunctionType(Function, null)
+    endFunctionTypeAlias(typedef, =, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleVoidKeyword(void)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'in'., null, {token: in}], in, in)
+      handleIdentifier(in, typedefDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.FunctionTypeAlias)
+      endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
+    endFunctionTypeAlias(typedef, null, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'in'., null, {token: in}], in, in)
+      handleIdentifier(in, typedefDeclaration)
+      handleNoTypeVariables(=)
+      beginFunctionType(void)
+        handleNoTypeVariables(()
+        handleVoidKeyword(void)
+        beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+        endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
+      endFunctionType(Function, null)
+    endFunctionTypeAlias(typedef, =, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleVoidKeyword(void)
+      handleIdentifier(inout, typedefDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.FunctionTypeAlias)
+      endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
+    endFunctionTypeAlias(typedef, null, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleIdentifier(inout, typedefDeclaration)
+      handleNoTypeVariables(=)
+      beginFunctionType(void)
+        handleNoTypeVariables(()
+        handleVoidKeyword(void)
+        beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+        endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
+      endFunctionType(Function, null)
+    endFunctionTypeAlias(typedef, =, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleVoidKeyword(void)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'interface'., null, {token: interface}], interface, interface)
+      handleIdentifier(interface, typedefDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.FunctionTypeAlias)
+      endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
+    endFunctionTypeAlias(typedef, null, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'interface'., null, {token: interface}], interface, interface)
+      handleIdentifier(interface, typedefDeclaration)
+      handleNoTypeVariables(=)
+      beginFunctionType(void)
+        handleNoTypeVariables(()
+        handleVoidKeyword(void)
+        beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+        endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
+      endFunctionType(Function, null)
+    endFunctionTypeAlias(typedef, =, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleVoidKeyword(void)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'is'., null, {token: is}], is, is)
+      handleIdentifier(is, typedefDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.FunctionTypeAlias)
+      endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
+    endFunctionTypeAlias(typedef, null, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'is'., null, {token: is}], is, is)
+      handleIdentifier(is, typedefDeclaration)
+      handleNoTypeVariables(=)
+      beginFunctionType(void)
+        handleNoTypeVariables(()
+        handleVoidKeyword(void)
+        beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+        endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
+      endFunctionType(Function, null)
+    endFunctionTypeAlias(typedef, =, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleVoidKeyword(void)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'late'., null, {token: late}], late, late)
+      handleIdentifier(late, typedefDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.FunctionTypeAlias)
+      endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
+    endFunctionTypeAlias(typedef, null, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'late'., null, {token: late}], late, late)
+      handleIdentifier(late, typedefDeclaration)
+      handleNoTypeVariables(=)
+      beginFunctionType(void)
+        handleNoTypeVariables(()
+        handleVoidKeyword(void)
+        beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+        endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
+      endFunctionType(Function, null)
+    endFunctionTypeAlias(typedef, =, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleVoidKeyword(void)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'library'., null, {token: library}], library, library)
+      handleIdentifier(library, typedefDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.FunctionTypeAlias)
+      endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
+    endFunctionTypeAlias(typedef, null, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'library'., null, {token: library}], library, library)
+      handleIdentifier(library, typedefDeclaration)
+      handleNoTypeVariables(=)
+      beginFunctionType(void)
+        handleNoTypeVariables(()
+        handleVoidKeyword(void)
+        beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+        endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
+      endFunctionType(Function, null)
+    endFunctionTypeAlias(typedef, =, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleVoidKeyword(void)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'mixin'., null, {token: mixin}], mixin, mixin)
+      handleIdentifier(mixin, typedefDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.FunctionTypeAlias)
+      endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
+    endFunctionTypeAlias(typedef, null, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'mixin'., null, {token: mixin}], mixin, mixin)
+      handleIdentifier(mixin, typedefDeclaration)
+      handleNoTypeVariables(=)
+      beginFunctionType(void)
+        handleNoTypeVariables(()
+        handleVoidKeyword(void)
+        beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+        endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
+      endFunctionType(Function, null)
+    endFunctionTypeAlias(typedef, =, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleVoidKeyword(void)
+      handleIdentifier(native, typedefDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.FunctionTypeAlias)
+      endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
+    endFunctionTypeAlias(typedef, null, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleIdentifier(native, typedefDeclaration)
+      handleNoTypeVariables(=)
+      beginFunctionType(void)
+        handleNoTypeVariables(()
+        handleVoidKeyword(void)
+        beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+        endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
+      endFunctionType(Function, null)
+    endFunctionTypeAlias(typedef, =, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleVoidKeyword(void)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'new'., null, {token: new}], new, new)
+      handleIdentifier(new, typedefDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.FunctionTypeAlias)
+      endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
+    endFunctionTypeAlias(typedef, null, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'new'., null, {token: new}], new, new)
+      handleIdentifier(new, typedefDeclaration)
+      handleNoTypeVariables(=)
+      beginFunctionType(void)
+        handleNoTypeVariables(()
+        handleVoidKeyword(void)
+        beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+        endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
+      endFunctionType(Function, null)
+    endFunctionTypeAlias(typedef, =, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleVoidKeyword(void)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'null'., null, {token: null}], null, null)
+      handleIdentifier(null, typedefDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.FunctionTypeAlias)
+      endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
+    endFunctionTypeAlias(typedef, null, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'null'., null, {token: null}], null, null)
+      handleIdentifier(null, typedefDeclaration)
+      handleNoTypeVariables(=)
+      beginFunctionType(void)
+        handleNoTypeVariables(()
+        handleVoidKeyword(void)
+        beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+        endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
+      endFunctionType(Function, null)
+    endFunctionTypeAlias(typedef, =, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleVoidKeyword(void)
+      handleIdentifier(of, typedefDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.FunctionTypeAlias)
+      endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
+    endFunctionTypeAlias(typedef, null, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleIdentifier(of, typedefDeclaration)
+      handleNoTypeVariables(=)
+      beginFunctionType(void)
+        handleNoTypeVariables(()
+        handleVoidKeyword(void)
+        beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+        endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
+      endFunctionType(Function, null)
+    endFunctionTypeAlias(typedef, =, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleVoidKeyword(void)
+      handleIdentifier(on, typedefDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.FunctionTypeAlias)
+      endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
+    endFunctionTypeAlias(typedef, null, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleIdentifier(on, typedefDeclaration)
+      handleNoTypeVariables(=)
+      beginFunctionType(void)
+        handleNoTypeVariables(()
+        handleVoidKeyword(void)
+        beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+        endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
+      endFunctionType(Function, null)
+    endFunctionTypeAlias(typedef, =, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleVoidKeyword(void)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'operator'., null, {token: operator}], operator, operator)
+      handleIdentifier(operator, typedefDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.FunctionTypeAlias)
+      endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
+    endFunctionTypeAlias(typedef, null, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'operator'., null, {token: operator}], operator, operator)
+      handleIdentifier(operator, typedefDeclaration)
+      handleNoTypeVariables(=)
+      beginFunctionType(void)
+        handleNoTypeVariables(()
+        handleVoidKeyword(void)
+        beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+        endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
+      endFunctionType(Function, null)
+    endFunctionTypeAlias(typedef, =, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleVoidKeyword(void)
+      handleIdentifier(out, typedefDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.FunctionTypeAlias)
+      endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
+    endFunctionTypeAlias(typedef, null, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleIdentifier(out, typedefDeclaration)
+      handleNoTypeVariables(=)
+      beginFunctionType(void)
+        handleNoTypeVariables(()
+        handleVoidKeyword(void)
+        beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+        endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
+      endFunctionType(Function, null)
+    endFunctionTypeAlias(typedef, =, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleVoidKeyword(void)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'part'., null, {token: part}], part, part)
+      handleIdentifier(part, typedefDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.FunctionTypeAlias)
+      endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
+    endFunctionTypeAlias(typedef, null, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'part'., null, {token: part}], part, part)
+      handleIdentifier(part, typedefDeclaration)
+      handleNoTypeVariables(=)
+      beginFunctionType(void)
+        handleNoTypeVariables(()
+        handleVoidKeyword(void)
+        beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+        endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
+      endFunctionType(Function, null)
+    endFunctionTypeAlias(typedef, =, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleVoidKeyword(void)
+      handleIdentifier(patch, typedefDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.FunctionTypeAlias)
+      endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
+    endFunctionTypeAlias(typedef, null, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleIdentifier(patch, typedefDeclaration)
+      handleNoTypeVariables(=)
+      beginFunctionType(void)
+        handleNoTypeVariables(()
+        handleVoidKeyword(void)
+        beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+        endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
+      endFunctionType(Function, null)
+    endFunctionTypeAlias(typedef, =, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleVoidKeyword(void)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'required'., null, {token: required}], required, required)
+      handleIdentifier(required, typedefDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.FunctionTypeAlias)
+      endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
+    endFunctionTypeAlias(typedef, null, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'required'., null, {token: required}], required, required)
+      handleIdentifier(required, typedefDeclaration)
+      handleNoTypeVariables(=)
+      beginFunctionType(void)
+        handleNoTypeVariables(()
+        handleVoidKeyword(void)
+        beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+        endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
+      endFunctionType(Function, null)
+    endFunctionTypeAlias(typedef, =, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleVoidKeyword(void)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'rethrow'., null, {token: rethrow}], rethrow, rethrow)
+      handleIdentifier(rethrow, typedefDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.FunctionTypeAlias)
+      endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
+    endFunctionTypeAlias(typedef, null, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'rethrow'., null, {token: rethrow}], rethrow, rethrow)
+      handleIdentifier(rethrow, typedefDeclaration)
+      handleNoTypeVariables(=)
+      beginFunctionType(void)
+        handleNoTypeVariables(()
+        handleVoidKeyword(void)
+        beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+        endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
+      endFunctionType(Function, null)
+    endFunctionTypeAlias(typedef, =, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleVoidKeyword(void)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'return'., null, {token: return}], return, return)
+      handleIdentifier(return, typedefDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.FunctionTypeAlias)
+      endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
+    endFunctionTypeAlias(typedef, null, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'return'., null, {token: return}], return, return)
+      handleIdentifier(return, typedefDeclaration)
+      handleNoTypeVariables(=)
+      beginFunctionType(void)
+        handleNoTypeVariables(()
+        handleVoidKeyword(void)
+        beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+        endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
+      endFunctionType(Function, null)
+    endFunctionTypeAlias(typedef, =, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleVoidKeyword(void)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'set'., null, {token: set}], set, set)
+      handleIdentifier(set, typedefDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.FunctionTypeAlias)
+      endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
+    endFunctionTypeAlias(typedef, null, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'set'., null, {token: set}], set, set)
+      handleIdentifier(set, typedefDeclaration)
+      handleNoTypeVariables(=)
+      beginFunctionType(void)
+        handleNoTypeVariables(()
+        handleVoidKeyword(void)
+        beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+        endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
+      endFunctionType(Function, null)
+    endFunctionTypeAlias(typedef, =, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleVoidKeyword(void)
+      handleIdentifier(show, typedefDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.FunctionTypeAlias)
+      endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
+    endFunctionTypeAlias(typedef, null, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleIdentifier(show, typedefDeclaration)
+      handleNoTypeVariables(=)
+      beginFunctionType(void)
+        handleNoTypeVariables(()
+        handleVoidKeyword(void)
+        beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+        endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
+      endFunctionType(Function, null)
+    endFunctionTypeAlias(typedef, =, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleVoidKeyword(void)
+      handleIdentifier(source, typedefDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.FunctionTypeAlias)
+      endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
+    endFunctionTypeAlias(typedef, null, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleIdentifier(source, typedefDeclaration)
+      handleNoTypeVariables(=)
+      beginFunctionType(void)
+        handleNoTypeVariables(()
+        handleVoidKeyword(void)
+        beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+        endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
+      endFunctionType(Function, null)
+    endFunctionTypeAlias(typedef, =, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleVoidKeyword(void)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'static'., null, {token: static}], static, static)
+      handleIdentifier(static, typedefDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.FunctionTypeAlias)
+      endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
+    endFunctionTypeAlias(typedef, null, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'static'., null, {token: static}], static, static)
+      handleIdentifier(static, typedefDeclaration)
+      handleNoTypeVariables(=)
+      beginFunctionType(void)
+        handleNoTypeVariables(()
+        handleVoidKeyword(void)
+        beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+        endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
+      endFunctionType(Function, null)
+    endFunctionTypeAlias(typedef, =, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleVoidKeyword(void)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'super'., null, {token: super}], super, super)
+      handleIdentifier(super, typedefDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.FunctionTypeAlias)
+      endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
+    endFunctionTypeAlias(typedef, null, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'super'., null, {token: super}], super, super)
+      handleIdentifier(super, typedefDeclaration)
+      handleNoTypeVariables(=)
+      beginFunctionType(void)
+        handleNoTypeVariables(()
+        handleVoidKeyword(void)
+        beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+        endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
+      endFunctionType(Function, null)
+    endFunctionTypeAlias(typedef, =, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleVoidKeyword(void)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'switch'., null, {token: switch}], switch, switch)
+      handleIdentifier(switch, typedefDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.FunctionTypeAlias)
+      endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
+    endFunctionTypeAlias(typedef, null, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'switch'., null, {token: switch}], switch, switch)
+      handleIdentifier(switch, typedefDeclaration)
+      handleNoTypeVariables(=)
+      beginFunctionType(void)
+        handleNoTypeVariables(()
+        handleVoidKeyword(void)
+        beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+        endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
+      endFunctionType(Function, null)
+    endFunctionTypeAlias(typedef, =, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleVoidKeyword(void)
+      handleIdentifier(sync, typedefDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.FunctionTypeAlias)
+      endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
+    endFunctionTypeAlias(typedef, null, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleIdentifier(sync, typedefDeclaration)
+      handleNoTypeVariables(=)
+      beginFunctionType(void)
+        handleNoTypeVariables(()
+        handleVoidKeyword(void)
+        beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+        endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
+      endFunctionType(Function, null)
+    endFunctionTypeAlias(typedef, =, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleVoidKeyword(void)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'this'., null, {token: this}], this, this)
+      handleIdentifier(this, typedefDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.FunctionTypeAlias)
+      endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
+    endFunctionTypeAlias(typedef, null, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'this'., null, {token: this}], this, this)
+      handleIdentifier(this, typedefDeclaration)
+      handleNoTypeVariables(=)
+      beginFunctionType(void)
+        handleNoTypeVariables(()
+        handleVoidKeyword(void)
+        beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+        endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
+      endFunctionType(Function, null)
+    endFunctionTypeAlias(typedef, =, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleVoidKeyword(void)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'throw'., null, {token: throw}], throw, throw)
+      handleIdentifier(throw, typedefDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.FunctionTypeAlias)
+      endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
+    endFunctionTypeAlias(typedef, null, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'throw'., null, {token: throw}], throw, throw)
+      handleIdentifier(throw, typedefDeclaration)
+      handleNoTypeVariables(=)
+      beginFunctionType(void)
+        handleNoTypeVariables(()
+        handleVoidKeyword(void)
+        beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+        endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
+      endFunctionType(Function, null)
+    endFunctionTypeAlias(typedef, =, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleVoidKeyword(void)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'true'., null, {token: true}], true, true)
+      handleIdentifier(true, typedefDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.FunctionTypeAlias)
+      endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
+    endFunctionTypeAlias(typedef, null, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'true'., null, {token: true}], true, true)
+      handleIdentifier(true, typedefDeclaration)
+      handleNoTypeVariables(=)
+      beginFunctionType(void)
+        handleNoTypeVariables(()
+        handleVoidKeyword(void)
+        beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+        endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
+      endFunctionType(Function, null)
+    endFunctionTypeAlias(typedef, =, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleVoidKeyword(void)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'try'., null, {token: try}], try, try)
+      handleIdentifier(try, typedefDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.FunctionTypeAlias)
+      endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
+    endFunctionTypeAlias(typedef, null, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'try'., null, {token: try}], try, try)
+      handleIdentifier(try, typedefDeclaration)
+      handleNoTypeVariables(=)
+      beginFunctionType(void)
+        handleNoTypeVariables(()
+        handleVoidKeyword(void)
+        beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+        endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
+      endFunctionType(Function, null)
+    endFunctionTypeAlias(typedef, =, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleVoidKeyword(void)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'typedef'., null, {token: typedef}], typedef, typedef)
+      handleIdentifier(typedef, typedefDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.FunctionTypeAlias)
+      endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
+    endFunctionTypeAlias(typedef, null, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'typedef'., null, {token: typedef}], typedef, typedef)
+      handleIdentifier(typedef, typedefDeclaration)
+      handleNoTypeVariables(=)
+      beginFunctionType(void)
+        handleNoTypeVariables(()
+        handleVoidKeyword(void)
+        beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+        endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
+      endFunctionType(Function, null)
+    endFunctionTypeAlias(typedef, =, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleVoidKeyword(void)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'var'., null, {token: var}], var, var)
+      handleIdentifier(var, typedefDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.FunctionTypeAlias)
+      endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
+    endFunctionTypeAlias(typedef, null, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'var'., null, {token: var}], var, var)
+      handleIdentifier(var, typedefDeclaration)
+      handleNoTypeVariables(=)
+      beginFunctionType(void)
+        handleNoTypeVariables(()
+        handleVoidKeyword(void)
+        beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+        endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
+      endFunctionType(Function, null)
+    endFunctionTypeAlias(typedef, =, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleVoidKeyword(void)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'void'., null, {token: void}], void, void)
+      handleIdentifier(void, typedefDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.FunctionTypeAlias)
+      endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
+    endFunctionTypeAlias(typedef, null, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleVoidKeyword(void)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '='., null, {token: =}], =, =)
+      handleIdentifier(, typedefDeclaration)
+      handleNoTypeVariables(=)
+      handleRecoverableError(MissingTypedefParameters, =, =)
+      beginFormalParameters((, MemberKind.FunctionTypeAlias)
+      endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
+      handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], =, =)
+    endFunctionTypeAlias(typedef, null, ;)
+  endTopLevelDeclaration(=)
+  beginMetadataStar(=)
+  endMetadataStar(0)
+  beginTopLevelMember(=)
+    handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got '='., null, {token: =}], =, =)
+    handleInvalidTopLevelDeclaration(=)
+  endTopLevelDeclaration(void)
+  beginMetadataStar(void)
+  endMetadataStar(0)
+  beginTopLevelMember(void)
+    beginTopLevelMethod(=, null)
+      handleVoidKeyword(void)
+      handleIdentifier(Function, topLevelFunctionDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.TopLevelMethod)
+      endFormalParameters(0, (, ), MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      handleRecoverableError(ExpectedBody, ;, ;)
+      handleEmptyFunctionBody(;)
+    endTopLevelMethod(void, null, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleVoidKeyword(void)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'while'., null, {token: while}], while, while)
+      handleIdentifier(while, typedefDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.FunctionTypeAlias)
+      endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
+    endFunctionTypeAlias(typedef, null, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'while'., null, {token: while}], while, while)
+      handleIdentifier(while, typedefDeclaration)
+      handleNoTypeVariables(=)
+      beginFunctionType(void)
+        handleNoTypeVariables(()
+        handleVoidKeyword(void)
+        beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+        endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
+      endFunctionType(Function, null)
+    endFunctionTypeAlias(typedef, =, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleVoidKeyword(void)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'with'., null, {token: with}], with, with)
+      handleIdentifier(with, typedefDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.FunctionTypeAlias)
+      endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
+    endFunctionTypeAlias(typedef, null, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'with'., null, {token: with}], with, with)
+      handleIdentifier(with, typedefDeclaration)
+      handleNoTypeVariables(=)
+      beginFunctionType(void)
+        handleNoTypeVariables(()
+        handleVoidKeyword(void)
+        beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+        endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
+      endFunctionType(Function, null)
+    endFunctionTypeAlias(typedef, =, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleVoidKeyword(void)
+      handleIdentifier(yield, typedefDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.FunctionTypeAlias)
+      endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
+    endFunctionTypeAlias(typedef, null, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleIdentifier(yield, typedefDeclaration)
+      handleNoTypeVariables(=)
+      beginFunctionType(void)
+        handleNoTypeVariables(()
+        handleVoidKeyword(void)
+        beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+        endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
+      endFunctionType(Function, null)
+    endFunctionTypeAlias(typedef, =, ;)
+  endTopLevelDeclaration()
 endCompilationUnit(140, )
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 80fc687..6802b71 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
@@ -9,6 +9,7 @@
     parseTopLevelKeywordDeclaration(, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
@@ -30,6 +31,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(abstract, Instance of 'Template<(Token) => Message>')
@@ -54,6 +56,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
@@ -75,6 +78,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(as, Instance of 'Template<(Token) => Message>')
@@ -99,6 +103,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
@@ -120,6 +125,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(assert, Instance of 'Template<(Token) => Message>')
@@ -144,6 +150,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
@@ -163,6 +170,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           listener: handleIdentifier(async, typedefDeclaration)
@@ -185,6 +193,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
@@ -204,6 +213,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           listener: handleIdentifier(await, typedefDeclaration)
@@ -226,6 +236,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
@@ -247,6 +258,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(break, Instance of 'Template<(Token) => Message>')
@@ -271,6 +283,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
@@ -292,6 +305,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(case, Instance of 'Template<(Token) => Message>')
@@ -316,6 +330,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
@@ -337,6 +352,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(catch, Instance of 'Template<(Token) => Message>')
@@ -361,6 +377,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
@@ -382,6 +399,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(class, Instance of 'Template<(Token) => Message>')
@@ -406,6 +424,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
@@ -427,6 +446,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(const, Instance of 'Template<(Token) => Message>')
@@ -451,6 +471,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
@@ -472,6 +493,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(continue, Instance of 'Template<(Token) => Message>')
@@ -496,6 +518,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
@@ -517,6 +540,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(covariant, Instance of 'Template<(Token) => Message>')
@@ -541,6 +565,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
@@ -562,6 +587,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(default, Instance of 'Template<(Token) => Message>')
@@ -586,6 +612,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
@@ -607,6 +634,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(deferred, Instance of 'Template<(Token) => Message>')
@@ -631,6 +659,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
@@ -652,6 +681,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(do, Instance of 'Template<(Token) => Message>')
@@ -676,6 +706,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
@@ -697,6 +728,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(dynamic, Instance of 'Template<(Token) => Message>')
@@ -721,6 +753,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
@@ -742,6 +775,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(else, Instance of 'Template<(Token) => Message>')
@@ -766,6 +800,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
@@ -787,6 +822,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(enum, Instance of 'Template<(Token) => Message>')
@@ -811,6 +847,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
@@ -832,6 +869,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(export, Instance of 'Template<(Token) => Message>')
@@ -856,6 +894,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
@@ -877,6 +916,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(extends, Instance of 'Template<(Token) => Message>')
@@ -901,6 +941,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
@@ -922,6 +963,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(extension, Instance of 'Template<(Token) => Message>')
@@ -946,6 +988,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
@@ -967,6 +1010,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(external, Instance of 'Template<(Token) => Message>')
@@ -991,6 +1035,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
@@ -1012,6 +1057,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(factory, Instance of 'Template<(Token) => Message>')
@@ -1036,6 +1082,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
@@ -1057,6 +1104,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(false, Instance of 'Template<(Token) => Message>')
@@ -1081,6 +1129,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
@@ -1102,6 +1151,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(final, Instance of 'Template<(Token) => Message>')
@@ -1126,6 +1176,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
@@ -1147,6 +1198,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(finally, Instance of 'Template<(Token) => Message>')
@@ -1171,6 +1223,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
@@ -1192,6 +1245,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(for, Instance of 'Template<(Token) => Message>')
@@ -1216,6 +1270,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
@@ -1237,6 +1292,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(Function, Instance of 'Template<(Token) => Message>')
@@ -1261,6 +1317,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
@@ -1282,6 +1339,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(get, Instance of 'Template<(Token) => Message>')
@@ -1306,6 +1364,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
@@ -1325,6 +1384,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           listener: handleIdentifier(hide, typedefDeclaration)
@@ -1347,6 +1407,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
@@ -1368,6 +1429,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(if, Instance of 'Template<(Token) => Message>')
@@ -1392,6 +1454,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
@@ -1413,6 +1476,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(implements, Instance of 'Template<(Token) => Message>')
@@ -1437,6 +1501,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
@@ -1458,6 +1523,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(import, Instance of 'Template<(Token) => Message>')
@@ -1482,6 +1548,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
@@ -1503,6 +1570,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(in, Instance of 'Template<(Token) => Message>')
@@ -1527,6 +1595,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
@@ -1546,6 +1615,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           listener: handleIdentifier(inout, typedefDeclaration)
@@ -1568,6 +1638,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
@@ -1589,6 +1660,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(interface, Instance of 'Template<(Token) => Message>')
@@ -1613,6 +1685,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
@@ -1634,6 +1707,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(is, Instance of 'Template<(Token) => Message>')
@@ -1658,6 +1732,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
@@ -1679,6 +1754,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(late, Instance of 'Template<(Token) => Message>')
@@ -1703,6 +1779,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
@@ -1724,6 +1801,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(library, Instance of 'Template<(Token) => Message>')
@@ -1748,6 +1826,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
@@ -1769,6 +1848,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(mixin, Instance of 'Template<(Token) => Message>')
@@ -1793,6 +1873,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
@@ -1812,6 +1893,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           listener: handleIdentifier(native, typedefDeclaration)
@@ -1834,6 +1916,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
@@ -1855,6 +1938,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(new, Instance of 'Template<(Token) => Message>')
@@ -1879,6 +1963,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
@@ -1900,6 +1985,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(null, Instance of 'Template<(Token) => Message>')
@@ -1924,6 +2010,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
@@ -1943,6 +2030,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           listener: handleIdentifier(of, typedefDeclaration)
@@ -1965,6 +2053,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
@@ -1984,6 +2073,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           listener: handleIdentifier(on, typedefDeclaration)
@@ -2006,6 +2096,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
@@ -2027,6 +2118,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(operator, Instance of 'Template<(Token) => Message>')
@@ -2051,6 +2143,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
@@ -2070,6 +2163,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           listener: handleIdentifier(out, typedefDeclaration)
@@ -2092,6 +2186,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
@@ -2113,6 +2208,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(part, Instance of 'Template<(Token) => Message>')
@@ -2137,6 +2233,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
@@ -2156,6 +2253,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           listener: handleIdentifier(patch, typedefDeclaration)
@@ -2178,6 +2276,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
@@ -2199,6 +2298,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(required, Instance of 'Template<(Token) => Message>')
@@ -2223,6 +2323,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
@@ -2244,6 +2345,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(rethrow, Instance of 'Template<(Token) => Message>')
@@ -2268,6 +2370,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
@@ -2289,6 +2392,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(return, Instance of 'Template<(Token) => Message>')
@@ -2313,6 +2417,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
@@ -2334,6 +2439,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(set, Instance of 'Template<(Token) => Message>')
@@ -2358,6 +2464,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
@@ -2377,6 +2484,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           listener: handleIdentifier(show, typedefDeclaration)
@@ -2399,6 +2507,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
@@ -2418,6 +2527,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           listener: handleIdentifier(source, typedefDeclaration)
@@ -2440,6 +2550,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
@@ -2461,6 +2572,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(static, Instance of 'Template<(Token) => Message>')
@@ -2485,6 +2597,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
@@ -2506,6 +2619,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(super, Instance of 'Template<(Token) => Message>')
@@ -2530,6 +2644,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
@@ -2551,6 +2666,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(switch, Instance of 'Template<(Token) => Message>')
@@ -2575,6 +2691,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
@@ -2594,6 +2711,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           listener: handleIdentifier(sync, typedefDeclaration)
@@ -2616,6 +2734,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
@@ -2637,6 +2756,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(this, Instance of 'Template<(Token) => Message>')
@@ -2661,6 +2781,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
@@ -2682,6 +2803,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(throw, Instance of 'Template<(Token) => Message>')
@@ -2706,6 +2828,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
@@ -2727,6 +2850,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(true, Instance of 'Template<(Token) => Message>')
@@ -2751,6 +2875,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
@@ -2772,6 +2897,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(try, Instance of 'Template<(Token) => Message>')
@@ -2796,6 +2922,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
@@ -2817,6 +2944,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(typedef, Instance of 'Template<(Token) => Message>')
@@ -2841,6 +2969,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
@@ -2862,6 +2991,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(var, Instance of 'Template<(Token) => Message>')
@@ -2886,6 +3016,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
@@ -2907,6 +3038,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, false)
@@ -2974,6 +3106,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
@@ -2995,6 +3128,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(while, Instance of 'Template<(Token) => Message>')
@@ -3019,6 +3153,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
@@ -3040,6 +3175,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(with, Instance of 'Template<(Token) => Message>')
@@ -3064,6 +3200,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
@@ -3083,6 +3220,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           listener: handleIdentifier(yield, typedefDeclaration)
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 18cdecd..24b5d80 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,89 +58,91 @@
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          handleIdentifier(int, typeReference)
-          handleNoTypeArguments(with)
-          handleType(int, null)
-          handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'with'., null, {token: with}], with, with)
-          handleIdentifier(with, fieldDeclaration)
-          beginFieldInitializer(=)
+          beginFields(;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(with)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'with'., null, {token: with}], with, with)
+            handleIdentifier(with, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(7)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginMethod(null, null, null, null, get, with)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(get)
+            handleType(int, null)
+            handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'with'., null, {token: with}], with, with)
+            handleIdentifier(with, methodDeclaration)
+            handleNoTypeVariables(=>)
+            handleNoFormalParameters(=>, MemberKind.NonStaticMethod)
+            handleNoInitializers()
+            handleAsyncModifier(null, null)
             handleLiteralInt(7)
-          endFieldInitializer(=, ;)
-        endClassFields(null, null, null, null, null, null, 1, int, ;)
-      endMember()
-      beginMetadataStar(int)
-      endMetadataStar(0)
-      beginMember()
-        beginMethod(null, null, null, null, get, with)
-          handleIdentifier(int, typeReference)
-          handleNoTypeArguments(get)
-          handleType(int, null)
-          handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'with'., null, {token: with}], with, with)
-          handleIdentifier(with, methodDeclaration)
-          handleNoTypeVariables(=>)
-          handleNoFormalParameters(=>, MemberKind.NonStaticMethod)
-          handleNoInitializers()
-          handleAsyncModifier(null, null)
-          handleLiteralInt(7)
-          handleExpressionFunctionBody(=>, ;)
-        endClassMethod(get, int, =>, null, ;)
-      endMember()
-      beginMetadataStar(void)
-      endMetadataStar(0)
-      beginMember()
-        beginMethod(null, null, null, null, set, with)
-          handleVoidKeyword(void)
-          handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'with'., null, {token: with}], with, with)
-          handleIdentifier(with, 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, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
-          endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
-          handleNoInitializers()
-          handleAsyncModifier(null, null)
-          beginBlockFunctionBody({)
-          endBlockFunctionBody(0, {, })
-        endClassMethod(set, void, (, null, })
-      endMember()
-    endClassOrMixinBody(DeclarationKind.Class, 4, {, })
-  endClassDeclaration(class, })
-endTopLevelDeclaration(int)
-beginMetadataStar(int)
-endMetadataStar(0)
-beginTopLevelMember(int)
-  beginTopLevelMethod(}, null)
-    handleIdentifier(int, typeReference)
-    handleNoTypeArguments(with)
-    handleType(int, null)
-    handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'with'., null, {token: with}], with, with)
-    handleIdentifier(with, topLevelFunctionDeclaration)
-    handleNoTypeVariables(()
-    beginFormalParameters((, MemberKind.TopLevelMethod)
-    endFormalParameters(0, (, ), MemberKind.TopLevelMethod)
-    handleAsyncModifier(null, null)
-    handleLiteralInt(7)
-    handleExpressionFunctionBody(=>, ;)
-  endTopLevelMethod(int, null, ;)
-endTopLevelDeclaration(int)
-beginMetadataStar(int)
-endMetadataStar(0)
-beginTopLevelMember(int)
-  handleIdentifier(int, typeReference)
-  handleNoTypeArguments(with)
-  handleType(int, null)
-  handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'with'., null, {token: with}], with, with)
-  handleIdentifier(with, topLevelVariableDeclaration)
-  beginFieldInitializer(=)
-    handleLiteralInt(7)
-  endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, null, 1, int, ;)
-endTopLevelDeclaration()
+            handleExpressionFunctionBody(=>, ;)
+          endClassMethod(get, int, =>, null, ;)
+        endMember()
+        beginMetadataStar(void)
+        endMetadataStar(0)
+        beginMember()
+          beginMethod(null, null, null, null, set, with)
+            handleVoidKeyword(void)
+            handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'with'., null, {token: with}], with, with)
+            handleIdentifier(with, 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, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+            endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+            handleNoInitializers()
+            handleAsyncModifier(null, null)
+            beginBlockFunctionBody({)
+            endBlockFunctionBody(0, {, })
+          endClassMethod(set, void, (, null, })
+        endMember()
+      endClassOrMixinBody(DeclarationKind.Class, 4, {, })
+    endClassDeclaration(class, })
+  endTopLevelDeclaration(int)
+  beginMetadataStar(int)
+  endMetadataStar(0)
+  beginTopLevelMember(int)
+    beginTopLevelMethod(}, null)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(with)
+      handleType(int, null)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'with'., null, {token: with}], with, with)
+      handleIdentifier(with, topLevelFunctionDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.TopLevelMethod)
+      endFormalParameters(0, (, ), MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      handleLiteralInt(7)
+      handleExpressionFunctionBody(=>, ;)
+    endTopLevelMethod(int, null, ;)
+  endTopLevelDeclaration(int)
+  beginMetadataStar(int)
+  endMetadataStar(0)
+  beginTopLevelMember(int)
+    beginFields(;)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(with)
+      handleType(int, null)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'with'., null, {token: with}], with, with)
+      handleIdentifier(with, topLevelVariableDeclaration)
+      beginFieldInitializer(=)
+        handleLiteralInt(7)
+      endFieldInitializer(=, ;)
+    endTopLevelFields(null, null, null, null, null, 1, int, ;)
+  endTopLevelDeclaration()
 endCompilationUnit(3, )
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 5086644..4ff4bb0 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
@@ -79,6 +79,7 @@
               isReservedKeyword(with)
               indicatesMethodOrField(=)
               parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', with, DeclarationKind.Class, C, true)
+                listener: beginFields(;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(with)
                 listener: handleType(int, null)
@@ -238,6 +239,7 @@
       isReservedKeyword(with)
       indicatesMethodOrField(=)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', with, DeclarationKind.TopLevel, null, true)
+        listener: beginFields(;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(with)
         listener: handleType(int, null)
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 efaa895..305c185 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,84 +31,86 @@
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          handleIdentifier(int, typeReference)
-          handleNoTypeArguments(With)
-          handleType(int, null)
-          handleIdentifier(With, fieldDeclaration)
-          beginFieldInitializer(=)
+          beginFields(;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(With)
+            handleType(int, null)
+            handleIdentifier(With, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(7)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginMethod(null, null, null, null, get, With)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(get)
+            handleType(int, null)
+            handleIdentifier(With, methodDeclaration)
+            handleNoTypeVariables(=>)
+            handleNoFormalParameters(=>, MemberKind.NonStaticMethod)
+            handleNoInitializers()
+            handleAsyncModifier(null, null)
             handleLiteralInt(7)
-          endFieldInitializer(=, ;)
-        endClassFields(null, null, null, null, null, null, 1, int, ;)
-      endMember()
-      beginMetadataStar(int)
-      endMetadataStar(0)
-      beginMember()
-        beginMethod(null, null, null, null, get, With)
-          handleIdentifier(int, typeReference)
-          handleNoTypeArguments(get)
-          handleType(int, null)
-          handleIdentifier(With, methodDeclaration)
-          handleNoTypeVariables(=>)
-          handleNoFormalParameters(=>, MemberKind.NonStaticMethod)
-          handleNoInitializers()
-          handleAsyncModifier(null, null)
-          handleLiteralInt(7)
-          handleExpressionFunctionBody(=>, ;)
-        endClassMethod(get, int, =>, null, ;)
-      endMember()
-      beginMetadataStar(void)
-      endMetadataStar(0)
-      beginMember()
-        beginMethod(null, null, null, null, set, With)
-          handleVoidKeyword(void)
-          handleIdentifier(With, 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, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
-          endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
-          handleNoInitializers()
-          handleAsyncModifier(null, null)
-          beginBlockFunctionBody({)
-          endBlockFunctionBody(0, {, })
-        endClassMethod(set, void, (, null, })
-      endMember()
-    endClassOrMixinBody(DeclarationKind.Class, 4, {, })
-  endClassDeclaration(class, })
-endTopLevelDeclaration(int)
-beginMetadataStar(int)
-endMetadataStar(0)
-beginTopLevelMember(int)
-  beginTopLevelMethod(}, null)
-    handleIdentifier(int, typeReference)
-    handleNoTypeArguments(With)
-    handleType(int, null)
-    handleIdentifier(With, topLevelFunctionDeclaration)
-    handleNoTypeVariables(()
-    beginFormalParameters((, MemberKind.TopLevelMethod)
-    endFormalParameters(0, (, ), MemberKind.TopLevelMethod)
-    handleAsyncModifier(null, null)
-    handleLiteralInt(7)
-    handleExpressionFunctionBody(=>, ;)
-  endTopLevelMethod(int, null, ;)
-endTopLevelDeclaration(int)
-beginMetadataStar(int)
-endMetadataStar(0)
-beginTopLevelMember(int)
-  handleIdentifier(int, typeReference)
-  handleNoTypeArguments(With)
-  handleType(int, null)
-  handleIdentifier(With, topLevelVariableDeclaration)
-  beginFieldInitializer(=)
-    handleLiteralInt(7)
-  endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, null, 1, int, ;)
-endTopLevelDeclaration()
+            handleExpressionFunctionBody(=>, ;)
+          endClassMethod(get, int, =>, null, ;)
+        endMember()
+        beginMetadataStar(void)
+        endMetadataStar(0)
+        beginMember()
+          beginMethod(null, null, null, null, set, With)
+            handleVoidKeyword(void)
+            handleIdentifier(With, 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, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+            endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+            handleNoInitializers()
+            handleAsyncModifier(null, null)
+            beginBlockFunctionBody({)
+            endBlockFunctionBody(0, {, })
+          endClassMethod(set, void, (, null, })
+        endMember()
+      endClassOrMixinBody(DeclarationKind.Class, 4, {, })
+    endClassDeclaration(class, })
+  endTopLevelDeclaration(int)
+  beginMetadataStar(int)
+  endMetadataStar(0)
+  beginTopLevelMember(int)
+    beginTopLevelMethod(}, null)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(With)
+      handleType(int, null)
+      handleIdentifier(With, topLevelFunctionDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.TopLevelMethod)
+      endFormalParameters(0, (, ), MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      handleLiteralInt(7)
+      handleExpressionFunctionBody(=>, ;)
+    endTopLevelMethod(int, null, ;)
+  endTopLevelDeclaration(int)
+  beginMetadataStar(int)
+  endMetadataStar(0)
+  beginTopLevelMember(int)
+    beginFields(;)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(With)
+      handleType(int, null)
+      handleIdentifier(With, topLevelVariableDeclaration)
+      beginFieldInitializer(=)
+        handleLiteralInt(7)
+      endFieldInitializer(=, ;)
+    endTopLevelFields(null, null, null, null, null, 1, int, ;)
+  endTopLevelDeclaration()
 endCompilationUnit(3, )
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 cf0e350..d3b26af 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
@@ -73,6 +73,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', With, DeclarationKind.Class, C, false)
+                listener: beginFields(;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(With)
                 listener: handleType(int, null)
@@ -216,6 +217,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', With, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(With)
         listener: handleType(int, null)
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 b8be769..83a76f8 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,41 +39,44 @@
   beginMetadataStar(foo)
   endMetadataStar(0)
   beginTopLevelMember(foo)
-    handleRecoverableError(MissingConstFinalVarOrType, foo, foo)
-    handleNoType(})
-    handleIdentifier(foo, topLevelVariableDeclaration)
-    handleNoFieldInitializer(class)
-    handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], foo, foo)
-  endTopLevelFields(null, null, null, null, null, 1, foo, ;)
-endTopLevelDeclaration(class)
-beginMetadataStar(class)
-endMetadataStar(0)
-beginClassOrNamedMixinApplicationPrelude(class)
-  handleIdentifier(M1, classOrMixinDeclaration)
-  handleNoTypeVariables({)
-  beginClassDeclaration(class, null, M1)
-    handleNoType(M1)
-    handleClassExtends(null, 1)
-    handleClassNoWithClause()
-    handleClassOrMixinImplements(null, 0)
-    handleClassHeader(class, class, null)
-    beginClassOrMixinBody(DeclarationKind.Class, {)
-      beginMetadataStar(foo)
-      endMetadataStar(0)
-      beginMember()
-        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, ;)
-    endMember()
-    beginMetadataStar(class)
-    endMetadataStar(0)
-    beginMember()
-      handleRecoverableError(ClassInClass, class, class)
-      handleInvalidMember(class)
-    endClassOrMixinBody(DeclarationKind.Class, 2, {, })
-  endClassDeclaration(class, })
-endTopLevelDeclaration()
+    beginFields(})
+      handleRecoverableError(MissingConstFinalVarOrType, foo, foo)
+      handleNoType(})
+      handleIdentifier(foo, topLevelVariableDeclaration)
+      handleNoFieldInitializer(class)
+      handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], foo, foo)
+    endTopLevelFields(null, null, null, null, null, 1, foo, ;)
+  endTopLevelDeclaration(class)
+  beginMetadataStar(class)
+  endMetadataStar(0)
+  beginClassOrNamedMixinApplicationPrelude(class)
+    handleIdentifier(M1, classOrMixinDeclaration)
+    handleNoTypeVariables({)
+    beginClassDeclaration(class, null, M1)
+      handleNoType(M1)
+      handleClassExtends(null, 1)
+      handleClassNoWithClause()
+      handleClassOrMixinImplements(null, 0)
+      handleClassHeader(class, class, null)
+      beginClassOrMixinBody(DeclarationKind.Class, {)
+        beginMetadataStar(foo)
+        endMetadataStar(0)
+        beginMember()
+          beginFields({)
+            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, ;)
+        endMember()
+        beginMetadataStar(class)
+        endMetadataStar(0)
+        beginMember()
+          handleRecoverableError(ClassInClass, class, class)
+          handleInvalidMember(class)
+        endMember()
+      endClassOrMixinBody(DeclarationKind.Class, 2, {, })
+    endClassDeclaration(class, })
+  endTopLevelDeclaration()
 endCompilationUnit(3, )
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 d6a21e4..1696c43 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
@@ -39,6 +39,7 @@
       isReservedKeyword(class)
       indicatesMethodOrField(M1)
       parseFields(}, null, null, null, null, null, null, }, Instance of 'NoType', foo, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(})
         reportRecoverableError(foo, MissingConstFinalVarOrType)
           listener: handleRecoverableError(MissingConstFinalVarOrType, foo, foo)
         listener: handleNoType(})
@@ -85,6 +86,7 @@
               isReservedKeyword(class)
               indicatesMethodOrField(M2)
               parseFields({, null, null, null, null, null, null, {, Instance of 'NoType', foo, DeclarationKind.Class, M1, false)
+                listener: beginFields({)
                 reportRecoverableError(foo, MissingConstFinalVarOrType)
                   listener: handleRecoverableError(MissingConstFinalVarOrType, foo, foo)
                 listener: handleNoType({)
@@ -109,6 +111,7 @@
                   reportRecoverableError(class, ClassInClass)
                     listener: handleRecoverableError(ClassInClass, class, class)
                   listener: handleInvalidMember(class)
+                  listener: endMember()
             notEofOrValue(}, })
             listener: endClassOrMixinBody(DeclarationKind.Class, 2, {, })
           listener: endClassDeclaration(class, })
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 5df1db7..7b27d65 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 3b6dbdb..28afeda 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
@@ -29,6 +29,7 @@
     parseTopLevelMemberImpl(/)
       listener: beginTopLevelMember(C)
       parseFields(/, null, null, null, null, null, null, /, Instance of 'SimpleType', o, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(/)
         listener: handleIdentifier(C, typeReference)
         listener: handleNoTypeArguments(o)
         listener: handleType(C, null)
@@ -49,6 +50,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(p)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', y, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(p, typeReference)
         listener: handleNoTypeArguments(y)
         listener: handleType(p, null)
@@ -69,6 +71,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(r)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', i, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(r, typeReference)
         listener: handleNoTypeArguments(i)
         listener: handleType(r, null)
@@ -89,6 +92,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(g)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', h, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(g, typeReference)
         listener: handleNoTypeArguments(h)
         listener: handleType(g, null)
@@ -201,6 +205,7 @@
     parseTopLevelMemberImpl(,)
       listener: beginTopLevelMember(t)
       parseFields(,, null, null, null, null, null, null, ,, Instance of 'SimpleType', h, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(,)
         listener: handleIdentifier(t, typeReference)
         listener: handleNoTypeArguments(h)
         listener: handleType(t, null)
@@ -221,6 +226,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(e)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', D, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(e, typeReference)
         listener: handleNoTypeArguments(D)
         listener: handleType(e, null)
@@ -241,6 +247,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(a)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', r, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(a, typeReference)
         listener: handleNoTypeArguments(r)
         listener: handleType(a, null)
@@ -261,6 +268,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(t)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', p, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(t, typeReference)
         listener: handleNoTypeArguments(p)
         listener: handleType(t, null)
@@ -281,6 +289,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(r)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', o, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(r, typeReference)
         listener: handleNoTypeArguments(o)
         listener: handleType(r, null)
@@ -301,6 +310,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(j)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', e, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(j, typeReference)
         listener: handleNoTypeArguments(e)
         listener: handleType(j, null)
@@ -321,6 +331,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(c)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', t, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(c, typeReference)
         listener: handleNoTypeArguments(t)
         listener: handleType(c, null)
@@ -341,6 +352,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(a)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', u, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(a, typeReference)
         listener: handleNoTypeArguments(u)
         listener: handleType(a, null)
@@ -361,6 +373,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(t)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', h, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(t, typeReference)
         listener: handleNoTypeArguments(h)
         listener: handleType(t, null)
@@ -381,6 +394,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(o)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', r, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(o, typeReference)
         listener: handleNoTypeArguments(r)
         listener: handleType(o, null)
@@ -401,6 +415,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(s)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'PrefixedType', l, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(s, prefixedTypeReference)
         listener: handleIdentifier(P, typeReferenceContinuation)
         listener: handleQualified(.)
@@ -423,6 +438,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(e)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', a, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(e, typeReference)
         listener: handleNoTypeArguments(a)
         listener: handleType(e, null)
@@ -443,6 +459,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(s)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', e, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(s, typeReference)
         listener: handleNoTypeArguments(e)
         listener: handleType(s, null)
@@ -463,6 +480,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(s)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', e, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(s, typeReference)
         listener: handleNoTypeArguments(e)
         listener: handleType(s, null)
@@ -483,6 +501,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(e)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', t, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(e, typeReference)
         listener: handleNoTypeArguments(t)
         listener: handleType(e, null)
@@ -503,6 +522,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(h)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', e, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(h, typeReference)
         listener: handleNoTypeArguments(e)
         listener: handleType(h, null)
@@ -523,6 +543,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(A)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', U, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(A, typeReference)
         listener: handleNoTypeArguments(U)
         listener: handleType(A, null)
@@ -543,6 +564,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(T)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', H, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(T, typeReference)
         listener: handleNoTypeArguments(H)
         listener: handleType(T, null)
@@ -563,6 +585,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(O)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', R, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(O, typeReference)
         listener: handleNoTypeArguments(R)
         listener: handleType(O, null)
@@ -583,6 +606,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(S)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', f, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(S, typeReference)
         listener: handleNoTypeArguments(f)
         listener: handleType(S, null)
@@ -603,6 +627,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(i)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', l, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(i, typeReference)
         listener: handleNoTypeArguments(l)
         listener: handleType(i, null)
@@ -624,6 +649,7 @@
       listener: beginTopLevelMember(e)
       isReservedKeyword(/)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'NoType', e, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         reportRecoverableError(e, MissingConstFinalVarOrType)
           listener: handleRecoverableError(MissingConstFinalVarOrType, e, e)
         listener: handleNoType(;)
@@ -664,6 +690,7 @@
     parseTopLevelMemberImpl(/)
       listener: beginTopLevelMember(f)
       parseFields(/, null, null, null, null, null, null, /, Instance of 'SimpleType', o, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(/)
         listener: handleIdentifier(f, typeReference)
         listener: handleNoTypeArguments(o)
         listener: handleType(f, null)
@@ -684,6 +711,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(r)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', d, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(r, typeReference)
         listener: handleNoTypeArguments(d)
         listener: handleType(r, null)
@@ -704,6 +732,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(e)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', t, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(e, typeReference)
         listener: handleNoTypeArguments(t)
         listener: handleType(e, null)
@@ -724,6 +753,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(a)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', i, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(a, typeReference)
         listener: handleNoTypeArguments(i)
         listener: handleType(a, null)
@@ -790,6 +820,7 @@
     parseTopLevelMemberImpl(.)
       listener: beginTopLevelMember(A)
       parseFields(., null, null, null, null, null, null, ., Instance of 'SimpleType', l, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(.)
         listener: handleIdentifier(A, typeReference)
         listener: handleNoTypeArguments(l)
         listener: handleType(A, null)
@@ -810,6 +841,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(l)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', r, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(l, typeReference)
         listener: handleNoTypeArguments(r)
         listener: handleType(l, null)
@@ -830,6 +862,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(i)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', g, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(i, typeReference)
         listener: handleNoTypeArguments(g)
         listener: handleType(i, null)
@@ -850,6 +883,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(h)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', t, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(h, typeReference)
         listener: handleNoTypeArguments(t)
         listener: handleType(h, null)
@@ -870,6 +904,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(s)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', r, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(s, typeReference)
         listener: handleNoTypeArguments(r)
         listener: handleType(s, null)
@@ -890,6 +925,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(e)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', s, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(e, typeReference)
         listener: handleNoTypeArguments(s)
         listener: handleType(e, null)
@@ -910,6 +946,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(e)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', r, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(e, typeReference)
         listener: handleNoTypeArguments(r)
         listener: handleType(e, null)
@@ -930,6 +967,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(v)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', e, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(v, typeReference)
         listener: handleNoTypeArguments(e)
         listener: handleType(v, null)
@@ -950,6 +988,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(d)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'PrefixedType', s, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(d, prefixedTypeReference)
         listener: handleIdentifier(U, typeReferenceContinuation)
         listener: handleQualified(.)
@@ -972,6 +1011,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(e)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', o, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(e, typeReference)
         listener: handleNoTypeArguments(o)
         listener: handleType(e, null)
@@ -992,6 +1032,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(f)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', t, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(f, typeReference)
         listener: handleNoTypeArguments(t)
         listener: handleType(f, null)
@@ -1012,6 +1053,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(h)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', i, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(h, typeReference)
         listener: handleNoTypeArguments(i)
         listener: handleType(h, null)
@@ -1032,6 +1074,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(s)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', s, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(s, typeReference)
         listener: handleNoTypeArguments(s)
         listener: handleType(s, null)
@@ -1052,6 +1095,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(o)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', u, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(o, typeReference)
         listener: handleNoTypeArguments(u)
         listener: handleType(o, null)
@@ -1072,6 +1116,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(r)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', c, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(r, typeReference)
         listener: handleNoTypeArguments(c)
         listener: handleType(r, null)
@@ -1092,6 +1137,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(e)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', c, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(e, typeReference)
         listener: handleNoTypeArguments(c)
         listener: handleType(e, null)
@@ -1112,6 +1158,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(o)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', d, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(o, typeReference)
         listener: handleNoTypeArguments(d)
         listener: handleType(o, null)
@@ -1132,6 +1179,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(e)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', i, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(e, typeReference)
         listener: handleNoTypeArguments(i)
         listener: handleType(e, null)
@@ -1152,6 +1200,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(s)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', g, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(s, typeReference)
         listener: handleNoTypeArguments(g)
         listener: handleType(s, null)
@@ -1172,6 +1221,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(o)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', v, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(o, typeReference)
         listener: handleNoTypeArguments(v)
         listener: handleType(o, null)
@@ -1192,6 +1242,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(e)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', r, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(e, typeReference)
         listener: handleNoTypeArguments(r)
         listener: handleType(e, null)
@@ -1212,6 +1263,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(n)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', e, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(n, typeReference)
         listener: handleNoTypeArguments(e)
         listener: handleType(n, null)
@@ -1232,6 +1284,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(d)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', b, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(d, typeReference)
         listener: handleNoTypeArguments(b)
         listener: handleType(d, null)
@@ -1252,6 +1305,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(y)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', a, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(y, typeReference)
         listener: handleNoTypeArguments(a)
         listener: handleType(y, null)
@@ -1292,6 +1346,7 @@
     parseTopLevelMemberImpl(/)
       listener: beginTopLevelMember(B)
       parseFields(/, null, null, null, null, null, null, /, Instance of 'SimpleType', S, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(/)
         listener: handleIdentifier(B, typeReference)
         listener: handleNoTypeArguments(S)
         listener: handleType(B, null)
@@ -1313,6 +1368,7 @@
       listener: beginTopLevelMember(D)
       isReservedKeyword(-)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'NoType', D, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         reportRecoverableError(D, MissingConstFinalVarOrType)
           listener: handleRecoverableError(MissingConstFinalVarOrType, D, D)
         listener: handleNoType(;)
@@ -1343,6 +1399,7 @@
     parseTopLevelMemberImpl(-)
       listener: beginTopLevelMember(s)
       parseFields(-, null, null, null, null, null, null, -, Instance of 'SimpleType', t, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(-)
         listener: handleIdentifier(s, typeReference)
         listener: handleNoTypeArguments(t)
         listener: handleType(s, null)
@@ -1363,6 +1420,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(y)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', l, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(y, typeReference)
         listener: handleNoTypeArguments(l)
         listener: handleType(y, null)
@@ -1383,6 +1441,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(e)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', l, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(e, typeReference)
         listener: handleNoTypeArguments(l)
         listener: handleType(e, null)
@@ -1403,6 +1462,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(i)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', c, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(i, typeReference)
         listener: handleNoTypeArguments(c)
         listener: handleType(i, null)
@@ -1423,6 +1483,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(e)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', n, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(e, typeReference)
         listener: handleNoTypeArguments(n)
         listener: handleType(e, null)
@@ -1443,6 +1504,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(s)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', e, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(s, typeReference)
         listener: handleNoTypeArguments(e)
         listener: handleType(s, null)
@@ -1463,6 +1525,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(t)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', h, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(t, typeReference)
         listener: handleNoTypeArguments(h)
         listener: handleType(t, null)
@@ -1483,6 +1546,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(a)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', t, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(a, typeReference)
         listener: handleNoTypeArguments(t)
         listener: handleType(a, null)
@@ -1503,6 +1567,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(c)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', a, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(c, typeReference)
         listener: handleNoTypeArguments(a)
         listener: handleType(c, null)
@@ -1523,6 +1588,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(n)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', b, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(n, typeReference)
         listener: handleNoTypeArguments(b)
         listener: handleType(n, null)
@@ -1543,6 +1609,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(e)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', f, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(e, typeReference)
         listener: handleNoTypeArguments(f)
         listener: handleType(e, null)
@@ -1563,6 +1630,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(o)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', u, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(o, typeReference)
         listener: handleNoTypeArguments(u)
         listener: handleType(o, null)
@@ -1583,6 +1651,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(n)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', d, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(n, typeReference)
         listener: handleNoTypeArguments(d)
         listener: handleType(n, null)
@@ -1603,6 +1672,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(i)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', n, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(i, typeReference)
         listener: handleNoTypeArguments(n)
         listener: handleType(i, null)
@@ -1623,6 +1693,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(t)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', h, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(t, typeReference)
         listener: handleNoTypeArguments(h)
         listener: handleType(t, null)
@@ -1643,6 +1714,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(e)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', L, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(e, typeReference)
         listener: handleNoTypeArguments(L)
         listener: handleType(e, null)
@@ -1663,6 +1735,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(I)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', C, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(I, typeReference)
         listener: handleNoTypeArguments(C)
         listener: handleType(I, null)
@@ -1683,6 +1756,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(E)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', N, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(E, typeReference)
         listener: handleNoTypeArguments(N)
         listener: handleType(E, null)
@@ -1749,6 +1823,7 @@
     parseTopLevelMemberImpl(.)
       listener: beginTopLevelMember(m)
       parseFields(., null, null, null, null, null, null, ., Instance of 'SimpleType', d, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(.)
         listener: handleIdentifier(m, typeReference)
         listener: handleNoTypeArguments(d)
         listener: handleType(m, null)
@@ -1769,6 +1844,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(f)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', i, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(f, typeReference)
         listener: handleNoTypeArguments(i)
         listener: handleType(f, null)
@@ -1855,6 +1931,7 @@
     parseTopLevelMemberImpl(/)
       listener: beginTopLevelMember(T)
       parseFields(/, null, null, null, null, null, null, /, Instance of 'SimpleType', h, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(/)
         listener: handleIdentifier(T, typeReference)
         listener: handleNoTypeArguments(h)
         listener: handleType(T, null)
@@ -1875,6 +1952,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(i)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', s, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(i, typeReference)
         listener: handleNoTypeArguments(s)
         listener: handleType(i, null)
@@ -1895,6 +1973,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(f)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', i, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(f, typeReference)
         listener: handleNoTypeArguments(i)
         listener: handleType(f, null)
@@ -1915,6 +1994,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(l)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', e, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(l, typeReference)
         listener: handleNoTypeArguments(e)
         listener: handleType(l, null)
@@ -1935,6 +2015,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(i)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', s, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(i, typeReference)
         listener: handleNoTypeArguments(s)
         listener: handleType(i, null)
@@ -1955,6 +2036,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(s)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', a, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(s, typeReference)
         listener: handleNoTypeArguments(a)
         listener: handleType(s, null)
@@ -1975,6 +2057,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(v)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', e, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(v, typeReference)
         listener: handleNoTypeArguments(e)
         listener: handleType(v, null)
@@ -1995,6 +2078,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(d)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', a, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(d, typeReference)
         listener: handleNoTypeArguments(a)
         listener: handleType(d, null)
@@ -2015,6 +2099,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(s)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', U, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(s, typeReference)
         listener: handleNoTypeArguments(U)
         listener: handleType(s, null)
@@ -2035,6 +2120,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(T)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', F, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(T, typeReference)
         listener: handleNoTypeArguments(F)
         listener: handleType(T, null)
@@ -2131,6 +2217,7 @@
     parseTopLevelMemberImpl(.)
       listener: beginTopLevelMember(m)
       parseFields(., null, null, null, null, null, null, ., Instance of 'SimpleType', a, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(.)
         listener: handleIdentifier(m, typeReference)
         listener: handleNoTypeArguments(a)
         listener: handleType(m, 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 92e6161..4013553 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
@@ -31,7 +31,7 @@
         handleLiteralInt(7)
       endArguments(1, (, ))
       handleSend(value, ;)
-      endBinaryExpression(.)
+      handleEndingBinaryExpression(.)
       handleExpressionFunctionBody(=>, ;)
     endTopLevelMethod(Future, null, ;)
   endTopLevelDeclaration(List)
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 17191fa..d4b22ff 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
@@ -62,7 +62,7 @@
                                       listener: handleLiteralInt(7)
                             listener: endArguments(1, (, ))
                       listener: handleSend(value, ;)
-                listener: endBinaryExpression(.)
+                listener: handleEndingBinaryExpression(.)
             ensureSemicolon())
             listener: handleExpressionFunctionBody(=>, ;)
             inGenerator()
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 aa10717..5bdec1e 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
@@ -57,72 +57,74 @@
   beginMetadataStar(y)
   endMetadataStar(0)
   beginTopLevelMember(y)
-    handleRecoverableError(MissingConstFinalVarOrType, y, y)
-    handleNoType(.)
-    handleIdentifier(y, topLevelVariableDeclaration)
-    beginFieldInitializer(=)
-      handleLiteralInt(42)
-    endFieldInitializer(=, ;)
-  endTopLevelFields(null, null, null, null, null, 1, y, ;)
-endTopLevelDeclaration(x)
-beginMetadataStar(x)
-endMetadataStar(0)
-beginTopLevelMember(x)
-  beginTopLevelMethod(;, null)
-    handleNoType(;)
-    handleIdentifier(x, topLevelFunctionDeclaration)
-    handleNoTypeVariables(.)
-    handleRecoverableError(MissingFunctionParameters, x, x)
-    beginFormalParameters((, MemberKind.TopLevelMethod)
-    endFormalParameters(0, (, ), MemberKind.TopLevelMethod)
-    handleAsyncModifier(null, null)
-    handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '.'., null, {token: .}], ., .)
-    handleInvalidFunctionBody({)
-  endTopLevelMethod(x, null, })
-endTopLevelDeclaration(.)
-beginMetadataStar(.)
-endMetadataStar(0)
-beginTopLevelMember(.)
-  handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got '.'., null, {token: .}], ., .)
-  handleInvalidTopLevelDeclaration(.)
-endTopLevelDeclaration(z)
-beginMetadataStar(z)
-endMetadataStar(0)
-beginTopLevelMember(z)
-  handleRecoverableError(MissingConstFinalVarOrType, z, z)
-  handleNoType(.)
-  handleIdentifier(z, topLevelVariableDeclaration)
-  beginFieldInitializer(=)
-    handleLiteralBool(true)
-  endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, null, 1, z, ;)
-endTopLevelDeclaration(void)
-beginMetadataStar(void)
-endMetadataStar(0)
-beginTopLevelMember(void)
-beginTopLevelMethod(;, null)
-  handleVoidKeyword(void)
-  handleIdentifier(foo, topLevelFunctionDeclaration)
-  handleNoTypeVariables(()
-  beginFormalParameters((, MemberKind.TopLevelMethod)
-  endFormalParameters(0, (, ), MemberKind.TopLevelMethod)
-  handleAsyncModifier(null, null)
-  beginBlockFunctionBody({)
-    beginIfStatement(if)
-      handleIdentifier(x, expression)
-      handleNoTypeArguments(!=)
-      handleNoArguments(!=)
-      handleSend(x, !=)
-      beginBinaryExpression(!=)
-      handleLiteralNull(null)
-      endBinaryExpression(!=)
-      handleParenthesizedCondition(()
-      beginThenStatement({)
-        beginBlock({, BlockKind(statement))
-        endBlock(0, {, }, BlockKind(statement))
-      endThenStatement(})
-    endIfStatement(if, null)
-  endBlockFunctionBody(1, {, })
-endTopLevelMethod(void, null, })
-endTopLevelDeclaration()
+    beginFields(.)
+      handleRecoverableError(MissingConstFinalVarOrType, y, y)
+      handleNoType(.)
+      handleIdentifier(y, topLevelVariableDeclaration)
+      beginFieldInitializer(=)
+        handleLiteralInt(42)
+      endFieldInitializer(=, ;)
+    endTopLevelFields(null, null, null, null, null, 1, y, ;)
+  endTopLevelDeclaration(x)
+  beginMetadataStar(x)
+  endMetadataStar(0)
+  beginTopLevelMember(x)
+    beginTopLevelMethod(;, null)
+      handleNoType(;)
+      handleIdentifier(x, topLevelFunctionDeclaration)
+      handleNoTypeVariables(.)
+      handleRecoverableError(MissingFunctionParameters, x, x)
+      beginFormalParameters((, MemberKind.TopLevelMethod)
+      endFormalParameters(0, (, ), MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '.'., null, {token: .}], ., .)
+      handleInvalidFunctionBody({)
+    endTopLevelMethod(x, null, })
+  endTopLevelDeclaration(.)
+  beginMetadataStar(.)
+  endMetadataStar(0)
+  beginTopLevelMember(.)
+    handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got '.'., null, {token: .}], ., .)
+    handleInvalidTopLevelDeclaration(.)
+  endTopLevelDeclaration(z)
+  beginMetadataStar(z)
+  endMetadataStar(0)
+  beginTopLevelMember(z)
+    beginFields(.)
+      handleRecoverableError(MissingConstFinalVarOrType, z, z)
+      handleNoType(.)
+      handleIdentifier(z, topLevelVariableDeclaration)
+      beginFieldInitializer(=)
+        handleLiteralBool(true)
+      endFieldInitializer(=, ;)
+    endTopLevelFields(null, null, null, null, null, 1, z, ;)
+  endTopLevelDeclaration(void)
+  beginMetadataStar(void)
+  endMetadataStar(0)
+  beginTopLevelMember(void)
+    beginTopLevelMethod(;, null)
+      handleVoidKeyword(void)
+      handleIdentifier(foo, topLevelFunctionDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.TopLevelMethod)
+      endFormalParameters(0, (, ), MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      beginBlockFunctionBody({)
+        beginIfStatement(if)
+          handleIdentifier(x, expression)
+          handleNoTypeArguments(!=)
+          handleNoArguments(!=)
+          handleSend(x, !=)
+          beginBinaryExpression(!=)
+            handleLiteralNull(null)
+          endBinaryExpression(!=)
+          handleParenthesizedCondition(()
+          beginThenStatement({)
+            beginBlock({, BlockKind(statement))
+            endBlock(0, {, }, BlockKind(statement))
+          endThenStatement(})
+        endIfStatement(if, null)
+      endBlockFunctionBody(1, {, })
+    endTopLevelMethod(void, null, })
+  endTopLevelDeclaration()
 endCompilationUnit(7, )
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 10197c8..ef23755 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
@@ -55,6 +55,7 @@
       listener: beginTopLevelMember(y)
       isReservedKeyword(=)
       parseFields(., null, null, null, null, null, null, ., Instance of 'NoType', y, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(.)
         reportRecoverableError(y, MissingConstFinalVarOrType)
           listener: handleRecoverableError(MissingConstFinalVarOrType, y, y)
         listener: handleNoType(.)
@@ -124,6 +125,7 @@
       listener: beginTopLevelMember(z)
       isReservedKeyword(=)
       parseFields(., null, null, null, null, null, null, ., Instance of 'NoType', z, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(.)
         reportRecoverableError(z, MissingConstFinalVarOrType)
           listener: handleRecoverableError(MissingConstFinalVarOrType, z, z)
         listener: handleNoType(.)
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 b92e229..6dc22ff 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,244 +14,264 @@
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          handleIdentifier(int, typeReference)
-          handleNoTypeArguments(abstract)
-          handleType(int, null)
-          handleIdentifier(abstract, fieldDeclaration)
-          beginFieldInitializer(=)
-            handleLiteralInt(42)
-          endFieldInitializer(=, ;)
-        endClassFields(null, null, null, null, null, null, 1, int, ;)
-      endMember()
-      beginMetadataStar(int)
-      endMetadataStar(0)
-      beginMember()
-        handleIdentifier(int, typeReference)
-        handleNoTypeArguments(as)
-        handleType(int, null)
-        handleIdentifier(as, fieldDeclaration)
-        beginFieldInitializer(=)
-          handleLiteralInt(42)
-        endFieldInitializer(=, ;)
-      endClassFields(null, null, null, null, null, null, 1, int, ;)
-    endMember()
-    beginMetadataStar(int)
-    endMetadataStar(0)
-    beginMember()
-      handleIdentifier(int, typeReference)
-      handleNoTypeArguments(covariant)
-      handleType(int, null)
-      handleIdentifier(covariant, fieldDeclaration)
-      beginFieldInitializer(=)
-        handleLiteralInt(42)
-      endFieldInitializer(=, ;)
-    endClassFields(null, null, null, null, null, null, 1, int, ;)
-  endMember()
-  beginMetadataStar(int)
-  endMetadataStar(0)
-  beginMember()
-    handleIdentifier(int, typeReference)
-    handleNoTypeArguments(deferred)
-    handleType(int, null)
-    handleIdentifier(deferred, fieldDeclaration)
-    beginFieldInitializer(=)
-      handleLiteralInt(42)
-    endFieldInitializer(=, ;)
-  endClassFields(null, null, null, null, null, null, 1, int, ;)
-endMember()
-beginMetadataStar(int)
-endMetadataStar(0)
-beginMember()
-  handleIdentifier(int, typeReference)
-  handleNoTypeArguments(dynamic)
-  handleType(int, null)
-  handleIdentifier(dynamic, fieldDeclaration)
-  beginFieldInitializer(=)
-    handleLiteralInt(42)
-  endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, null, null, 1, int, ;)
-endMember()
-beginMetadataStar(int)
-endMetadataStar(0)
-beginMember()
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(export)
-handleType(int, null)
-handleIdentifier(export, fieldDeclaration)
-beginFieldInitializer(=)
-  handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, null, null, 1, int, ;)
-endMember()
-beginMetadataStar(int)
-endMetadataStar(0)
-beginMember()
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(external)
-handleType(int, null)
-handleIdentifier(external, fieldDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, null, null, 1, int, ;)
-endMember()
-beginMetadataStar(int)
-endMetadataStar(0)
-beginMember()
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(factory)
-handleType(int, null)
-handleIdentifier(factory, fieldDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, null, null, 1, int, ;)
-endMember()
-beginMetadataStar(int)
-endMetadataStar(0)
-beginMember()
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(Function)
-handleType(int, null)
-handleIdentifier(Function, fieldDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, null, null, 1, int, ;)
-endMember()
-beginMetadataStar(int)
-endMetadataStar(0)
-beginMember()
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(get)
-handleType(int, null)
-handleIdentifier(get, fieldDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, null, null, 1, int, ;)
-endMember()
-beginMetadataStar(int)
-endMetadataStar(0)
-beginMember()
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(implements)
-handleType(int, null)
-handleIdentifier(implements, fieldDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, null, null, 1, int, ;)
-endMember()
-beginMetadataStar(int)
-endMetadataStar(0)
-beginMember()
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(import)
-handleType(int, null)
-handleIdentifier(import, fieldDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, null, null, 1, int, ;)
-endMember()
-beginMetadataStar(int)
-endMetadataStar(0)
-beginMember()
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(interface)
-handleType(int, null)
-handleIdentifier(interface, fieldDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, null, null, 1, int, ;)
-endMember()
-beginMetadataStar(int)
-endMetadataStar(0)
-beginMember()
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(library)
-handleType(int, null)
-handleIdentifier(library, fieldDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, null, null, 1, int, ;)
-endMember()
-beginMetadataStar(int)
-endMetadataStar(0)
-beginMember()
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(operator)
-handleType(int, null)
-handleIdentifier(operator, fieldDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, null, null, 1, int, ;)
-endMember()
-beginMetadataStar(int)
-endMetadataStar(0)
-beginMember()
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(mixin)
-handleType(int, null)
-handleIdentifier(mixin, fieldDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, null, null, 1, int, ;)
-endMember()
-beginMetadataStar(int)
-endMetadataStar(0)
-beginMember()
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(part)
-handleType(int, null)
-handleIdentifier(part, fieldDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, null, null, 1, int, ;)
-endMember()
-beginMetadataStar(int)
-endMetadataStar(0)
-beginMember()
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(set)
-handleType(int, null)
-handleIdentifier(set, fieldDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, null, null, 1, int, ;)
-endMember()
-beginMetadataStar(int)
-endMetadataStar(0)
-beginMember()
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(static)
-handleType(int, null)
-handleIdentifier(static, fieldDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, null, null, 1, int, ;)
-endMember()
-beginMetadataStar(int)
-endMetadataStar(0)
-beginMember()
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(typedef)
-handleType(int, null)
-handleIdentifier(typedef, fieldDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, null, null, 1, int, ;)
-endMember()
-endClassOrMixinBody(DeclarationKind.Class, 20, {, })
-endClassDeclaration(class, })
-endTopLevelDeclaration()
+          beginFields({)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(abstract)
+            handleType(int, null)
+            handleIdentifier(abstract, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(42)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(as)
+            handleType(int, null)
+            handleIdentifier(as, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(42)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(covariant)
+            handleType(int, null)
+            handleIdentifier(covariant, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(42)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(deferred)
+            handleType(int, null)
+            handleIdentifier(deferred, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(42)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(dynamic)
+            handleType(int, null)
+            handleIdentifier(dynamic, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(42)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(export)
+            handleType(int, null)
+            handleIdentifier(export, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(42)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(external)
+            handleType(int, null)
+            handleIdentifier(external, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(42)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(factory)
+            handleType(int, null)
+            handleIdentifier(factory, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(42)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(Function)
+            handleType(int, null)
+            handleIdentifier(Function, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(42)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(get)
+            handleType(int, null)
+            handleIdentifier(get, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(42)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(implements)
+            handleType(int, null)
+            handleIdentifier(implements, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(42)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(import)
+            handleType(int, null)
+            handleIdentifier(import, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(42)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(interface)
+            handleType(int, null)
+            handleIdentifier(interface, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(42)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(library)
+            handleType(int, null)
+            handleIdentifier(library, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(42)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(operator)
+            handleType(int, null)
+            handleIdentifier(operator, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(42)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(mixin)
+            handleType(int, null)
+            handleIdentifier(mixin, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(42)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(part)
+            handleType(int, null)
+            handleIdentifier(part, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(42)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(set)
+            handleType(int, null)
+            handleIdentifier(set, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(42)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(static)
+            handleType(int, null)
+            handleIdentifier(static, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(42)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(typedef)
+            handleType(int, null)
+            handleIdentifier(typedef, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(42)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+      endClassOrMixinBody(DeclarationKind.Class, 20, {, })
+    endClassDeclaration(class, })
+  endTopLevelDeclaration()
 endCompilationUnit(1, )
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 768939b..de178ad 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
@@ -33,6 +33,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseFields({, null, null, null, null, null, null, {, Instance of 'SimpleType', abstract, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields({)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(abstract)
                 listener: handleType(int, null)
@@ -56,6 +57,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', as, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(as)
                 listener: handleType(int, null)
@@ -79,6 +81,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', covariant, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(covariant)
                 listener: handleType(int, null)
@@ -102,6 +105,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', deferred, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(deferred)
                 listener: handleType(int, null)
@@ -125,6 +129,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', dynamic, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(dynamic)
                 listener: handleType(int, null)
@@ -148,6 +153,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', export, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(export)
                 listener: handleType(int, null)
@@ -171,6 +177,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', external, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(external)
                 listener: handleType(int, null)
@@ -194,6 +201,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', factory, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(factory)
                 listener: handleType(int, null)
@@ -217,6 +225,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', Function, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(Function)
                 listener: handleType(int, null)
@@ -241,6 +250,7 @@
               listener: beginMember()
               isReservedKeyword(=)
               parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', get, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(get)
                 listener: handleType(int, null)
@@ -264,6 +274,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', implements, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(implements)
                 listener: handleType(int, null)
@@ -287,6 +298,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', import, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(import)
                 listener: handleType(int, null)
@@ -310,6 +322,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', interface, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(interface)
                 listener: handleType(int, null)
@@ -333,6 +346,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', library, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(library)
                 listener: handleType(int, null)
@@ -357,6 +371,7 @@
               listener: beginMember()
               isUnaryMinus(=)
               parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', operator, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(operator)
                 listener: handleType(int, null)
@@ -380,6 +395,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', mixin, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(mixin)
                 listener: handleType(int, null)
@@ -403,6 +419,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', part, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(part)
                 listener: handleType(int, null)
@@ -427,6 +444,7 @@
               listener: beginMember()
               isReservedKeyword(=)
               parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', set, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(set)
                 listener: handleType(int, null)
@@ -450,6 +468,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', static, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(static)
                 listener: handleType(int, null)
@@ -473,6 +492,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', typedef, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(typedef)
                 listener: handleType(int, null)
diff --git a/pkg/front_end/parser_testcases/general/built_in_identifier_class_methods.dart.expect b/pkg/front_end/parser_testcases/general/built_in_identifier_class_methods.dart.expect
index fcefd36..64f045a 100644
--- a/pkg/front_end/parser_testcases/general/built_in_identifier_class_methods.dart.expect
+++ b/pkg/front_end/parser_testcases/general/built_in_identifier_class_methods.dart.expect
@@ -40,7 +40,7 @@
                 handleNoArguments(==)
                 handleSend(x, ==)
                 beginBinaryExpression(==)
-                handleLiteralInt(0)
+                  handleLiteralInt(0)
                 endBinaryExpression(==)
                 handleParenthesizedCondition(()
                 beginThenStatement(return)
@@ -58,7 +58,7 @@
                   handleNoArguments(-)
                   handleSend(x, -)
                   beginBinaryExpression(-)
-                  handleLiteralInt(1)
+                    handleLiteralInt(1)
                   endBinaryExpression(-)
                 endArguments(1, (, ))
                 handleSend(abstract, ;)
@@ -95,7 +95,7 @@
                 handleNoArguments(==)
                 handleSend(x, ==)
                 beginBinaryExpression(==)
-                handleLiteralInt(0)
+                  handleLiteralInt(0)
                 endBinaryExpression(==)
                 handleParenthesizedCondition(()
                 beginThenStatement(return)
@@ -113,7 +113,7 @@
                   handleNoArguments(-)
                   handleSend(x, -)
                   beginBinaryExpression(-)
-                  handleLiteralInt(1)
+                    handleLiteralInt(1)
                   endBinaryExpression(-)
                 endArguments(1, (, ))
                 handleSend(as, ;)
@@ -150,7 +150,7 @@
                 handleNoArguments(==)
                 handleSend(x, ==)
                 beginBinaryExpression(==)
-                handleLiteralInt(0)
+                  handleLiteralInt(0)
                 endBinaryExpression(==)
                 handleParenthesizedCondition(()
                 beginThenStatement(return)
@@ -168,7 +168,7 @@
                   handleNoArguments(-)
                   handleSend(x, -)
                   beginBinaryExpression(-)
-                  handleLiteralInt(1)
+                    handleLiteralInt(1)
                   endBinaryExpression(-)
                 endArguments(1, (, ))
                 handleSend(covariant, ;)
@@ -205,7 +205,7 @@
                 handleNoArguments(==)
                 handleSend(x, ==)
                 beginBinaryExpression(==)
-                handleLiteralInt(0)
+                  handleLiteralInt(0)
                 endBinaryExpression(==)
                 handleParenthesizedCondition(()
                 beginThenStatement(return)
@@ -223,7 +223,7 @@
                   handleNoArguments(-)
                   handleSend(x, -)
                   beginBinaryExpression(-)
-                  handleLiteralInt(1)
+                    handleLiteralInt(1)
                   endBinaryExpression(-)
                 endArguments(1, (, ))
                 handleSend(deferred, ;)
@@ -260,7 +260,7 @@
                 handleNoArguments(==)
                 handleSend(x, ==)
                 beginBinaryExpression(==)
-                handleLiteralInt(0)
+                  handleLiteralInt(0)
                 endBinaryExpression(==)
                 handleParenthesizedCondition(()
                 beginThenStatement(return)
@@ -278,7 +278,7 @@
                   handleNoArguments(-)
                   handleSend(x, -)
                   beginBinaryExpression(-)
-                  handleLiteralInt(1)
+                    handleLiteralInt(1)
                   endBinaryExpression(-)
                 endArguments(1, (, ))
                 handleSend(dynamic, ;)
@@ -315,7 +315,7 @@
                 handleNoArguments(==)
                 handleSend(x, ==)
                 beginBinaryExpression(==)
-                handleLiteralInt(0)
+                  handleLiteralInt(0)
                 endBinaryExpression(==)
                 handleParenthesizedCondition(()
                 beginThenStatement(return)
@@ -333,7 +333,7 @@
                   handleNoArguments(-)
                   handleSend(x, -)
                   beginBinaryExpression(-)
-                  handleLiteralInt(1)
+                    handleLiteralInt(1)
                   endBinaryExpression(-)
                 endArguments(1, (, ))
                 handleSend(export, ;)
@@ -370,7 +370,7 @@
                 handleNoArguments(==)
                 handleSend(x, ==)
                 beginBinaryExpression(==)
-                handleLiteralInt(0)
+                  handleLiteralInt(0)
                 endBinaryExpression(==)
                 handleParenthesizedCondition(()
                 beginThenStatement(return)
@@ -388,7 +388,7 @@
                   handleNoArguments(-)
                   handleSend(x, -)
                   beginBinaryExpression(-)
-                  handleLiteralInt(1)
+                    handleLiteralInt(1)
                   endBinaryExpression(-)
                 endArguments(1, (, ))
                 handleSend(external, ;)
@@ -425,7 +425,7 @@
                 handleNoArguments(==)
                 handleSend(x, ==)
                 beginBinaryExpression(==)
-                handleLiteralInt(0)
+                  handleLiteralInt(0)
                 endBinaryExpression(==)
                 handleParenthesizedCondition(()
                 beginThenStatement(return)
@@ -443,7 +443,7 @@
                   handleNoArguments(-)
                   handleSend(x, -)
                   beginBinaryExpression(-)
-                  handleLiteralInt(1)
+                    handleLiteralInt(1)
                   endBinaryExpression(-)
                 endArguments(1, (, ))
                 handleSend(factory, ;)
@@ -480,7 +480,7 @@
                 handleNoArguments(==)
                 handleSend(x, ==)
                 beginBinaryExpression(==)
-                handleLiteralInt(0)
+                  handleLiteralInt(0)
                 endBinaryExpression(==)
                 handleParenthesizedCondition(()
                 beginThenStatement(return)
@@ -498,7 +498,7 @@
                   handleNoArguments(-)
                   handleSend(x, -)
                   beginBinaryExpression(-)
-                  handleLiteralInt(1)
+                    handleLiteralInt(1)
                   endBinaryExpression(-)
                 endArguments(1, (, ))
                 handleSend(Function, ;)
@@ -535,7 +535,7 @@
                 handleNoArguments(==)
                 handleSend(x, ==)
                 beginBinaryExpression(==)
-                handleLiteralInt(0)
+                  handleLiteralInt(0)
                 endBinaryExpression(==)
                 handleParenthesizedCondition(()
                 beginThenStatement(return)
@@ -553,7 +553,7 @@
                   handleNoArguments(-)
                   handleSend(x, -)
                   beginBinaryExpression(-)
-                  handleLiteralInt(1)
+                    handleLiteralInt(1)
                   endBinaryExpression(-)
                 endArguments(1, (, ))
                 handleSend(get, ;)
@@ -590,7 +590,7 @@
                 handleNoArguments(==)
                 handleSend(x, ==)
                 beginBinaryExpression(==)
-                handleLiteralInt(0)
+                  handleLiteralInt(0)
                 endBinaryExpression(==)
                 handleParenthesizedCondition(()
                 beginThenStatement(return)
@@ -608,7 +608,7 @@
                   handleNoArguments(-)
                   handleSend(x, -)
                   beginBinaryExpression(-)
-                  handleLiteralInt(1)
+                    handleLiteralInt(1)
                   endBinaryExpression(-)
                 endArguments(1, (, ))
                 handleSend(implements, ;)
@@ -645,7 +645,7 @@
                 handleNoArguments(==)
                 handleSend(x, ==)
                 beginBinaryExpression(==)
-                handleLiteralInt(0)
+                  handleLiteralInt(0)
                 endBinaryExpression(==)
                 handleParenthesizedCondition(()
                 beginThenStatement(return)
@@ -663,7 +663,7 @@
                   handleNoArguments(-)
                   handleSend(x, -)
                   beginBinaryExpression(-)
-                  handleLiteralInt(1)
+                    handleLiteralInt(1)
                   endBinaryExpression(-)
                 endArguments(1, (, ))
                 handleSend(import, ;)
@@ -700,7 +700,7 @@
                 handleNoArguments(==)
                 handleSend(x, ==)
                 beginBinaryExpression(==)
-                handleLiteralInt(0)
+                  handleLiteralInt(0)
                 endBinaryExpression(==)
                 handleParenthesizedCondition(()
                 beginThenStatement(return)
@@ -718,7 +718,7 @@
                   handleNoArguments(-)
                   handleSend(x, -)
                   beginBinaryExpression(-)
-                  handleLiteralInt(1)
+                    handleLiteralInt(1)
                   endBinaryExpression(-)
                 endArguments(1, (, ))
                 handleSend(interface, ;)
@@ -755,7 +755,7 @@
                 handleNoArguments(==)
                 handleSend(x, ==)
                 beginBinaryExpression(==)
-                handleLiteralInt(0)
+                  handleLiteralInt(0)
                 endBinaryExpression(==)
                 handleParenthesizedCondition(()
                 beginThenStatement(return)
@@ -773,7 +773,7 @@
                   handleNoArguments(-)
                   handleSend(x, -)
                   beginBinaryExpression(-)
-                  handleLiteralInt(1)
+                    handleLiteralInt(1)
                   endBinaryExpression(-)
                 endArguments(1, (, ))
                 handleSend(library, ;)
@@ -810,7 +810,7 @@
                 handleNoArguments(==)
                 handleSend(x, ==)
                 beginBinaryExpression(==)
-                handleLiteralInt(0)
+                  handleLiteralInt(0)
                 endBinaryExpression(==)
                 handleParenthesizedCondition(()
                 beginThenStatement(return)
@@ -828,7 +828,7 @@
                   handleNoArguments(-)
                   handleSend(x, -)
                   beginBinaryExpression(-)
-                  handleLiteralInt(1)
+                    handleLiteralInt(1)
                   endBinaryExpression(-)
                 endArguments(1, (, ))
                 handleSend(operator, ;)
@@ -865,7 +865,7 @@
                 handleNoArguments(==)
                 handleSend(x, ==)
                 beginBinaryExpression(==)
-                handleLiteralInt(0)
+                  handleLiteralInt(0)
                 endBinaryExpression(==)
                 handleParenthesizedCondition(()
                 beginThenStatement(return)
@@ -883,7 +883,7 @@
                   handleNoArguments(-)
                   handleSend(x, -)
                   beginBinaryExpression(-)
-                  handleLiteralInt(1)
+                    handleLiteralInt(1)
                   endBinaryExpression(-)
                 endArguments(1, (, ))
                 handleSend(mixin, ;)
@@ -920,7 +920,7 @@
                 handleNoArguments(==)
                 handleSend(x, ==)
                 beginBinaryExpression(==)
-                handleLiteralInt(0)
+                  handleLiteralInt(0)
                 endBinaryExpression(==)
                 handleParenthesizedCondition(()
                 beginThenStatement(return)
@@ -938,7 +938,7 @@
                   handleNoArguments(-)
                   handleSend(x, -)
                   beginBinaryExpression(-)
-                  handleLiteralInt(1)
+                    handleLiteralInt(1)
                   endBinaryExpression(-)
                 endArguments(1, (, ))
                 handleSend(part, ;)
@@ -975,7 +975,7 @@
                 handleNoArguments(==)
                 handleSend(x, ==)
                 beginBinaryExpression(==)
-                handleLiteralInt(0)
+                  handleLiteralInt(0)
                 endBinaryExpression(==)
                 handleParenthesizedCondition(()
                 beginThenStatement(return)
@@ -993,7 +993,7 @@
                   handleNoArguments(-)
                   handleSend(x, -)
                   beginBinaryExpression(-)
-                  handleLiteralInt(1)
+                    handleLiteralInt(1)
                   endBinaryExpression(-)
                 endArguments(1, (, ))
                 handleSend(set, ;)
@@ -1030,7 +1030,7 @@
                 handleNoArguments(==)
                 handleSend(x, ==)
                 beginBinaryExpression(==)
-                handleLiteralInt(0)
+                  handleLiteralInt(0)
                 endBinaryExpression(==)
                 handleParenthesizedCondition(()
                 beginThenStatement(return)
@@ -1048,7 +1048,7 @@
                   handleNoArguments(-)
                   handleSend(x, -)
                   beginBinaryExpression(-)
-                  handleLiteralInt(1)
+                    handleLiteralInt(1)
                   endBinaryExpression(-)
                 endArguments(1, (, ))
                 handleSend(static, ;)
@@ -1085,7 +1085,7 @@
                 handleNoArguments(==)
                 handleSend(x, ==)
                 beginBinaryExpression(==)
-                handleLiteralInt(0)
+                  handleLiteralInt(0)
                 endBinaryExpression(==)
                 handleParenthesizedCondition(()
                 beginThenStatement(return)
@@ -1103,7 +1103,7 @@
                   handleNoArguments(-)
                   handleSend(x, -)
                   beginBinaryExpression(-)
-                  handleLiteralInt(1)
+                    handleLiteralInt(1)
                   endBinaryExpression(-)
                 endArguments(1, (, ))
                 handleSend(typedef, ;)
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 5276e05..ede19ca 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,241 +2,261 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    handleIdentifier(int, typeReference)
-    handleNoTypeArguments(abstract)
-    handleType(int, null)
-    handleIdentifier(abstract, topLevelVariableDeclaration)
-    beginFieldInitializer(=)
-      handleLiteralInt(42)
-    endFieldInitializer(=, ;)
-  endTopLevelFields(null, null, null, null, null, 1, int, ;)
-endTopLevelDeclaration(int)
-beginMetadataStar(int)
-endMetadataStar(0)
-beginTopLevelMember(int)
-  handleIdentifier(int, typeReference)
-  handleNoTypeArguments(as)
-  handleType(int, null)
-  handleIdentifier(as, topLevelVariableDeclaration)
-  beginFieldInitializer(=)
-    handleLiteralInt(42)
-  endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, null, 1, int, ;)
-endTopLevelDeclaration(int)
-beginMetadataStar(int)
-endMetadataStar(0)
-beginTopLevelMember(int)
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(covariant)
-handleType(int, null)
-handleIdentifier(covariant, topLevelVariableDeclaration)
-beginFieldInitializer(=)
-  handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, null, 1, int, ;)
-endTopLevelDeclaration(int)
-beginMetadataStar(int)
-endMetadataStar(0)
-beginTopLevelMember(int)
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(deferred)
-handleType(int, null)
-handleIdentifier(deferred, topLevelVariableDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, null, 1, int, ;)
-endTopLevelDeclaration(int)
-beginMetadataStar(int)
-endMetadataStar(0)
-beginTopLevelMember(int)
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(dynamic)
-handleType(int, null)
-handleIdentifier(dynamic, topLevelVariableDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, null, 1, int, ;)
-endTopLevelDeclaration(int)
-beginMetadataStar(int)
-endMetadataStar(0)
-beginTopLevelMember(int)
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(export)
-handleType(int, null)
-handleIdentifier(export, topLevelVariableDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, null, 1, int, ;)
-endTopLevelDeclaration(int)
-beginMetadataStar(int)
-endMetadataStar(0)
-beginTopLevelMember(int)
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(external)
-handleType(int, null)
-handleIdentifier(external, topLevelVariableDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, null, 1, int, ;)
-endTopLevelDeclaration(int)
-beginMetadataStar(int)
-endMetadataStar(0)
-beginTopLevelMember(int)
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(factory)
-handleType(int, null)
-handleIdentifier(factory, topLevelVariableDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, null, 1, int, ;)
-endTopLevelDeclaration(int)
-beginMetadataStar(int)
-endMetadataStar(0)
-beginTopLevelMember(int)
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(Function)
-handleType(int, null)
-handleIdentifier(Function, topLevelVariableDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, null, 1, int, ;)
-endTopLevelDeclaration(int)
-beginMetadataStar(int)
-endMetadataStar(0)
-beginTopLevelMember(int)
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(get)
-handleType(int, null)
-handleIdentifier(get, topLevelVariableDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, null, 1, int, ;)
-endTopLevelDeclaration(int)
-beginMetadataStar(int)
-endMetadataStar(0)
-beginTopLevelMember(int)
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(implements)
-handleType(int, null)
-handleIdentifier(implements, topLevelVariableDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, null, 1, int, ;)
-endTopLevelDeclaration(int)
-beginMetadataStar(int)
-endMetadataStar(0)
-beginTopLevelMember(int)
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(import)
-handleType(int, null)
-handleIdentifier(import, topLevelVariableDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, null, 1, int, ;)
-endTopLevelDeclaration(int)
-beginMetadataStar(int)
-endMetadataStar(0)
-beginTopLevelMember(int)
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(interface)
-handleType(int, null)
-handleIdentifier(interface, topLevelVariableDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, null, 1, int, ;)
-endTopLevelDeclaration(int)
-beginMetadataStar(int)
-endMetadataStar(0)
-beginTopLevelMember(int)
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(library)
-handleType(int, null)
-handleIdentifier(library, topLevelVariableDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, null, 1, int, ;)
-endTopLevelDeclaration(int)
-beginMetadataStar(int)
-endMetadataStar(0)
-beginTopLevelMember(int)
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(operator)
-handleType(int, null)
-handleIdentifier(operator, topLevelVariableDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, null, 1, int, ;)
-endTopLevelDeclaration(int)
-beginMetadataStar(int)
-endMetadataStar(0)
-beginTopLevelMember(int)
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(mixin)
-handleType(int, null)
-handleIdentifier(mixin, topLevelVariableDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, null, 1, int, ;)
-endTopLevelDeclaration(int)
-beginMetadataStar(int)
-endMetadataStar(0)
-beginTopLevelMember(int)
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(part)
-handleType(int, null)
-handleIdentifier(part, topLevelVariableDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, null, 1, int, ;)
-endTopLevelDeclaration(int)
-beginMetadataStar(int)
-endMetadataStar(0)
-beginTopLevelMember(int)
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(set)
-handleType(int, null)
-handleIdentifier(set, topLevelVariableDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, null, 1, int, ;)
-endTopLevelDeclaration(int)
-beginMetadataStar(int)
-endMetadataStar(0)
-beginTopLevelMember(int)
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(static)
-handleType(int, null)
-handleIdentifier(static, topLevelVariableDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, null, 1, int, ;)
-endTopLevelDeclaration(int)
-beginMetadataStar(int)
-endMetadataStar(0)
-beginTopLevelMember(int)
-handleIdentifier(int, typeReference)
-handleNoTypeArguments(typedef)
-handleType(int, null)
-handleIdentifier(typedef, topLevelVariableDeclaration)
-beginFieldInitializer(=)
-handleLiteralInt(42)
-endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, null, 1, int, ;)
-endTopLevelDeclaration()
+    beginFields()
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(abstract)
+      handleType(int, null)
+      handleIdentifier(abstract, topLevelVariableDeclaration)
+      beginFieldInitializer(=)
+        handleLiteralInt(42)
+      endFieldInitializer(=, ;)
+    endTopLevelFields(null, null, null, null, null, 1, int, ;)
+  endTopLevelDeclaration(int)
+  beginMetadataStar(int)
+  endMetadataStar(0)
+  beginTopLevelMember(int)
+    beginFields(;)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(as)
+      handleType(int, null)
+      handleIdentifier(as, topLevelVariableDeclaration)
+      beginFieldInitializer(=)
+        handleLiteralInt(42)
+      endFieldInitializer(=, ;)
+    endTopLevelFields(null, null, null, null, null, 1, int, ;)
+  endTopLevelDeclaration(int)
+  beginMetadataStar(int)
+  endMetadataStar(0)
+  beginTopLevelMember(int)
+    beginFields(;)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(covariant)
+      handleType(int, null)
+      handleIdentifier(covariant, topLevelVariableDeclaration)
+      beginFieldInitializer(=)
+        handleLiteralInt(42)
+      endFieldInitializer(=, ;)
+    endTopLevelFields(null, null, null, null, null, 1, int, ;)
+  endTopLevelDeclaration(int)
+  beginMetadataStar(int)
+  endMetadataStar(0)
+  beginTopLevelMember(int)
+    beginFields(;)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(deferred)
+      handleType(int, null)
+      handleIdentifier(deferred, topLevelVariableDeclaration)
+      beginFieldInitializer(=)
+        handleLiteralInt(42)
+      endFieldInitializer(=, ;)
+    endTopLevelFields(null, null, null, null, null, 1, int, ;)
+  endTopLevelDeclaration(int)
+  beginMetadataStar(int)
+  endMetadataStar(0)
+  beginTopLevelMember(int)
+    beginFields(;)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(dynamic)
+      handleType(int, null)
+      handleIdentifier(dynamic, topLevelVariableDeclaration)
+      beginFieldInitializer(=)
+        handleLiteralInt(42)
+      endFieldInitializer(=, ;)
+    endTopLevelFields(null, null, null, null, null, 1, int, ;)
+  endTopLevelDeclaration(int)
+  beginMetadataStar(int)
+  endMetadataStar(0)
+  beginTopLevelMember(int)
+    beginFields(;)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(export)
+      handleType(int, null)
+      handleIdentifier(export, topLevelVariableDeclaration)
+      beginFieldInitializer(=)
+        handleLiteralInt(42)
+      endFieldInitializer(=, ;)
+    endTopLevelFields(null, null, null, null, null, 1, int, ;)
+  endTopLevelDeclaration(int)
+  beginMetadataStar(int)
+  endMetadataStar(0)
+  beginTopLevelMember(int)
+    beginFields(;)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(external)
+      handleType(int, null)
+      handleIdentifier(external, topLevelVariableDeclaration)
+      beginFieldInitializer(=)
+        handleLiteralInt(42)
+      endFieldInitializer(=, ;)
+    endTopLevelFields(null, null, null, null, null, 1, int, ;)
+  endTopLevelDeclaration(int)
+  beginMetadataStar(int)
+  endMetadataStar(0)
+  beginTopLevelMember(int)
+    beginFields(;)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(factory)
+      handleType(int, null)
+      handleIdentifier(factory, topLevelVariableDeclaration)
+      beginFieldInitializer(=)
+        handleLiteralInt(42)
+      endFieldInitializer(=, ;)
+    endTopLevelFields(null, null, null, null, null, 1, int, ;)
+  endTopLevelDeclaration(int)
+  beginMetadataStar(int)
+  endMetadataStar(0)
+  beginTopLevelMember(int)
+    beginFields(;)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(Function)
+      handleType(int, null)
+      handleIdentifier(Function, topLevelVariableDeclaration)
+      beginFieldInitializer(=)
+        handleLiteralInt(42)
+      endFieldInitializer(=, ;)
+    endTopLevelFields(null, null, null, null, null, 1, int, ;)
+  endTopLevelDeclaration(int)
+  beginMetadataStar(int)
+  endMetadataStar(0)
+  beginTopLevelMember(int)
+    beginFields(;)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(get)
+      handleType(int, null)
+      handleIdentifier(get, topLevelVariableDeclaration)
+      beginFieldInitializer(=)
+        handleLiteralInt(42)
+      endFieldInitializer(=, ;)
+    endTopLevelFields(null, null, null, null, null, 1, int, ;)
+  endTopLevelDeclaration(int)
+  beginMetadataStar(int)
+  endMetadataStar(0)
+  beginTopLevelMember(int)
+    beginFields(;)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(implements)
+      handleType(int, null)
+      handleIdentifier(implements, topLevelVariableDeclaration)
+      beginFieldInitializer(=)
+        handleLiteralInt(42)
+      endFieldInitializer(=, ;)
+    endTopLevelFields(null, null, null, null, null, 1, int, ;)
+  endTopLevelDeclaration(int)
+  beginMetadataStar(int)
+  endMetadataStar(0)
+  beginTopLevelMember(int)
+    beginFields(;)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(import)
+      handleType(int, null)
+      handleIdentifier(import, topLevelVariableDeclaration)
+      beginFieldInitializer(=)
+        handleLiteralInt(42)
+      endFieldInitializer(=, ;)
+    endTopLevelFields(null, null, null, null, null, 1, int, ;)
+  endTopLevelDeclaration(int)
+  beginMetadataStar(int)
+  endMetadataStar(0)
+  beginTopLevelMember(int)
+    beginFields(;)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(interface)
+      handleType(int, null)
+      handleIdentifier(interface, topLevelVariableDeclaration)
+      beginFieldInitializer(=)
+        handleLiteralInt(42)
+      endFieldInitializer(=, ;)
+    endTopLevelFields(null, null, null, null, null, 1, int, ;)
+  endTopLevelDeclaration(int)
+  beginMetadataStar(int)
+  endMetadataStar(0)
+  beginTopLevelMember(int)
+    beginFields(;)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(library)
+      handleType(int, null)
+      handleIdentifier(library, topLevelVariableDeclaration)
+      beginFieldInitializer(=)
+        handleLiteralInt(42)
+      endFieldInitializer(=, ;)
+    endTopLevelFields(null, null, null, null, null, 1, int, ;)
+  endTopLevelDeclaration(int)
+  beginMetadataStar(int)
+  endMetadataStar(0)
+  beginTopLevelMember(int)
+    beginFields(;)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(operator)
+      handleType(int, null)
+      handleIdentifier(operator, topLevelVariableDeclaration)
+      beginFieldInitializer(=)
+        handleLiteralInt(42)
+      endFieldInitializer(=, ;)
+    endTopLevelFields(null, null, null, null, null, 1, int, ;)
+  endTopLevelDeclaration(int)
+  beginMetadataStar(int)
+  endMetadataStar(0)
+  beginTopLevelMember(int)
+    beginFields(;)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(mixin)
+      handleType(int, null)
+      handleIdentifier(mixin, topLevelVariableDeclaration)
+      beginFieldInitializer(=)
+        handleLiteralInt(42)
+      endFieldInitializer(=, ;)
+    endTopLevelFields(null, null, null, null, null, 1, int, ;)
+  endTopLevelDeclaration(int)
+  beginMetadataStar(int)
+  endMetadataStar(0)
+  beginTopLevelMember(int)
+    beginFields(;)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(part)
+      handleType(int, null)
+      handleIdentifier(part, topLevelVariableDeclaration)
+      beginFieldInitializer(=)
+        handleLiteralInt(42)
+      endFieldInitializer(=, ;)
+    endTopLevelFields(null, null, null, null, null, 1, int, ;)
+  endTopLevelDeclaration(int)
+  beginMetadataStar(int)
+  endMetadataStar(0)
+  beginTopLevelMember(int)
+    beginFields(;)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(set)
+      handleType(int, null)
+      handleIdentifier(set, topLevelVariableDeclaration)
+      beginFieldInitializer(=)
+        handleLiteralInt(42)
+      endFieldInitializer(=, ;)
+    endTopLevelFields(null, null, null, null, null, 1, int, ;)
+  endTopLevelDeclaration(int)
+  beginMetadataStar(int)
+  endMetadataStar(0)
+  beginTopLevelMember(int)
+    beginFields(;)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(static)
+      handleType(int, null)
+      handleIdentifier(static, topLevelVariableDeclaration)
+      beginFieldInitializer(=)
+        handleLiteralInt(42)
+      endFieldInitializer(=, ;)
+    endTopLevelFields(null, null, null, null, null, 1, int, ;)
+  endTopLevelDeclaration(int)
+  beginMetadataStar(int)
+  endMetadataStar(0)
+  beginTopLevelMember(int)
+    beginFields(;)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(typedef)
+      handleType(int, null)
+      handleIdentifier(typedef, topLevelVariableDeclaration)
+      beginFieldInitializer(=)
+        handleLiteralInt(42)
+      endFieldInitializer(=, ;)
+    endTopLevelFields(null, null, null, null, null, 1, int, ;)
+  endTopLevelDeclaration()
 endCompilationUnit(20, )
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 bc882c3..21b408a 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
@@ -9,6 +9,7 @@
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(int)
       parseFields(, null, null, null, null, null, null, , Instance of 'SimpleType', abstract, DeclarationKind.TopLevel, null, false)
+        listener: beginFields()
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(abstract)
         listener: handleType(int, null)
@@ -32,6 +33,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', as, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(as)
         listener: handleType(int, null)
@@ -55,6 +57,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', covariant, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(covariant)
         listener: handleType(int, null)
@@ -78,6 +81,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', deferred, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(deferred)
         listener: handleType(int, null)
@@ -101,6 +105,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', dynamic, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(dynamic)
         listener: handleType(int, null)
@@ -124,6 +129,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', export, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(export)
         listener: handleType(int, null)
@@ -147,6 +153,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', external, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(external)
         listener: handleType(int, null)
@@ -170,6 +177,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', factory, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(factory)
         listener: handleType(int, null)
@@ -193,6 +201,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', Function, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(Function)
         listener: handleType(int, null)
@@ -216,6 +225,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', get, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(get)
         listener: handleType(int, null)
@@ -239,6 +249,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', implements, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(implements)
         listener: handleType(int, null)
@@ -262,6 +273,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', import, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(import)
         listener: handleType(int, null)
@@ -285,6 +297,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', interface, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(interface)
         listener: handleType(int, null)
@@ -308,6 +321,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', library, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(library)
         listener: handleType(int, null)
@@ -331,6 +345,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', operator, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(operator)
         listener: handleType(int, null)
@@ -354,6 +369,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', mixin, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(mixin)
         listener: handleType(int, null)
@@ -377,6 +393,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', part, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(part)
         listener: handleType(int, null)
@@ -400,6 +417,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', set, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(set)
         listener: handleType(int, null)
@@ -423,6 +441,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', static, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(static)
         listener: handleType(int, null)
@@ -446,6 +465,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', typedef, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(typedef)
         listener: handleType(int, null)
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 e32cd8e..024c844 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
@@ -27,7 +27,7 @@
           handleNoArguments(==)
           handleSend(x, ==)
           beginBinaryExpression(==)
-          handleLiteralInt(0)
+            handleLiteralInt(0)
           endBinaryExpression(==)
           handleParenthesizedCondition(()
           beginThenStatement(return)
@@ -45,7 +45,7 @@
             handleNoArguments(-)
             handleSend(x, -)
             beginBinaryExpression(-)
-            handleLiteralInt(1)
+              handleLiteralInt(1)
             endBinaryExpression(-)
           endArguments(1, (, ))
           handleSend(abstract, ;)
@@ -81,7 +81,7 @@
           handleNoArguments(==)
           handleSend(x, ==)
           beginBinaryExpression(==)
-          handleLiteralInt(0)
+            handleLiteralInt(0)
           endBinaryExpression(==)
           handleParenthesizedCondition(()
           beginThenStatement(return)
@@ -99,7 +99,7 @@
             handleNoArguments(-)
             handleSend(x, -)
             beginBinaryExpression(-)
-            handleLiteralInt(1)
+              handleLiteralInt(1)
             endBinaryExpression(-)
           endArguments(1, (, ))
           handleSend(as, ;)
@@ -135,7 +135,7 @@
           handleNoArguments(==)
           handleSend(x, ==)
           beginBinaryExpression(==)
-          handleLiteralInt(0)
+            handleLiteralInt(0)
           endBinaryExpression(==)
           handleParenthesizedCondition(()
           beginThenStatement(return)
@@ -153,7 +153,7 @@
             handleNoArguments(-)
             handleSend(x, -)
             beginBinaryExpression(-)
-            handleLiteralInt(1)
+              handleLiteralInt(1)
             endBinaryExpression(-)
           endArguments(1, (, ))
           handleSend(covariant, ;)
@@ -189,7 +189,7 @@
           handleNoArguments(==)
           handleSend(x, ==)
           beginBinaryExpression(==)
-          handleLiteralInt(0)
+            handleLiteralInt(0)
           endBinaryExpression(==)
           handleParenthesizedCondition(()
           beginThenStatement(return)
@@ -207,7 +207,7 @@
             handleNoArguments(-)
             handleSend(x, -)
             beginBinaryExpression(-)
-            handleLiteralInt(1)
+              handleLiteralInt(1)
             endBinaryExpression(-)
           endArguments(1, (, ))
           handleSend(deferred, ;)
@@ -243,7 +243,7 @@
           handleNoArguments(==)
           handleSend(x, ==)
           beginBinaryExpression(==)
-          handleLiteralInt(0)
+            handleLiteralInt(0)
           endBinaryExpression(==)
           handleParenthesizedCondition(()
           beginThenStatement(return)
@@ -261,7 +261,7 @@
             handleNoArguments(-)
             handleSend(x, -)
             beginBinaryExpression(-)
-            handleLiteralInt(1)
+              handleLiteralInt(1)
             endBinaryExpression(-)
           endArguments(1, (, ))
           handleSend(dynamic, ;)
@@ -297,7 +297,7 @@
           handleNoArguments(==)
           handleSend(x, ==)
           beginBinaryExpression(==)
-          handleLiteralInt(0)
+            handleLiteralInt(0)
           endBinaryExpression(==)
           handleParenthesizedCondition(()
           beginThenStatement(return)
@@ -315,7 +315,7 @@
             handleNoArguments(-)
             handleSend(x, -)
             beginBinaryExpression(-)
-            handleLiteralInt(1)
+              handleLiteralInt(1)
             endBinaryExpression(-)
           endArguments(1, (, ))
           handleSend(export, ;)
@@ -351,7 +351,7 @@
           handleNoArguments(==)
           handleSend(x, ==)
           beginBinaryExpression(==)
-          handleLiteralInt(0)
+            handleLiteralInt(0)
           endBinaryExpression(==)
           handleParenthesizedCondition(()
           beginThenStatement(return)
@@ -369,7 +369,7 @@
             handleNoArguments(-)
             handleSend(x, -)
             beginBinaryExpression(-)
-            handleLiteralInt(1)
+              handleLiteralInt(1)
             endBinaryExpression(-)
           endArguments(1, (, ))
           handleSend(external, ;)
@@ -405,7 +405,7 @@
           handleNoArguments(==)
           handleSend(x, ==)
           beginBinaryExpression(==)
-          handleLiteralInt(0)
+            handleLiteralInt(0)
           endBinaryExpression(==)
           handleParenthesizedCondition(()
           beginThenStatement(return)
@@ -423,7 +423,7 @@
             handleNoArguments(-)
             handleSend(x, -)
             beginBinaryExpression(-)
-            handleLiteralInt(1)
+              handleLiteralInt(1)
             endBinaryExpression(-)
           endArguments(1, (, ))
           handleSend(factory, ;)
@@ -459,7 +459,7 @@
           handleNoArguments(==)
           handleSend(x, ==)
           beginBinaryExpression(==)
-          handleLiteralInt(0)
+            handleLiteralInt(0)
           endBinaryExpression(==)
           handleParenthesizedCondition(()
           beginThenStatement(return)
@@ -477,7 +477,7 @@
             handleNoArguments(-)
             handleSend(x, -)
             beginBinaryExpression(-)
-            handleLiteralInt(1)
+              handleLiteralInt(1)
             endBinaryExpression(-)
           endArguments(1, (, ))
           handleSend(Function, ;)
@@ -513,7 +513,7 @@
           handleNoArguments(==)
           handleSend(x, ==)
           beginBinaryExpression(==)
-          handleLiteralInt(0)
+            handleLiteralInt(0)
           endBinaryExpression(==)
           handleParenthesizedCondition(()
           beginThenStatement(return)
@@ -531,7 +531,7 @@
             handleNoArguments(-)
             handleSend(x, -)
             beginBinaryExpression(-)
-            handleLiteralInt(1)
+              handleLiteralInt(1)
             endBinaryExpression(-)
           endArguments(1, (, ))
           handleSend(get, ;)
@@ -567,7 +567,7 @@
           handleNoArguments(==)
           handleSend(x, ==)
           beginBinaryExpression(==)
-          handleLiteralInt(0)
+            handleLiteralInt(0)
           endBinaryExpression(==)
           handleParenthesizedCondition(()
           beginThenStatement(return)
@@ -585,7 +585,7 @@
             handleNoArguments(-)
             handleSend(x, -)
             beginBinaryExpression(-)
-            handleLiteralInt(1)
+              handleLiteralInt(1)
             endBinaryExpression(-)
           endArguments(1, (, ))
           handleSend(implements, ;)
@@ -621,7 +621,7 @@
           handleNoArguments(==)
           handleSend(x, ==)
           beginBinaryExpression(==)
-          handleLiteralInt(0)
+            handleLiteralInt(0)
           endBinaryExpression(==)
           handleParenthesizedCondition(()
           beginThenStatement(return)
@@ -639,7 +639,7 @@
             handleNoArguments(-)
             handleSend(x, -)
             beginBinaryExpression(-)
-            handleLiteralInt(1)
+              handleLiteralInt(1)
             endBinaryExpression(-)
           endArguments(1, (, ))
           handleSend(import, ;)
@@ -675,7 +675,7 @@
           handleNoArguments(==)
           handleSend(x, ==)
           beginBinaryExpression(==)
-          handleLiteralInt(0)
+            handleLiteralInt(0)
           endBinaryExpression(==)
           handleParenthesizedCondition(()
           beginThenStatement(return)
@@ -693,7 +693,7 @@
             handleNoArguments(-)
             handleSend(x, -)
             beginBinaryExpression(-)
-            handleLiteralInt(1)
+              handleLiteralInt(1)
             endBinaryExpression(-)
           endArguments(1, (, ))
           handleSend(interface, ;)
@@ -729,7 +729,7 @@
           handleNoArguments(==)
           handleSend(x, ==)
           beginBinaryExpression(==)
-          handleLiteralInt(0)
+            handleLiteralInt(0)
           endBinaryExpression(==)
           handleParenthesizedCondition(()
           beginThenStatement(return)
@@ -747,7 +747,7 @@
             handleNoArguments(-)
             handleSend(x, -)
             beginBinaryExpression(-)
-            handleLiteralInt(1)
+              handleLiteralInt(1)
             endBinaryExpression(-)
           endArguments(1, (, ))
           handleSend(library, ;)
@@ -783,7 +783,7 @@
           handleNoArguments(==)
           handleSend(x, ==)
           beginBinaryExpression(==)
-          handleLiteralInt(0)
+            handleLiteralInt(0)
           endBinaryExpression(==)
           handleParenthesizedCondition(()
           beginThenStatement(return)
@@ -801,7 +801,7 @@
             handleNoArguments(-)
             handleSend(x, -)
             beginBinaryExpression(-)
-            handleLiteralInt(1)
+              handleLiteralInt(1)
             endBinaryExpression(-)
           endArguments(1, (, ))
           handleSend(operator, ;)
@@ -837,7 +837,7 @@
           handleNoArguments(==)
           handleSend(x, ==)
           beginBinaryExpression(==)
-          handleLiteralInt(0)
+            handleLiteralInt(0)
           endBinaryExpression(==)
           handleParenthesizedCondition(()
           beginThenStatement(return)
@@ -855,7 +855,7 @@
             handleNoArguments(-)
             handleSend(x, -)
             beginBinaryExpression(-)
-            handleLiteralInt(1)
+              handleLiteralInt(1)
             endBinaryExpression(-)
           endArguments(1, (, ))
           handleSend(mixin, ;)
@@ -891,7 +891,7 @@
           handleNoArguments(==)
           handleSend(x, ==)
           beginBinaryExpression(==)
-          handleLiteralInt(0)
+            handleLiteralInt(0)
           endBinaryExpression(==)
           handleParenthesizedCondition(()
           beginThenStatement(return)
@@ -909,7 +909,7 @@
             handleNoArguments(-)
             handleSend(x, -)
             beginBinaryExpression(-)
-            handleLiteralInt(1)
+              handleLiteralInt(1)
             endBinaryExpression(-)
           endArguments(1, (, ))
           handleSend(part, ;)
@@ -945,7 +945,7 @@
           handleNoArguments(==)
           handleSend(x, ==)
           beginBinaryExpression(==)
-          handleLiteralInt(0)
+            handleLiteralInt(0)
           endBinaryExpression(==)
           handleParenthesizedCondition(()
           beginThenStatement(return)
@@ -963,7 +963,7 @@
             handleNoArguments(-)
             handleSend(x, -)
             beginBinaryExpression(-)
-            handleLiteralInt(1)
+              handleLiteralInt(1)
             endBinaryExpression(-)
           endArguments(1, (, ))
           handleSend(set, ;)
@@ -999,7 +999,7 @@
           handleNoArguments(==)
           handleSend(x, ==)
           beginBinaryExpression(==)
-          handleLiteralInt(0)
+            handleLiteralInt(0)
           endBinaryExpression(==)
           handleParenthesizedCondition(()
           beginThenStatement(return)
@@ -1017,7 +1017,7 @@
             handleNoArguments(-)
             handleSend(x, -)
             beginBinaryExpression(-)
-            handleLiteralInt(1)
+              handleLiteralInt(1)
             endBinaryExpression(-)
           endArguments(1, (, ))
           handleSend(static, ;)
@@ -1053,7 +1053,7 @@
           handleNoArguments(==)
           handleSend(x, ==)
           beginBinaryExpression(==)
-          handleLiteralInt(0)
+            handleLiteralInt(0)
           endBinaryExpression(==)
           handleParenthesizedCondition(()
           beginThenStatement(return)
@@ -1071,7 +1071,7 @@
             handleNoArguments(-)
             handleSend(x, -)
             beginBinaryExpression(-)
-            handleLiteralInt(1)
+              handleLiteralInt(1)
             endBinaryExpression(-)
           endArguments(1, (, ))
           handleSend(typedef, ;)
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 dd320e8..8486437 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
@@ -28,7 +28,7 @@
         beginArguments(()
         endArguments(0, (, ))
         handleSend(f, ()
-        endBinaryExpression(.)
+        handleEndingBinaryExpression(.)
         handleNoTypeArguments(()
         beginArguments(()
         endArguments(0, (, ))
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 09fc946..f8eda7a 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
@@ -68,7 +68,7 @@
                                   listener: beginArguments(()
                                   listener: endArguments(0, (, ))
                             listener: handleSend(f, ()
-                      listener: endBinaryExpression(.)
+                      listener: handleEndingBinaryExpression(.)
                       parseArgumentOrIndexStar(), Instance of 'NoTypeParamOrArg', false)
                         listener: handleNoTypeArguments(()
                         parseArguments())
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 b0f0952..d970ac1 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
@@ -28,7 +28,7 @@
         beginArguments(()
         endArguments(0, (, ))
         handleSend(f, <)
-        endBinaryExpression(.)
+        handleEndingBinaryExpression(.)
         beginTypeArguments(<)
           handleIdentifier(int, typeReference)
           handleNoTypeArguments(>)
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 468279f..60cdf99 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
@@ -68,7 +68,7 @@
                                   listener: beginArguments(()
                                   listener: endArguments(0, (, ))
                             listener: handleSend(f, <)
-                      listener: endBinaryExpression(.)
+                      listener: handleEndingBinaryExpression(.)
                       listener: beginTypeArguments(<)
                       listener: handleIdentifier(int, typeReference)
                       listener: handleNoTypeArguments(>)
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 0b1c727b..1155593 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
@@ -28,7 +28,7 @@
         beginArguments(()
         endArguments(0, (, ))
         handleSend(f, ))
-        endBinaryExpression(.)
+        handleEndingBinaryExpression(.)
         handleParenthesizedExpression(()
         beginTypeArguments(<)
           handleIdentifier(int, typeReference)
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 781d73c..79a8099 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
@@ -77,7 +77,7 @@
                                                     listener: beginArguments(()
                                                     listener: endArguments(0, (, ))
                                               listener: handleSend(f, ))
-                                        listener: endBinaryExpression(.)
+                                        listener: handleEndingBinaryExpression(.)
                                     ensureCloseParen(), ()
                                 listener: handleParenthesizedExpression(()
                         listener: beginTypeArguments(<)
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 c112801..35f2f36 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
@@ -32,7 +32,7 @@
         beginArguments(()
         endArguments(0, (, ))
         handleSend(f, <)
-        endBinaryExpression(.)
+        handleEndingBinaryExpression(.)
         beginTypeArguments(<)
           handleIdentifier(int, typeReference)
           handleNoTypeArguments(>)
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 9480d6c..b2e38f4 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
@@ -72,7 +72,7 @@
                                   listener: beginArguments(()
                                   listener: endArguments(0, (, ))
                             listener: handleSend(f, <)
-                      listener: endBinaryExpression(.)
+                      listener: handleEndingBinaryExpression(.)
                       listener: beginTypeArguments(<)
                       listener: handleIdentifier(int, typeReference)
                       listener: handleNoTypeArguments(>)
diff --git a/pkg/front_end/parser_testcases/general/for.dart.expect b/pkg/front_end/parser_testcases/general/for.dart.expect
index 03a3fbd..33fd303 100644
--- a/pkg/front_end/parser_testcases/general/for.dart.expect
+++ b/pkg/front_end/parser_testcases/general/for.dart.expect
@@ -30,7 +30,7 @@
           handleNoArguments(<)
           handleSend(i, <)
           beginBinaryExpression(<)
-          handleLiteralInt(10)
+            handleLiteralInt(10)
           endBinaryExpression(<)
           handleExpressionStatement(;)
           handleIdentifier(i, expression)
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 bbe4ce5..9ea424a 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
@@ -34,7 +34,7 @@
           handleNoArguments(<)
           handleSend(i, <)
           beginBinaryExpression(<)
-          handleLiteralInt(10)
+            handleLiteralInt(10)
           endBinaryExpression(<)
           handleExpressionStatement(;)
           handleIdentifier(i, expression)
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 695f582..7378081 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
@@ -1,984 +1,1014 @@
 beginCompilationUnit(typedef)
   beginMetadataStar(typedef)
   endMetadataStar(0)
-  beginFunctionTypeAlias(typedef)
-    handleIdentifier(E1, typedefDeclaration)
-    beginTypeVariables(<)
-      beginMetadataStar(T)
-      endMetadataStar(0)
-      handleIdentifier(T, typeVariableDeclaration)
-      beginTypeVariable(T)
-        handleTypeVariablesDefined(T, 1)
-        handleNoType(T)
-      endTypeVariable(>, 0, null, null)
-    endTypeVariables(<, >)
-    beginFunctionType(void)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleIdentifier(E1, typedefDeclaration)
+      beginTypeVariables(<)
+        beginMetadataStar(T)
+        endMetadataStar(0)
+        handleIdentifier(T, typeVariableDeclaration)
+        beginTypeVariable(T)
+          handleTypeVariablesDefined(T, 1)
+          handleNoType(T)
+        endTypeVariable(>, 0, null, null)
+      endTypeVariables(<, >)
+      beginFunctionType(void)
+        handleNoTypeVariables(()
+        handleVoidKeyword(void)
+        beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+        endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
+      endFunctionType(Function, null)
+    endFunctionTypeAlias(typedef, =, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleIdentifier(E2, typedefDeclaration)
+      beginTypeVariables(<)
+        beginMetadataStar(T)
+        endMetadataStar(0)
+        handleIdentifier(T, typeVariableDeclaration)
+        beginTypeVariable(T)
+          handleTypeVariablesDefined(num, 1)
+          handleIdentifier(num, typeReference)
+          handleNoTypeArguments(>)
+          handleType(num, null)
+        endTypeVariable(>, 0, extends, null)
+      endTypeVariables(<, >)
+      beginFunctionType(void)
+        handleNoTypeVariables(()
+        handleVoidKeyword(void)
+        beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+        endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
+      endFunctionType(Function, null)
+    endFunctionTypeAlias(typedef, =, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleIdentifier(E3, typedefDeclaration)
+      beginTypeVariables(<)
+        beginMetadataStar(T)
+        endMetadataStar(0)
+        handleIdentifier(T, typeVariableDeclaration)
+        beginTypeVariable(T)
+          beginMetadataStar(S)
+          endMetadataStar(0)
+          handleIdentifier(S, typeVariableDeclaration)
+          beginTypeVariable(S)
+            handleTypeVariablesDefined(S, 2)
+            handleNoType(S)
+          endTypeVariable(>, 1, null, null)
+          handleNoType(T)
+        endTypeVariable(,, 0, null, null)
+      endTypeVariables(<, >)
+      beginFunctionType(void)
+        handleNoTypeVariables(()
+        handleVoidKeyword(void)
+        beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+        endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
+      endFunctionType(Function, null)
+    endFunctionTypeAlias(typedef, =, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleIdentifier(E4, typedefDeclaration)
+      beginTypeVariables(<)
+        beginMetadataStar(T)
+        endMetadataStar(0)
+        handleIdentifier(T, typeVariableDeclaration)
+        beginTypeVariable(T)
+          beginMetadataStar(S)
+          endMetadataStar(0)
+          handleIdentifier(S, typeVariableDeclaration)
+          beginTypeVariable(S)
+            handleTypeVariablesDefined(num, 2)
+            handleIdentifier(num, typeReference)
+            handleNoTypeArguments(>)
+            handleType(num, null)
+          endTypeVariable(>, 1, extends, null)
+          handleIdentifier(num, typeReference)
+          handleNoTypeArguments(,)
+          handleType(num, null)
+        endTypeVariable(,, 0, extends, null)
+      endTypeVariables(<, >)
+      beginFunctionType(void)
+        handleNoTypeVariables(()
+        handleVoidKeyword(void)
+        beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+        endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
+      endFunctionType(Function, null)
+    endFunctionTypeAlias(typedef, =, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleIdentifier(E5, typedefDeclaration)
+      beginTypeVariables(<)
+        beginMetadataStar(T)
+        endMetadataStar(0)
+        handleIdentifier(T, typeVariableDeclaration)
+        beginTypeVariable(T)
+          beginMetadataStar(S)
+          endMetadataStar(0)
+          handleIdentifier(S, typeVariableDeclaration)
+          beginTypeVariable(S)
+            handleTypeVariablesDefined(num, 2)
+            handleIdentifier(num, typeReference)
+            handleNoTypeArguments(>)
+            handleType(num, null)
+          endTypeVariable(>, 1, extends, null)
+          handleIdentifier(S, typeReference)
+          handleNoTypeArguments(,)
+          handleType(S, null)
+        endTypeVariable(,, 0, extends, null)
+      endTypeVariables(<, >)
+      beginFunctionType(void)
+        handleNoTypeVariables(()
+        handleVoidKeyword(void)
+        beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+        endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
+      endFunctionType(Function, null)
+    endFunctionTypeAlias(typedef, =, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleIdentifier(E6, typedefDeclaration)
+      beginTypeVariables(<)
+        beginMetadataStar(T)
+        endMetadataStar(0)
+        handleIdentifier(T, typeVariableDeclaration)
+        beginTypeVariable(T)
+          beginMetadataStar(S)
+          endMetadataStar(0)
+          handleIdentifier(S, typeVariableDeclaration)
+          beginTypeVariable(S)
+            handleTypeVariablesDefined(T, 2)
+            handleIdentifier(T, typeReference)
+            handleNoTypeArguments(>)
+            handleType(T, null)
+          endTypeVariable(>, 1, extends, null)
+          handleIdentifier(num, typeReference)
+          handleNoTypeArguments(,)
+          handleType(num, null)
+        endTypeVariable(,, 0, extends, null)
+      endTypeVariables(<, >)
+      beginFunctionType(void)
+        handleNoTypeVariables(()
+        handleVoidKeyword(void)
+        beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+        endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
+      endFunctionType(Function, null)
+    endFunctionTypeAlias(typedef, =, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleIdentifier(F1, typedefDeclaration)
+      handleNoTypeVariables(=)
+      beginFunctionType(void)
+        beginTypeVariables(<)
+          beginMetadataStar(T)
+          endMetadataStar(0)
+          handleIdentifier(T, typeVariableDeclaration)
+          beginTypeVariable(T)
+            handleTypeVariablesDefined(T, 1)
+            handleNoType(T)
+          endTypeVariable(>, 0, null, null)
+        endTypeVariables(<, >)
+        handleVoidKeyword(void)
+        beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+        endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
+      endFunctionType(Function, null)
+    endFunctionTypeAlias(typedef, =, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleIdentifier(F2, typedefDeclaration)
+      handleNoTypeVariables(=)
+      beginFunctionType(void)
+        beginTypeVariables(<)
+          beginMetadataStar(T)
+          endMetadataStar(0)
+          handleIdentifier(T, typeVariableDeclaration)
+          beginTypeVariable(T)
+            handleTypeVariablesDefined(num, 1)
+            handleIdentifier(num, typeReference)
+            handleNoTypeArguments(>)
+            handleType(num, null)
+          endTypeVariable(>, 0, extends, null)
+        endTypeVariables(<, >)
+        handleVoidKeyword(void)
+        beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+        endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
+      endFunctionType(Function, null)
+    endFunctionTypeAlias(typedef, =, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleIdentifier(F3, typedefDeclaration)
+      handleNoTypeVariables(=)
+      beginFunctionType(void)
+        beginTypeVariables(<)
+          beginMetadataStar(T)
+          endMetadataStar(0)
+          handleIdentifier(T, typeVariableDeclaration)
+          beginTypeVariable(T)
+            beginMetadataStar(S)
+            endMetadataStar(0)
+            handleIdentifier(S, typeVariableDeclaration)
+            beginTypeVariable(S)
+              handleTypeVariablesDefined(S, 2)
+              handleNoType(S)
+            endTypeVariable(>, 1, null, null)
+            handleNoType(T)
+          endTypeVariable(,, 0, null, null)
+        endTypeVariables(<, >)
+        handleVoidKeyword(void)
+        beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+        endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
+      endFunctionType(Function, null)
+    endFunctionTypeAlias(typedef, =, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleIdentifier(F4, typedefDeclaration)
+      handleNoTypeVariables(=)
+      beginFunctionType(void)
+        beginTypeVariables(<)
+          beginMetadataStar(T)
+          endMetadataStar(0)
+          handleIdentifier(T, typeVariableDeclaration)
+          beginTypeVariable(T)
+            beginMetadataStar(S)
+            endMetadataStar(0)
+            handleIdentifier(S, typeVariableDeclaration)
+            beginTypeVariable(S)
+              handleTypeVariablesDefined(num, 2)
+              handleIdentifier(num, typeReference)
+              handleNoTypeArguments(>)
+              handleType(num, null)
+            endTypeVariable(>, 1, extends, null)
+            handleIdentifier(num, typeReference)
+            handleNoTypeArguments(,)
+            handleType(num, null)
+          endTypeVariable(,, 0, extends, null)
+        endTypeVariables(<, >)
+        handleVoidKeyword(void)
+        beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+        endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
+      endFunctionType(Function, null)
+    endFunctionTypeAlias(typedef, =, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleIdentifier(F5, typedefDeclaration)
+      handleNoTypeVariables(=)
+      beginFunctionType(void)
+        beginTypeVariables(<)
+          beginMetadataStar(T)
+          endMetadataStar(0)
+          handleIdentifier(T, typeVariableDeclaration)
+          beginTypeVariable(T)
+            beginMetadataStar(S)
+            endMetadataStar(0)
+            handleIdentifier(S, typeVariableDeclaration)
+            beginTypeVariable(S)
+              handleTypeVariablesDefined(num, 2)
+              handleIdentifier(num, typeReference)
+              handleNoTypeArguments(>)
+              handleType(num, null)
+            endTypeVariable(>, 1, extends, null)
+            handleIdentifier(S, typeReference)
+            handleNoTypeArguments(,)
+            handleType(S, null)
+          endTypeVariable(,, 0, extends, null)
+        endTypeVariables(<, >)
+        handleVoidKeyword(void)
+        beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+        endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
+      endFunctionType(Function, null)
+    endFunctionTypeAlias(typedef, =, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleIdentifier(F6, typedefDeclaration)
+      handleNoTypeVariables(=)
+      beginFunctionType(void)
+        beginTypeVariables(<)
+          beginMetadataStar(T)
+          endMetadataStar(0)
+          handleIdentifier(T, typeVariableDeclaration)
+          beginTypeVariable(T)
+            beginMetadataStar(S)
+            endMetadataStar(0)
+            handleIdentifier(S, typeVariableDeclaration)
+            beginTypeVariable(S)
+              handleTypeVariablesDefined(T, 2)
+              handleIdentifier(T, typeReference)
+              handleNoTypeArguments(>)
+              handleType(T, null)
+            endTypeVariable(>, 1, extends, null)
+            handleIdentifier(num, typeReference)
+            handleNoTypeArguments(,)
+            handleType(num, null)
+          endTypeVariable(,, 0, extends, null)
+        endTypeVariables(<, >)
+        handleVoidKeyword(void)
+        beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+        endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
+      endFunctionType(Function, null)
+    endFunctionTypeAlias(typedef, =, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleIdentifier(G1, typedefDeclaration)
+      beginTypeVariables(<)
+        beginMetadataStar(X)
+        endMetadataStar(0)
+        handleIdentifier(X, typeVariableDeclaration)
+        beginTypeVariable(X)
+          handleTypeVariablesDefined(X, 1)
+          handleNoType(X)
+        endTypeVariable(>, 0, null, null)
+      endTypeVariables(<, >)
+      beginFunctionType(void)
+        beginTypeVariables(<)
+          beginMetadataStar(T)
+          endMetadataStar(0)
+          handleIdentifier(T, typeVariableDeclaration)
+          beginTypeVariable(T)
+            handleTypeVariablesDefined(X, 1)
+            handleIdentifier(X, typeReference)
+            handleNoTypeArguments(>)
+            handleType(X, null)
+          endTypeVariable(>, 0, extends, null)
+        endTypeVariables(<, >)
+        handleVoidKeyword(void)
+        beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+        endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
+      endFunctionType(Function, null)
+    endFunctionTypeAlias(typedef, =, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleIdentifier(G2, typedefDeclaration)
+      beginTypeVariables(<)
+        beginMetadataStar(X)
+        endMetadataStar(0)
+        handleIdentifier(X, typeVariableDeclaration)
+        beginTypeVariable(X)
+          handleTypeVariablesDefined(num, 1)
+          handleIdentifier(num, typeReference)
+          handleNoTypeArguments(>)
+          handleType(num, null)
+        endTypeVariable(>, 0, extends, null)
+      endTypeVariables(<, >)
+      beginFunctionType(void)
+        beginTypeVariables(<)
+          beginMetadataStar(T)
+          endMetadataStar(0)
+          handleIdentifier(T, typeVariableDeclaration)
+          beginTypeVariable(T)
+            handleTypeVariablesDefined(X, 1)
+            handleIdentifier(X, typeReference)
+            handleNoTypeArguments(>)
+            handleType(X, null)
+          endTypeVariable(>, 0, extends, null)
+        endTypeVariables(<, >)
+        handleVoidKeyword(void)
+        beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+        endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
+      endFunctionType(Function, null)
+    endFunctionTypeAlias(typedef, =, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleIdentifier(G3, typedefDeclaration)
+      beginTypeVariables(<)
+        beginMetadataStar(X)
+        endMetadataStar(0)
+        handleIdentifier(X, typeVariableDeclaration)
+        beginTypeVariable(X)
+          beginMetadataStar(Y)
+          endMetadataStar(0)
+          handleIdentifier(Y, typeVariableDeclaration)
+          beginTypeVariable(Y)
+            handleTypeVariablesDefined(Y, 2)
+            handleNoType(Y)
+          endTypeVariable(>, 1, null, null)
+          handleNoType(X)
+        endTypeVariable(,, 0, null, null)
+      endTypeVariables(<, >)
+      beginFunctionType(void)
+        beginTypeVariables(<)
+          beginMetadataStar(T)
+          endMetadataStar(0)
+          handleIdentifier(T, typeVariableDeclaration)
+          beginTypeVariable(T)
+            beginMetadataStar(S)
+            endMetadataStar(0)
+            handleIdentifier(S, typeVariableDeclaration)
+            beginTypeVariable(S)
+              handleTypeVariablesDefined(Y, 2)
+              handleIdentifier(Y, typeReference)
+              handleNoTypeArguments(>)
+              handleType(Y, null)
+            endTypeVariable(>, 1, extends, null)
+            handleIdentifier(X, typeReference)
+            handleNoTypeArguments(,)
+            handleType(X, null)
+          endTypeVariable(,, 0, extends, null)
+        endTypeVariables(<, >)
+        handleVoidKeyword(void)
+        beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+        endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
+      endFunctionType(Function, null)
+    endFunctionTypeAlias(typedef, =, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleIdentifier(G4, typedefDeclaration)
+      beginTypeVariables(<)
+        beginMetadataStar(X)
+        endMetadataStar(0)
+        handleIdentifier(X, typeVariableDeclaration)
+        beginTypeVariable(X)
+          beginMetadataStar(Y)
+          endMetadataStar(0)
+          handleIdentifier(Y, typeVariableDeclaration)
+          beginTypeVariable(Y)
+            handleTypeVariablesDefined(num, 2)
+            handleIdentifier(num, typeReference)
+            handleNoTypeArguments(>)
+            handleType(num, null)
+          endTypeVariable(>, 1, extends, null)
+          handleIdentifier(num, typeReference)
+          handleNoTypeArguments(,)
+          handleType(num, null)
+        endTypeVariable(,, 0, extends, null)
+      endTypeVariables(<, >)
+      beginFunctionType(void)
+        beginTypeVariables(<)
+          beginMetadataStar(T)
+          endMetadataStar(0)
+          handleIdentifier(T, typeVariableDeclaration)
+          beginTypeVariable(T)
+            beginMetadataStar(S)
+            endMetadataStar(0)
+            handleIdentifier(S, typeVariableDeclaration)
+            beginTypeVariable(S)
+              handleTypeVariablesDefined(Y, 2)
+              handleIdentifier(Y, typeReference)
+              handleNoTypeArguments(>)
+              handleType(Y, null)
+            endTypeVariable(>, 1, extends, null)
+            handleIdentifier(X, typeReference)
+            handleNoTypeArguments(,)
+            handleType(X, null)
+          endTypeVariable(,, 0, extends, null)
+        endTypeVariables(<, >)
+        handleVoidKeyword(void)
+        beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+        endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
+      endFunctionType(Function, null)
+    endFunctionTypeAlias(typedef, =, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleIdentifier(G5, typedefDeclaration)
+      beginTypeVariables(<)
+        beginMetadataStar(X)
+        endMetadataStar(0)
+        handleIdentifier(X, typeVariableDeclaration)
+        beginTypeVariable(X)
+          handleTypeVariablesDefined(num, 1)
+          handleIdentifier(num, typeReference)
+          handleNoTypeArguments(>)
+          handleType(num, null)
+        endTypeVariable(>, 0, extends, null)
+      endTypeVariables(<, >)
+      beginFunctionType(void)
+        beginTypeVariables(<)
+          beginMetadataStar(T)
+          endMetadataStar(0)
+          handleIdentifier(T, typeVariableDeclaration)
+          beginTypeVariable(T)
+            beginMetadataStar(S)
+            endMetadataStar(0)
+            handleIdentifier(S, typeVariableDeclaration)
+            beginTypeVariable(S)
+              handleTypeVariablesDefined(X, 2)
+              handleIdentifier(X, typeReference)
+              handleNoTypeArguments(>)
+              handleType(X, null)
+            endTypeVariable(>, 1, extends, null)
+            handleIdentifier(S, typeReference)
+            handleNoTypeArguments(,)
+            handleType(S, null)
+          endTypeVariable(,, 0, extends, null)
+        endTypeVariables(<, >)
+        handleVoidKeyword(void)
+        beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+        endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
+      endFunctionType(Function, null)
+    endFunctionTypeAlias(typedef, =, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleIdentifier(G6, typedefDeclaration)
+      beginTypeVariables(<)
+        beginMetadataStar(X)
+        endMetadataStar(0)
+        handleIdentifier(X, typeVariableDeclaration)
+        beginTypeVariable(X)
+          handleTypeVariablesDefined(num, 1)
+          handleIdentifier(num, typeReference)
+          handleNoTypeArguments(>)
+          handleType(num, null)
+        endTypeVariable(>, 0, extends, null)
+      endTypeVariables(<, >)
+      beginFunctionType(void)
+        beginTypeVariables(<)
+          beginMetadataStar(T)
+          endMetadataStar(0)
+          handleIdentifier(T, typeVariableDeclaration)
+          beginTypeVariable(T)
+            beginMetadataStar(S)
+            endMetadataStar(0)
+            handleIdentifier(S, typeVariableDeclaration)
+            beginTypeVariable(S)
+              handleTypeVariablesDefined(T, 2)
+              handleIdentifier(T, typeReference)
+              handleNoTypeArguments(>)
+              handleType(T, null)
+            endTypeVariable(>, 1, extends, null)
+            handleIdentifier(X, typeReference)
+            handleNoTypeArguments(,)
+            handleType(X, null)
+          endTypeVariable(,, 0, extends, null)
+        endTypeVariables(<, >)
+        handleVoidKeyword(void)
+        beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+        endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
+      endFunctionType(Function, null)
+    endFunctionTypeAlias(typedef, =, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleIdentifier(H1, typedefDeclaration)
+      handleNoTypeVariables(=)
+      beginFunctionType(void)
+        handleNoTypeVariables(()
+        handleVoidKeyword(void)
+        beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+          beginMetadataStar(void)
+          endMetadataStar(0)
+          beginFormalParameter(void, MemberKind.GeneralizedFunctionType, null, null, null)
+            beginFunctionType(void)
+              beginTypeVariables(<)
+                beginMetadataStar(T)
+                endMetadataStar(0)
+                handleIdentifier(T, typeVariableDeclaration)
+                beginTypeVariable(T)
+                  handleTypeVariablesDefined(T, 1)
+                  handleNoType(T)
+                endTypeVariable(>, 0, null, null)
+              endTypeVariables(<, >)
+              handleVoidKeyword(void)
+              beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+              endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
+            endFunctionType(Function, null)
+            handleNoName())
+            handleFormalParameterWithoutValue())
+          endFormalParameter(null, null, ), null, null, FormalParameterKind.mandatory, MemberKind.GeneralizedFunctionType)
+        endFormalParameters(1, (, ), MemberKind.GeneralizedFunctionType)
+      endFunctionType(Function, null)
+    endFunctionTypeAlias(typedef, =, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleIdentifier(H2, typedefDeclaration)
+      handleNoTypeVariables(=)
+      beginFunctionType(void)
+        handleNoTypeVariables(()
+        handleVoidKeyword(void)
+        beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+          beginMetadataStar(void)
+          endMetadataStar(0)
+          beginFormalParameter(void, MemberKind.GeneralizedFunctionType, null, null, null)
+            beginFunctionType(void)
+              beginTypeVariables(<)
+                beginMetadataStar(T)
+                endMetadataStar(0)
+                handleIdentifier(T, typeVariableDeclaration)
+                beginTypeVariable(T)
+                  handleTypeVariablesDefined(num, 1)
+                  handleIdentifier(num, typeReference)
+                  handleNoTypeArguments(>)
+                  handleType(num, null)
+                endTypeVariable(>, 0, extends, null)
+              endTypeVariables(<, >)
+              handleVoidKeyword(void)
+              beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+              endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
+            endFunctionType(Function, null)
+            handleNoName())
+            handleFormalParameterWithoutValue())
+          endFormalParameter(null, null, ), null, null, FormalParameterKind.mandatory, MemberKind.GeneralizedFunctionType)
+        endFormalParameters(1, (, ), MemberKind.GeneralizedFunctionType)
+      endFunctionType(Function, null)
+    endFunctionTypeAlias(typedef, =, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleIdentifier(H3, typedefDeclaration)
+      handleNoTypeVariables(=)
+      beginFunctionType(void)
+        handleNoTypeVariables(()
+        handleVoidKeyword(void)
+        beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+          beginMetadataStar(void)
+          endMetadataStar(0)
+          beginFormalParameter(void, MemberKind.GeneralizedFunctionType, null, null, null)
+            beginFunctionType(void)
+              beginTypeVariables(<)
+                beginMetadataStar(T)
+                endMetadataStar(0)
+                handleIdentifier(T, typeVariableDeclaration)
+                beginTypeVariable(T)
+                  beginMetadataStar(S)
+                  endMetadataStar(0)
+                  handleIdentifier(S, typeVariableDeclaration)
+                  beginTypeVariable(S)
+                    handleTypeVariablesDefined(S, 2)
+                    handleNoType(S)
+                  endTypeVariable(>, 1, null, null)
+                  handleNoType(T)
+                endTypeVariable(,, 0, null, null)
+              endTypeVariables(<, >)
+              handleVoidKeyword(void)
+              beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+              endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
+            endFunctionType(Function, null)
+            handleNoName())
+            handleFormalParameterWithoutValue())
+          endFormalParameter(null, null, ), null, null, FormalParameterKind.mandatory, MemberKind.GeneralizedFunctionType)
+        endFormalParameters(1, (, ), MemberKind.GeneralizedFunctionType)
+      endFunctionType(Function, null)
+    endFunctionTypeAlias(typedef, =, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleIdentifier(H4, typedefDeclaration)
+      handleNoTypeVariables(=)
+      beginFunctionType(void)
+        handleNoTypeVariables(()
+        handleVoidKeyword(void)
+        beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+          beginMetadataStar(void)
+          endMetadataStar(0)
+          beginFormalParameter(void, MemberKind.GeneralizedFunctionType, null, null, null)
+            beginFunctionType(void)
+              beginTypeVariables(<)
+                beginMetadataStar(T)
+                endMetadataStar(0)
+                handleIdentifier(T, typeVariableDeclaration)
+                beginTypeVariable(T)
+                  beginMetadataStar(S)
+                  endMetadataStar(0)
+                  handleIdentifier(S, typeVariableDeclaration)
+                  beginTypeVariable(S)
+                    handleTypeVariablesDefined(num, 2)
+                    handleIdentifier(num, typeReference)
+                    handleNoTypeArguments(>)
+                    handleType(num, null)
+                  endTypeVariable(>, 1, extends, null)
+                  handleIdentifier(num, typeReference)
+                  handleNoTypeArguments(,)
+                  handleType(num, null)
+                endTypeVariable(,, 0, extends, null)
+              endTypeVariables(<, >)
+              handleVoidKeyword(void)
+              beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+              endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
+            endFunctionType(Function, null)
+            handleNoName())
+            handleFormalParameterWithoutValue())
+          endFormalParameter(null, null, ), null, null, FormalParameterKind.mandatory, MemberKind.GeneralizedFunctionType)
+        endFormalParameters(1, (, ), MemberKind.GeneralizedFunctionType)
+      endFunctionType(Function, null)
+    endFunctionTypeAlias(typedef, =, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleIdentifier(H5, typedefDeclaration)
+      handleNoTypeVariables(=)
+      beginFunctionType(void)
+        handleNoTypeVariables(()
+        handleVoidKeyword(void)
+        beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+          beginMetadataStar(void)
+          endMetadataStar(0)
+          beginFormalParameter(void, MemberKind.GeneralizedFunctionType, null, null, null)
+            beginFunctionType(void)
+              beginTypeVariables(<)
+                beginMetadataStar(T)
+                endMetadataStar(0)
+                handleIdentifier(T, typeVariableDeclaration)
+                beginTypeVariable(T)
+                  beginMetadataStar(S)
+                  endMetadataStar(0)
+                  handleIdentifier(S, typeVariableDeclaration)
+                  beginTypeVariable(S)
+                    handleTypeVariablesDefined(num, 2)
+                    handleIdentifier(num, typeReference)
+                    handleNoTypeArguments(>)
+                    handleType(num, null)
+                  endTypeVariable(>, 1, extends, null)
+                  handleIdentifier(S, typeReference)
+                  handleNoTypeArguments(,)
+                  handleType(S, null)
+                endTypeVariable(,, 0, extends, null)
+              endTypeVariables(<, >)
+              handleVoidKeyword(void)
+              beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+              endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
+            endFunctionType(Function, null)
+            handleNoName())
+            handleFormalParameterWithoutValue())
+          endFormalParameter(null, null, ), null, null, FormalParameterKind.mandatory, MemberKind.GeneralizedFunctionType)
+        endFormalParameters(1, (, ), MemberKind.GeneralizedFunctionType)
+      endFunctionType(Function, null)
+    endFunctionTypeAlias(typedef, =, ;)
+  endTopLevelDeclaration(typedef)
+  beginMetadataStar(typedef)
+  endMetadataStar(0)
+  beginUncategorizedTopLevelDeclaration(typedef)
+    beginFunctionTypeAlias(typedef)
+      handleIdentifier(H6, typedefDeclaration)
+      handleNoTypeVariables(=)
+      beginFunctionType(void)
+        handleNoTypeVariables(()
+        handleVoidKeyword(void)
+        beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+          beginMetadataStar(void)
+          endMetadataStar(0)
+          beginFormalParameter(void, MemberKind.GeneralizedFunctionType, null, null, null)
+            beginFunctionType(void)
+              beginTypeVariables(<)
+                beginMetadataStar(T)
+                endMetadataStar(0)
+                handleIdentifier(T, typeVariableDeclaration)
+                beginTypeVariable(T)
+                  beginMetadataStar(S)
+                  endMetadataStar(0)
+                  handleIdentifier(S, typeVariableDeclaration)
+                  beginTypeVariable(S)
+                    handleTypeVariablesDefined(T, 2)
+                    handleIdentifier(T, typeReference)
+                    handleNoTypeArguments(>)
+                    handleType(T, null)
+                  endTypeVariable(>, 1, extends, null)
+                  handleIdentifier(num, typeReference)
+                  handleNoTypeArguments(,)
+                  handleType(num, null)
+                endTypeVariable(,, 0, extends, null)
+              endTypeVariables(<, >)
+              handleVoidKeyword(void)
+              beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+              endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
+            endFunctionType(Function, null)
+            handleNoName())
+            handleFormalParameterWithoutValue())
+          endFormalParameter(null, null, ), null, null, FormalParameterKind.mandatory, MemberKind.GeneralizedFunctionType)
+        endFormalParameters(1, (, ), MemberKind.GeneralizedFunctionType)
+      endFunctionType(Function, null)
+    endFunctionTypeAlias(typedef, =, ;)
+  endTopLevelDeclaration(void)
+  beginMetadataStar(void)
+  endMetadataStar(0)
+  beginTopLevelMember(void)
+    beginFields(;)
+      beginFunctionType(void)
+        beginTypeVariables(<)
+          beginMetadataStar(T)
+          endMetadataStar(0)
+          handleIdentifier(T, typeVariableDeclaration)
+          beginTypeVariable(T)
+            handleTypeVariablesDefined(T, 1)
+            handleNoType(T)
+          endTypeVariable(>, 0, null, null)
+        endTypeVariables(<, >)
+        handleVoidKeyword(void)
+        beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+        endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
+      endFunctionType(Function, null)
+      handleIdentifier(f1, topLevelVariableDeclaration)
+      handleNoFieldInitializer(;)
+    endTopLevelFields(null, null, null, null, null, 1, void, ;)
+  endTopLevelDeclaration(void)
+  beginMetadataStar(void)
+  endMetadataStar(0)
+  beginTopLevelMember(void)
+    beginFields(;)
+      beginFunctionType(void)
+        beginTypeVariables(<)
+          beginMetadataStar(T)
+          endMetadataStar(0)
+          handleIdentifier(T, typeVariableDeclaration)
+          beginTypeVariable(T)
+            handleTypeVariablesDefined(num, 1)
+            handleIdentifier(num, typeReference)
+            handleNoTypeArguments(>)
+            handleType(num, null)
+          endTypeVariable(>, 0, extends, null)
+        endTypeVariables(<, >)
+        handleVoidKeyword(void)
+        beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+        endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
+      endFunctionType(Function, null)
+      handleIdentifier(f2, topLevelVariableDeclaration)
+      handleNoFieldInitializer(;)
+    endTopLevelFields(null, null, null, null, null, 1, void, ;)
+  endTopLevelDeclaration(void)
+  beginMetadataStar(void)
+  endMetadataStar(0)
+  beginTopLevelMember(void)
+    beginFields(;)
+      beginFunctionType(void)
+        beginTypeVariables(<)
+          beginMetadataStar(T)
+          endMetadataStar(0)
+          handleIdentifier(T, typeVariableDeclaration)
+          beginTypeVariable(T)
+            beginMetadataStar(S)
+            endMetadataStar(0)
+            handleIdentifier(S, typeVariableDeclaration)
+            beginTypeVariable(S)
+              handleTypeVariablesDefined(S, 2)
+              handleNoType(S)
+            endTypeVariable(>, 1, null, null)
+            handleNoType(T)
+          endTypeVariable(,, 0, null, null)
+        endTypeVariables(<, >)
+        handleVoidKeyword(void)
+        beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+        endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
+      endFunctionType(Function, null)
+      handleIdentifier(f3, topLevelVariableDeclaration)
+      handleNoFieldInitializer(;)
+    endTopLevelFields(null, null, null, null, null, 1, void, ;)
+  endTopLevelDeclaration(void)
+  beginMetadataStar(void)
+  endMetadataStar(0)
+  beginTopLevelMember(void)
+    beginFields(;)
+      beginFunctionType(void)
+        beginTypeVariables(<)
+          beginMetadataStar(T)
+          endMetadataStar(0)
+          handleIdentifier(T, typeVariableDeclaration)
+          beginTypeVariable(T)
+            beginMetadataStar(S)
+            endMetadataStar(0)
+            handleIdentifier(S, typeVariableDeclaration)
+            beginTypeVariable(S)
+              handleTypeVariablesDefined(num, 2)
+              handleIdentifier(num, typeReference)
+              handleNoTypeArguments(>)
+              handleType(num, null)
+            endTypeVariable(>, 1, extends, null)
+            handleIdentifier(num, typeReference)
+            handleNoTypeArguments(,)
+            handleType(num, null)
+          endTypeVariable(,, 0, extends, null)
+        endTypeVariables(<, >)
+        handleVoidKeyword(void)
+        beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+        endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
+      endFunctionType(Function, null)
+      handleIdentifier(f4, topLevelVariableDeclaration)
+      handleNoFieldInitializer(;)
+    endTopLevelFields(null, null, null, null, null, 1, void, ;)
+  endTopLevelDeclaration(void)
+  beginMetadataStar(void)
+  endMetadataStar(0)
+  beginTopLevelMember(void)
+    beginFields(;)
+      beginFunctionType(void)
+        beginTypeVariables(<)
+          beginMetadataStar(T)
+          endMetadataStar(0)
+          handleIdentifier(T, typeVariableDeclaration)
+          beginTypeVariable(T)
+            beginMetadataStar(S)
+            endMetadataStar(0)
+            handleIdentifier(S, typeVariableDeclaration)
+            beginTypeVariable(S)
+              handleTypeVariablesDefined(num, 2)
+              handleIdentifier(num, typeReference)
+              handleNoTypeArguments(>)
+              handleType(num, null)
+            endTypeVariable(>, 1, extends, null)
+            handleIdentifier(S, typeReference)
+            handleNoTypeArguments(,)
+            handleType(S, null)
+          endTypeVariable(,, 0, extends, null)
+        endTypeVariables(<, >)
+        handleVoidKeyword(void)
+        beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+        endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
+      endFunctionType(Function, null)
+      handleIdentifier(f5, topLevelVariableDeclaration)
+      handleNoFieldInitializer(;)
+    endTopLevelFields(null, null, null, null, null, 1, void, ;)
+  endTopLevelDeclaration(void)
+  beginMetadataStar(void)
+  endMetadataStar(0)
+  beginTopLevelMember(void)
+    beginFields(;)
+      beginFunctionType(void)
+        beginTypeVariables(<)
+          beginMetadataStar(T)
+          endMetadataStar(0)
+          handleIdentifier(T, typeVariableDeclaration)
+          beginTypeVariable(T)
+            beginMetadataStar(S)
+            endMetadataStar(0)
+            handleIdentifier(S, typeVariableDeclaration)
+            beginTypeVariable(S)
+              handleTypeVariablesDefined(T, 2)
+              handleIdentifier(T, typeReference)
+              handleNoTypeArguments(>)
+              handleType(T, null)
+            endTypeVariable(>, 1, extends, null)
+            handleIdentifier(num, typeReference)
+            handleNoTypeArguments(,)
+            handleType(num, null)
+          endTypeVariable(,, 0, extends, null)
+        endTypeVariables(<, >)
+        handleVoidKeyword(void)
+        beginFormalParameters((, MemberKind.GeneralizedFunctionType)
+        endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
+      endFunctionType(Function, null)
+      handleIdentifier(f6, topLevelVariableDeclaration)
+      handleNoFieldInitializer(;)
+    endTopLevelFields(null, null, null, null, null, 1, void, ;)
+  endTopLevelDeclaration(main)
+  beginMetadataStar(main)
+  endMetadataStar(0)
+  beginTopLevelMember(main)
+    beginTopLevelMethod(;, null)
+      handleNoType(;)
+      handleIdentifier(main, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
-      handleVoidKeyword(void)
-      beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-      endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
-    endFunctionType(Function, null)
-  endFunctionTypeAlias(typedef, =, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-  handleIdentifier(E2, typedefDeclaration)
-  beginTypeVariables(<)
-    beginMetadataStar(T)
-    endMetadataStar(0)
-    handleIdentifier(T, typeVariableDeclaration)
-    beginTypeVariable(T)
-      handleTypeVariablesDefined(num, 1)
-      handleIdentifier(num, typeReference)
-      handleNoTypeArguments(>)
-      handleType(num, null)
-    endTypeVariable(>, 0, extends, null)
-  endTypeVariables(<, >)
-  beginFunctionType(void)
-    handleNoTypeVariables(()
-    handleVoidKeyword(void)
-    beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-    endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
-  endFunctionType(Function, null)
-endFunctionTypeAlias(typedef, =, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleIdentifier(E3, typedefDeclaration)
-beginTypeVariables(<)
-  beginMetadataStar(T)
-  endMetadataStar(0)
-  handleIdentifier(T, typeVariableDeclaration)
-  beginTypeVariable(T)
-    beginMetadataStar(S)
-    endMetadataStar(0)
-    handleIdentifier(S, typeVariableDeclaration)
-    beginTypeVariable(S)
-      handleTypeVariablesDefined(S, 2)
-      handleNoType(S)
-    endTypeVariable(>, 1, null, null)
-    handleNoType(T)
-  endTypeVariable(,, 0, null, null)
-endTypeVariables(<, >)
-beginFunctionType(void)
-  handleNoTypeVariables(()
-  handleVoidKeyword(void)
-  beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-  endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-endFunctionTypeAlias(typedef, =, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleIdentifier(E4, typedefDeclaration)
-beginTypeVariables(<)
-beginMetadataStar(T)
-endMetadataStar(0)
-handleIdentifier(T, typeVariableDeclaration)
-beginTypeVariable(T)
-  beginMetadataStar(S)
-  endMetadataStar(0)
-  handleIdentifier(S, typeVariableDeclaration)
-  beginTypeVariable(S)
-    handleTypeVariablesDefined(num, 2)
-    handleIdentifier(num, typeReference)
-    handleNoTypeArguments(>)
-    handleType(num, null)
-  endTypeVariable(>, 1, extends, null)
-  handleIdentifier(num, typeReference)
-  handleNoTypeArguments(,)
-  handleType(num, null)
-endTypeVariable(,, 0, extends, null)
-endTypeVariables(<, >)
-beginFunctionType(void)
-handleNoTypeVariables(()
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-endFunctionTypeAlias(typedef, =, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleIdentifier(E5, typedefDeclaration)
-beginTypeVariables(<)
-beginMetadataStar(T)
-endMetadataStar(0)
-handleIdentifier(T, typeVariableDeclaration)
-beginTypeVariable(T)
-beginMetadataStar(S)
-endMetadataStar(0)
-handleIdentifier(S, typeVariableDeclaration)
-beginTypeVariable(S)
-  handleTypeVariablesDefined(num, 2)
-  handleIdentifier(num, typeReference)
-  handleNoTypeArguments(>)
-  handleType(num, null)
-endTypeVariable(>, 1, extends, null)
-handleIdentifier(S, typeReference)
-handleNoTypeArguments(,)
-handleType(S, null)
-endTypeVariable(,, 0, extends, null)
-endTypeVariables(<, >)
-beginFunctionType(void)
-handleNoTypeVariables(()
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-endFunctionTypeAlias(typedef, =, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleIdentifier(E6, typedefDeclaration)
-beginTypeVariables(<)
-beginMetadataStar(T)
-endMetadataStar(0)
-handleIdentifier(T, typeVariableDeclaration)
-beginTypeVariable(T)
-beginMetadataStar(S)
-endMetadataStar(0)
-handleIdentifier(S, typeVariableDeclaration)
-beginTypeVariable(S)
-handleTypeVariablesDefined(T, 2)
-handleIdentifier(T, typeReference)
-handleNoTypeArguments(>)
-handleType(T, null)
-endTypeVariable(>, 1, extends, null)
-handleIdentifier(num, typeReference)
-handleNoTypeArguments(,)
-handleType(num, null)
-endTypeVariable(,, 0, extends, null)
-endTypeVariables(<, >)
-beginFunctionType(void)
-handleNoTypeVariables(()
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-endFunctionTypeAlias(typedef, =, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleIdentifier(F1, typedefDeclaration)
-handleNoTypeVariables(=)
-beginFunctionType(void)
-beginTypeVariables(<)
-beginMetadataStar(T)
-endMetadataStar(0)
-handleIdentifier(T, typeVariableDeclaration)
-beginTypeVariable(T)
-handleTypeVariablesDefined(T, 1)
-handleNoType(T)
-endTypeVariable(>, 0, null, null)
-endTypeVariables(<, >)
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-endFunctionTypeAlias(typedef, =, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleIdentifier(F2, typedefDeclaration)
-handleNoTypeVariables(=)
-beginFunctionType(void)
-beginTypeVariables(<)
-beginMetadataStar(T)
-endMetadataStar(0)
-handleIdentifier(T, typeVariableDeclaration)
-beginTypeVariable(T)
-handleTypeVariablesDefined(num, 1)
-handleIdentifier(num, typeReference)
-handleNoTypeArguments(>)
-handleType(num, null)
-endTypeVariable(>, 0, extends, null)
-endTypeVariables(<, >)
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-endFunctionTypeAlias(typedef, =, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleIdentifier(F3, typedefDeclaration)
-handleNoTypeVariables(=)
-beginFunctionType(void)
-beginTypeVariables(<)
-beginMetadataStar(T)
-endMetadataStar(0)
-handleIdentifier(T, typeVariableDeclaration)
-beginTypeVariable(T)
-beginMetadataStar(S)
-endMetadataStar(0)
-handleIdentifier(S, typeVariableDeclaration)
-beginTypeVariable(S)
-handleTypeVariablesDefined(S, 2)
-handleNoType(S)
-endTypeVariable(>, 1, null, null)
-handleNoType(T)
-endTypeVariable(,, 0, null, null)
-endTypeVariables(<, >)
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-endFunctionTypeAlias(typedef, =, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleIdentifier(F4, typedefDeclaration)
-handleNoTypeVariables(=)
-beginFunctionType(void)
-beginTypeVariables(<)
-beginMetadataStar(T)
-endMetadataStar(0)
-handleIdentifier(T, typeVariableDeclaration)
-beginTypeVariable(T)
-beginMetadataStar(S)
-endMetadataStar(0)
-handleIdentifier(S, typeVariableDeclaration)
-beginTypeVariable(S)
-handleTypeVariablesDefined(num, 2)
-handleIdentifier(num, typeReference)
-handleNoTypeArguments(>)
-handleType(num, null)
-endTypeVariable(>, 1, extends, null)
-handleIdentifier(num, typeReference)
-handleNoTypeArguments(,)
-handleType(num, null)
-endTypeVariable(,, 0, extends, null)
-endTypeVariables(<, >)
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-endFunctionTypeAlias(typedef, =, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleIdentifier(F5, typedefDeclaration)
-handleNoTypeVariables(=)
-beginFunctionType(void)
-beginTypeVariables(<)
-beginMetadataStar(T)
-endMetadataStar(0)
-handleIdentifier(T, typeVariableDeclaration)
-beginTypeVariable(T)
-beginMetadataStar(S)
-endMetadataStar(0)
-handleIdentifier(S, typeVariableDeclaration)
-beginTypeVariable(S)
-handleTypeVariablesDefined(num, 2)
-handleIdentifier(num, typeReference)
-handleNoTypeArguments(>)
-handleType(num, null)
-endTypeVariable(>, 1, extends, null)
-handleIdentifier(S, typeReference)
-handleNoTypeArguments(,)
-handleType(S, null)
-endTypeVariable(,, 0, extends, null)
-endTypeVariables(<, >)
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-endFunctionTypeAlias(typedef, =, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleIdentifier(F6, typedefDeclaration)
-handleNoTypeVariables(=)
-beginFunctionType(void)
-beginTypeVariables(<)
-beginMetadataStar(T)
-endMetadataStar(0)
-handleIdentifier(T, typeVariableDeclaration)
-beginTypeVariable(T)
-beginMetadataStar(S)
-endMetadataStar(0)
-handleIdentifier(S, typeVariableDeclaration)
-beginTypeVariable(S)
-handleTypeVariablesDefined(T, 2)
-handleIdentifier(T, typeReference)
-handleNoTypeArguments(>)
-handleType(T, null)
-endTypeVariable(>, 1, extends, null)
-handleIdentifier(num, typeReference)
-handleNoTypeArguments(,)
-handleType(num, null)
-endTypeVariable(,, 0, extends, null)
-endTypeVariables(<, >)
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-endFunctionTypeAlias(typedef, =, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleIdentifier(G1, typedefDeclaration)
-beginTypeVariables(<)
-beginMetadataStar(X)
-endMetadataStar(0)
-handleIdentifier(X, typeVariableDeclaration)
-beginTypeVariable(X)
-handleTypeVariablesDefined(X, 1)
-handleNoType(X)
-endTypeVariable(>, 0, null, null)
-endTypeVariables(<, >)
-beginFunctionType(void)
-beginTypeVariables(<)
-beginMetadataStar(T)
-endMetadataStar(0)
-handleIdentifier(T, typeVariableDeclaration)
-beginTypeVariable(T)
-handleTypeVariablesDefined(X, 1)
-handleIdentifier(X, typeReference)
-handleNoTypeArguments(>)
-handleType(X, null)
-endTypeVariable(>, 0, extends, null)
-endTypeVariables(<, >)
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-endFunctionTypeAlias(typedef, =, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleIdentifier(G2, typedefDeclaration)
-beginTypeVariables(<)
-beginMetadataStar(X)
-endMetadataStar(0)
-handleIdentifier(X, typeVariableDeclaration)
-beginTypeVariable(X)
-handleTypeVariablesDefined(num, 1)
-handleIdentifier(num, typeReference)
-handleNoTypeArguments(>)
-handleType(num, null)
-endTypeVariable(>, 0, extends, null)
-endTypeVariables(<, >)
-beginFunctionType(void)
-beginTypeVariables(<)
-beginMetadataStar(T)
-endMetadataStar(0)
-handleIdentifier(T, typeVariableDeclaration)
-beginTypeVariable(T)
-handleTypeVariablesDefined(X, 1)
-handleIdentifier(X, typeReference)
-handleNoTypeArguments(>)
-handleType(X, null)
-endTypeVariable(>, 0, extends, null)
-endTypeVariables(<, >)
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-endFunctionTypeAlias(typedef, =, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleIdentifier(G3, typedefDeclaration)
-beginTypeVariables(<)
-beginMetadataStar(X)
-endMetadataStar(0)
-handleIdentifier(X, typeVariableDeclaration)
-beginTypeVariable(X)
-beginMetadataStar(Y)
-endMetadataStar(0)
-handleIdentifier(Y, typeVariableDeclaration)
-beginTypeVariable(Y)
-handleTypeVariablesDefined(Y, 2)
-handleNoType(Y)
-endTypeVariable(>, 1, null, null)
-handleNoType(X)
-endTypeVariable(,, 0, null, null)
-endTypeVariables(<, >)
-beginFunctionType(void)
-beginTypeVariables(<)
-beginMetadataStar(T)
-endMetadataStar(0)
-handleIdentifier(T, typeVariableDeclaration)
-beginTypeVariable(T)
-beginMetadataStar(S)
-endMetadataStar(0)
-handleIdentifier(S, typeVariableDeclaration)
-beginTypeVariable(S)
-handleTypeVariablesDefined(Y, 2)
-handleIdentifier(Y, typeReference)
-handleNoTypeArguments(>)
-handleType(Y, null)
-endTypeVariable(>, 1, extends, null)
-handleIdentifier(X, typeReference)
-handleNoTypeArguments(,)
-handleType(X, null)
-endTypeVariable(,, 0, extends, null)
-endTypeVariables(<, >)
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-endFunctionTypeAlias(typedef, =, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleIdentifier(G4, typedefDeclaration)
-beginTypeVariables(<)
-beginMetadataStar(X)
-endMetadataStar(0)
-handleIdentifier(X, typeVariableDeclaration)
-beginTypeVariable(X)
-beginMetadataStar(Y)
-endMetadataStar(0)
-handleIdentifier(Y, typeVariableDeclaration)
-beginTypeVariable(Y)
-handleTypeVariablesDefined(num, 2)
-handleIdentifier(num, typeReference)
-handleNoTypeArguments(>)
-handleType(num, null)
-endTypeVariable(>, 1, extends, null)
-handleIdentifier(num, typeReference)
-handleNoTypeArguments(,)
-handleType(num, null)
-endTypeVariable(,, 0, extends, null)
-endTypeVariables(<, >)
-beginFunctionType(void)
-beginTypeVariables(<)
-beginMetadataStar(T)
-endMetadataStar(0)
-handleIdentifier(T, typeVariableDeclaration)
-beginTypeVariable(T)
-beginMetadataStar(S)
-endMetadataStar(0)
-handleIdentifier(S, typeVariableDeclaration)
-beginTypeVariable(S)
-handleTypeVariablesDefined(Y, 2)
-handleIdentifier(Y, typeReference)
-handleNoTypeArguments(>)
-handleType(Y, null)
-endTypeVariable(>, 1, extends, null)
-handleIdentifier(X, typeReference)
-handleNoTypeArguments(,)
-handleType(X, null)
-endTypeVariable(,, 0, extends, null)
-endTypeVariables(<, >)
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-endFunctionTypeAlias(typedef, =, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleIdentifier(G5, typedefDeclaration)
-beginTypeVariables(<)
-beginMetadataStar(X)
-endMetadataStar(0)
-handleIdentifier(X, typeVariableDeclaration)
-beginTypeVariable(X)
-handleTypeVariablesDefined(num, 1)
-handleIdentifier(num, typeReference)
-handleNoTypeArguments(>)
-handleType(num, null)
-endTypeVariable(>, 0, extends, null)
-endTypeVariables(<, >)
-beginFunctionType(void)
-beginTypeVariables(<)
-beginMetadataStar(T)
-endMetadataStar(0)
-handleIdentifier(T, typeVariableDeclaration)
-beginTypeVariable(T)
-beginMetadataStar(S)
-endMetadataStar(0)
-handleIdentifier(S, typeVariableDeclaration)
-beginTypeVariable(S)
-handleTypeVariablesDefined(X, 2)
-handleIdentifier(X, typeReference)
-handleNoTypeArguments(>)
-handleType(X, null)
-endTypeVariable(>, 1, extends, null)
-handleIdentifier(S, typeReference)
-handleNoTypeArguments(,)
-handleType(S, null)
-endTypeVariable(,, 0, extends, null)
-endTypeVariables(<, >)
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-endFunctionTypeAlias(typedef, =, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleIdentifier(G6, typedefDeclaration)
-beginTypeVariables(<)
-beginMetadataStar(X)
-endMetadataStar(0)
-handleIdentifier(X, typeVariableDeclaration)
-beginTypeVariable(X)
-handleTypeVariablesDefined(num, 1)
-handleIdentifier(num, typeReference)
-handleNoTypeArguments(>)
-handleType(num, null)
-endTypeVariable(>, 0, extends, null)
-endTypeVariables(<, >)
-beginFunctionType(void)
-beginTypeVariables(<)
-beginMetadataStar(T)
-endMetadataStar(0)
-handleIdentifier(T, typeVariableDeclaration)
-beginTypeVariable(T)
-beginMetadataStar(S)
-endMetadataStar(0)
-handleIdentifier(S, typeVariableDeclaration)
-beginTypeVariable(S)
-handleTypeVariablesDefined(T, 2)
-handleIdentifier(T, typeReference)
-handleNoTypeArguments(>)
-handleType(T, null)
-endTypeVariable(>, 1, extends, null)
-handleIdentifier(X, typeReference)
-handleNoTypeArguments(,)
-handleType(X, null)
-endTypeVariable(,, 0, extends, null)
-endTypeVariables(<, >)
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-endFunctionTypeAlias(typedef, =, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleIdentifier(H1, typedefDeclaration)
-handleNoTypeVariables(=)
-beginFunctionType(void)
-handleNoTypeVariables(()
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-beginMetadataStar(void)
-endMetadataStar(0)
-beginFormalParameter(void, MemberKind.GeneralizedFunctionType, null, null, null)
-beginFunctionType(void)
-beginTypeVariables(<)
-beginMetadataStar(T)
-endMetadataStar(0)
-handleIdentifier(T, typeVariableDeclaration)
-beginTypeVariable(T)
-handleTypeVariablesDefined(T, 1)
-handleNoType(T)
-endTypeVariable(>, 0, null, null)
-endTypeVariables(<, >)
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-handleNoName())
-handleFormalParameterWithoutValue())
-endFormalParameter(null, null, ), null, null, FormalParameterKind.mandatory, MemberKind.GeneralizedFunctionType)
-endFormalParameters(1, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-endFunctionTypeAlias(typedef, =, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleIdentifier(H2, typedefDeclaration)
-handleNoTypeVariables(=)
-beginFunctionType(void)
-handleNoTypeVariables(()
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-beginMetadataStar(void)
-endMetadataStar(0)
-beginFormalParameter(void, MemberKind.GeneralizedFunctionType, null, null, null)
-beginFunctionType(void)
-beginTypeVariables(<)
-beginMetadataStar(T)
-endMetadataStar(0)
-handleIdentifier(T, typeVariableDeclaration)
-beginTypeVariable(T)
-handleTypeVariablesDefined(num, 1)
-handleIdentifier(num, typeReference)
-handleNoTypeArguments(>)
-handleType(num, null)
-endTypeVariable(>, 0, extends, null)
-endTypeVariables(<, >)
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-handleNoName())
-handleFormalParameterWithoutValue())
-endFormalParameter(null, null, ), null, null, FormalParameterKind.mandatory, MemberKind.GeneralizedFunctionType)
-endFormalParameters(1, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-endFunctionTypeAlias(typedef, =, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleIdentifier(H3, typedefDeclaration)
-handleNoTypeVariables(=)
-beginFunctionType(void)
-handleNoTypeVariables(()
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-beginMetadataStar(void)
-endMetadataStar(0)
-beginFormalParameter(void, MemberKind.GeneralizedFunctionType, null, null, null)
-beginFunctionType(void)
-beginTypeVariables(<)
-beginMetadataStar(T)
-endMetadataStar(0)
-handleIdentifier(T, typeVariableDeclaration)
-beginTypeVariable(T)
-beginMetadataStar(S)
-endMetadataStar(0)
-handleIdentifier(S, typeVariableDeclaration)
-beginTypeVariable(S)
-handleTypeVariablesDefined(S, 2)
-handleNoType(S)
-endTypeVariable(>, 1, null, null)
-handleNoType(T)
-endTypeVariable(,, 0, null, null)
-endTypeVariables(<, >)
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-handleNoName())
-handleFormalParameterWithoutValue())
-endFormalParameter(null, null, ), null, null, FormalParameterKind.mandatory, MemberKind.GeneralizedFunctionType)
-endFormalParameters(1, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-endFunctionTypeAlias(typedef, =, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleIdentifier(H4, typedefDeclaration)
-handleNoTypeVariables(=)
-beginFunctionType(void)
-handleNoTypeVariables(()
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-beginMetadataStar(void)
-endMetadataStar(0)
-beginFormalParameter(void, MemberKind.GeneralizedFunctionType, null, null, null)
-beginFunctionType(void)
-beginTypeVariables(<)
-beginMetadataStar(T)
-endMetadataStar(0)
-handleIdentifier(T, typeVariableDeclaration)
-beginTypeVariable(T)
-beginMetadataStar(S)
-endMetadataStar(0)
-handleIdentifier(S, typeVariableDeclaration)
-beginTypeVariable(S)
-handleTypeVariablesDefined(num, 2)
-handleIdentifier(num, typeReference)
-handleNoTypeArguments(>)
-handleType(num, null)
-endTypeVariable(>, 1, extends, null)
-handleIdentifier(num, typeReference)
-handleNoTypeArguments(,)
-handleType(num, null)
-endTypeVariable(,, 0, extends, null)
-endTypeVariables(<, >)
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-handleNoName())
-handleFormalParameterWithoutValue())
-endFormalParameter(null, null, ), null, null, FormalParameterKind.mandatory, MemberKind.GeneralizedFunctionType)
-endFormalParameters(1, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-endFunctionTypeAlias(typedef, =, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleIdentifier(H5, typedefDeclaration)
-handleNoTypeVariables(=)
-beginFunctionType(void)
-handleNoTypeVariables(()
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-beginMetadataStar(void)
-endMetadataStar(0)
-beginFormalParameter(void, MemberKind.GeneralizedFunctionType, null, null, null)
-beginFunctionType(void)
-beginTypeVariables(<)
-beginMetadataStar(T)
-endMetadataStar(0)
-handleIdentifier(T, typeVariableDeclaration)
-beginTypeVariable(T)
-beginMetadataStar(S)
-endMetadataStar(0)
-handleIdentifier(S, typeVariableDeclaration)
-beginTypeVariable(S)
-handleTypeVariablesDefined(num, 2)
-handleIdentifier(num, typeReference)
-handleNoTypeArguments(>)
-handleType(num, null)
-endTypeVariable(>, 1, extends, null)
-handleIdentifier(S, typeReference)
-handleNoTypeArguments(,)
-handleType(S, null)
-endTypeVariable(,, 0, extends, null)
-endTypeVariables(<, >)
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-handleNoName())
-handleFormalParameterWithoutValue())
-endFormalParameter(null, null, ), null, null, FormalParameterKind.mandatory, MemberKind.GeneralizedFunctionType)
-endFormalParameters(1, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-endFunctionTypeAlias(typedef, =, ;)
-endTopLevelDeclaration(typedef)
-beginMetadataStar(typedef)
-endMetadataStar(0)
-beginFunctionTypeAlias(typedef)
-handleIdentifier(H6, typedefDeclaration)
-handleNoTypeVariables(=)
-beginFunctionType(void)
-handleNoTypeVariables(()
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-beginMetadataStar(void)
-endMetadataStar(0)
-beginFormalParameter(void, MemberKind.GeneralizedFunctionType, null, null, null)
-beginFunctionType(void)
-beginTypeVariables(<)
-beginMetadataStar(T)
-endMetadataStar(0)
-handleIdentifier(T, typeVariableDeclaration)
-beginTypeVariable(T)
-beginMetadataStar(S)
-endMetadataStar(0)
-handleIdentifier(S, typeVariableDeclaration)
-beginTypeVariable(S)
-handleTypeVariablesDefined(T, 2)
-handleIdentifier(T, typeReference)
-handleNoTypeArguments(>)
-handleType(T, null)
-endTypeVariable(>, 1, extends, null)
-handleIdentifier(num, typeReference)
-handleNoTypeArguments(,)
-handleType(num, null)
-endTypeVariable(,, 0, extends, null)
-endTypeVariables(<, >)
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-handleNoName())
-handleFormalParameterWithoutValue())
-endFormalParameter(null, null, ), null, null, FormalParameterKind.mandatory, MemberKind.GeneralizedFunctionType)
-endFormalParameters(1, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-endFunctionTypeAlias(typedef, =, ;)
-endTopLevelDeclaration(void)
-beginMetadataStar(void)
-endMetadataStar(0)
-beginTopLevelMember(void)
-beginFunctionType(void)
-beginTypeVariables(<)
-beginMetadataStar(T)
-endMetadataStar(0)
-handleIdentifier(T, typeVariableDeclaration)
-beginTypeVariable(T)
-handleTypeVariablesDefined(T, 1)
-handleNoType(T)
-endTypeVariable(>, 0, null, null)
-endTypeVariables(<, >)
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-handleIdentifier(f1, topLevelVariableDeclaration)
-handleNoFieldInitializer(;)
-endTopLevelFields(null, null, null, null, null, 1, void, ;)
-endTopLevelDeclaration(void)
-beginMetadataStar(void)
-endMetadataStar(0)
-beginTopLevelMember(void)
-beginFunctionType(void)
-beginTypeVariables(<)
-beginMetadataStar(T)
-endMetadataStar(0)
-handleIdentifier(T, typeVariableDeclaration)
-beginTypeVariable(T)
-handleTypeVariablesDefined(num, 1)
-handleIdentifier(num, typeReference)
-handleNoTypeArguments(>)
-handleType(num, null)
-endTypeVariable(>, 0, extends, null)
-endTypeVariables(<, >)
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-handleIdentifier(f2, topLevelVariableDeclaration)
-handleNoFieldInitializer(;)
-endTopLevelFields(null, null, null, null, null, 1, void, ;)
-endTopLevelDeclaration(void)
-beginMetadataStar(void)
-endMetadataStar(0)
-beginTopLevelMember(void)
-beginFunctionType(void)
-beginTypeVariables(<)
-beginMetadataStar(T)
-endMetadataStar(0)
-handleIdentifier(T, typeVariableDeclaration)
-beginTypeVariable(T)
-beginMetadataStar(S)
-endMetadataStar(0)
-handleIdentifier(S, typeVariableDeclaration)
-beginTypeVariable(S)
-handleTypeVariablesDefined(S, 2)
-handleNoType(S)
-endTypeVariable(>, 1, null, null)
-handleNoType(T)
-endTypeVariable(,, 0, null, null)
-endTypeVariables(<, >)
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-handleIdentifier(f3, topLevelVariableDeclaration)
-handleNoFieldInitializer(;)
-endTopLevelFields(null, null, null, null, null, 1, void, ;)
-endTopLevelDeclaration(void)
-beginMetadataStar(void)
-endMetadataStar(0)
-beginTopLevelMember(void)
-beginFunctionType(void)
-beginTypeVariables(<)
-beginMetadataStar(T)
-endMetadataStar(0)
-handleIdentifier(T, typeVariableDeclaration)
-beginTypeVariable(T)
-beginMetadataStar(S)
-endMetadataStar(0)
-handleIdentifier(S, typeVariableDeclaration)
-beginTypeVariable(S)
-handleTypeVariablesDefined(num, 2)
-handleIdentifier(num, typeReference)
-handleNoTypeArguments(>)
-handleType(num, null)
-endTypeVariable(>, 1, extends, null)
-handleIdentifier(num, typeReference)
-handleNoTypeArguments(,)
-handleType(num, null)
-endTypeVariable(,, 0, extends, null)
-endTypeVariables(<, >)
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-handleIdentifier(f4, topLevelVariableDeclaration)
-handleNoFieldInitializer(;)
-endTopLevelFields(null, null, null, null, null, 1, void, ;)
-endTopLevelDeclaration(void)
-beginMetadataStar(void)
-endMetadataStar(0)
-beginTopLevelMember(void)
-beginFunctionType(void)
-beginTypeVariables(<)
-beginMetadataStar(T)
-endMetadataStar(0)
-handleIdentifier(T, typeVariableDeclaration)
-beginTypeVariable(T)
-beginMetadataStar(S)
-endMetadataStar(0)
-handleIdentifier(S, typeVariableDeclaration)
-beginTypeVariable(S)
-handleTypeVariablesDefined(num, 2)
-handleIdentifier(num, typeReference)
-handleNoTypeArguments(>)
-handleType(num, null)
-endTypeVariable(>, 1, extends, null)
-handleIdentifier(S, typeReference)
-handleNoTypeArguments(,)
-handleType(S, null)
-endTypeVariable(,, 0, extends, null)
-endTypeVariables(<, >)
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-handleIdentifier(f5, topLevelVariableDeclaration)
-handleNoFieldInitializer(;)
-endTopLevelFields(null, null, null, null, null, 1, void, ;)
-endTopLevelDeclaration(void)
-beginMetadataStar(void)
-endMetadataStar(0)
-beginTopLevelMember(void)
-beginFunctionType(void)
-beginTypeVariables(<)
-beginMetadataStar(T)
-endMetadataStar(0)
-handleIdentifier(T, typeVariableDeclaration)
-beginTypeVariable(T)
-beginMetadataStar(S)
-endMetadataStar(0)
-handleIdentifier(S, typeVariableDeclaration)
-beginTypeVariable(S)
-handleTypeVariablesDefined(T, 2)
-handleIdentifier(T, typeReference)
-handleNoTypeArguments(>)
-handleType(T, null)
-endTypeVariable(>, 1, extends, null)
-handleIdentifier(num, typeReference)
-handleNoTypeArguments(,)
-handleType(num, null)
-endTypeVariable(,, 0, extends, null)
-endTypeVariables(<, >)
-handleVoidKeyword(void)
-beginFormalParameters((, MemberKind.GeneralizedFunctionType)
-endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
-endFunctionType(Function, null)
-handleIdentifier(f6, topLevelVariableDeclaration)
-handleNoFieldInitializer(;)
-endTopLevelFields(null, null, null, null, null, 1, void, ;)
-endTopLevelDeclaration(main)
-beginMetadataStar(main)
-endMetadataStar(0)
-beginTopLevelMember(main)
-beginTopLevelMethod(;, null)
-handleNoType(;)
-handleIdentifier(main, topLevelFunctionDeclaration)
-handleNoTypeVariables(()
-beginFormalParameters((, MemberKind.TopLevelMethod)
-endFormalParameters(0, (, ), MemberKind.TopLevelMethod)
-handleAsyncModifier(null, null)
-beginBlockFunctionBody({)
-endBlockFunctionBody(0, {, })
-endTopLevelMethod(main, null, })
-endTopLevelDeclaration()
+      beginFormalParameters((, MemberKind.TopLevelMethod)
+      endFormalParameters(0, (, ), MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      beginBlockFunctionBody({)
+      endBlockFunctionBody(0, {, })
+    endTopLevelMethod(main, null, })
+  endTopLevelDeclaration()
 endCompilationUnit(31, )
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 7cb72fd..916c8ba 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
@@ -9,6 +9,7 @@
     parseTopLevelKeywordDeclaration(, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           listener: handleIdentifier(E1, typedefDeclaration)
@@ -39,6 +40,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           listener: handleIdentifier(E2, typedefDeclaration)
@@ -73,6 +75,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           listener: handleIdentifier(E3, typedefDeclaration)
@@ -113,6 +116,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           listener: handleIdentifier(E4, typedefDeclaration)
@@ -157,6 +161,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           listener: handleIdentifier(E5, typedefDeclaration)
@@ -201,6 +206,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           listener: handleIdentifier(E6, typedefDeclaration)
@@ -245,6 +251,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           listener: handleIdentifier(F1, typedefDeclaration)
@@ -275,6 +282,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           listener: handleIdentifier(F2, typedefDeclaration)
@@ -309,6 +317,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           listener: handleIdentifier(F3, typedefDeclaration)
@@ -349,6 +358,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           listener: handleIdentifier(F4, typedefDeclaration)
@@ -393,6 +403,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           listener: handleIdentifier(F5, typedefDeclaration)
@@ -437,6 +448,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           listener: handleIdentifier(F6, typedefDeclaration)
@@ -481,6 +493,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           listener: handleIdentifier(G1, typedefDeclaration)
@@ -523,6 +536,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           listener: handleIdentifier(G2, typedefDeclaration)
@@ -569,6 +583,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           listener: handleIdentifier(G3, typedefDeclaration)
@@ -631,6 +646,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           listener: handleIdentifier(G4, typedefDeclaration)
@@ -697,6 +713,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           listener: handleIdentifier(G5, typedefDeclaration)
@@ -753,6 +770,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           listener: handleIdentifier(G6, typedefDeclaration)
@@ -809,6 +827,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           listener: handleIdentifier(H1, typedefDeclaration)
@@ -855,6 +874,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           listener: handleIdentifier(H2, typedefDeclaration)
@@ -905,6 +925,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           listener: handleIdentifier(H3, typedefDeclaration)
@@ -961,6 +982,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           listener: handleIdentifier(H4, typedefDeclaration)
@@ -1021,6 +1043,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           listener: handleIdentifier(H5, typedefDeclaration)
@@ -1081,6 +1104,7 @@
     parseTopLevelKeywordDeclaration(;, typedef, Instance of 'DirectiveContext')
       parseTopLevelKeywordModifiers(;, typedef)
       parseTypedef(typedef)
+        listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           listener: handleIdentifier(H6, typedefDeclaration)
@@ -1141,6 +1165,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(void)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'ComplexTypeInfo', f1, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: beginFunctionType(void)
         listener: beginTypeVariables(<)
         listener: beginMetadataStar(T)
@@ -1170,6 +1195,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(void)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'ComplexTypeInfo', f2, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: beginFunctionType(void)
         listener: beginTypeVariables(<)
         parseMetadataStar(<)
@@ -1203,6 +1229,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(void)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'ComplexTypeInfo', f3, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: beginFunctionType(void)
         listener: beginTypeVariables(<)
         parseMetadataStar(<)
@@ -1242,6 +1269,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(void)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'ComplexTypeInfo', f4, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: beginFunctionType(void)
         listener: beginTypeVariables(<)
         parseMetadataStar(<)
@@ -1285,6 +1313,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(void)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'ComplexTypeInfo', f5, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: beginFunctionType(void)
         listener: beginTypeVariables(<)
         parseMetadataStar(<)
@@ -1328,6 +1357,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(void)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'ComplexTypeInfo', f6, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: beginFunctionType(void)
         listener: beginTypeVariables(<)
         parseMetadataStar(<)
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 9c8e9bd..5d40379 100644
--- a/pkg/front_end/parser_testcases/general/issue_41121.dart.expect
+++ b/pkg/front_end/parser_testcases/general/issue_41121.dart.expect
@@ -56,248 +56,249 @@
         beginMetadataStar(Configuration)
         endMetadataStar(0)
         beginMember()
-          handleIdentifier(Configuration, typeReference)
-          handleNoTypeArguments(_configuration)
-          handleType(Configuration, null)
-          handleIdentifier(_configuration, fieldDeclaration)
-          handleNoFieldInitializer(;)
-        endClassFields(null, null, null, null, null, null, 1, Configuration, ;)
-      endMember()
-      beginMetadataStar(ConfigurationService)
-      endMetadataStar(0)
-      beginMember()
-        beginMethod(null, null, null, null, null, ConfigurationService)
-          handleNoType(;)
-          handleIdentifier(ConfigurationService, methodDeclaration)
-          handleNoTypeVariables(()
-          beginFormalParameters((, MemberKind.NonStaticMethod)
-            beginMetadataStar(Configuration)
-            endMetadataStar(0)
-            beginFormalParameter(Configuration, MemberKind.NonStaticMethod, null, null, null)
-              handleIdentifier(Configuration, typeReference)
-              handleNoTypeArguments(configuration)
-              handleType(Configuration, null)
-              handleIdentifier(configuration, formalParameterDeclaration)
-              handleFormalParameterWithoutValue())
-            endFormalParameter(null, null, configuration, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
-          endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
-          beginInitializers(:)
-            beginInitializer(assert)
-              beginAssert(assert, Assert.Initializer)
-                handleIdentifier(configuration, expression)
-                handleNoTypeArguments(!=)
-                handleNoArguments(!=)
-                handleSend(configuration, !=)
-                beginBinaryExpression(!=)
-                handleLiteralNull(null)
-                endBinaryExpression(!=)
-              endAssert(assert, Assert.Initializer, (, null, ,)
-            endInitializer(,)
-            beginInitializer(_configuration)
-              handleIdentifier(_configuration, expression)
-              handleNoTypeArguments(=)
-              handleNoArguments(=)
-              handleSend(_configuration, =)
-              handleIdentifier(configuration, expression)
-              handleNoTypeArguments({)
-              handleNoArguments({)
-              handleSend(configuration, {)
-              handleAssignmentExpression(=)
-            endInitializer({)
-          endInitializers(2, :, {)
-          handleAsyncModifier(null, null)
-          beginBlockFunctionBody({)
-          endBlockFunctionBody(0, {, })
-        endClassConstructor(null, ConfigurationService, (, :, })
-      endMember()
-      beginMetadataStar(void)
-      endMetadataStar(0)
-      beginMember()
-        beginMethod(null, null, null, null, set, configuration)
-          handleVoidKeyword(void)
-          handleIdentifier(configuration, methodDeclaration)
-          handleNoTypeVariables(()
-          beginFormalParameters((, MemberKind.NonStaticMethod)
-            beginMetadataStar(Configuration)
-            endMetadataStar(0)
-            beginFormalParameter(Configuration, MemberKind.NonStaticMethod, null, null, null)
-              handleIdentifier(Configuration, typeReference)
-              handleNoTypeArguments(configuration)
-              handleType(Configuration, null)
-              handleIdentifier(configuration, formalParameterDeclaration)
-              handleFormalParameterWithoutValue())
-            endFormalParameter(null, null, configuration, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
-          endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
-          beginInitializers(:)
-            beginInitializer(assert)
-              beginAssert(assert, Assert.Initializer)
-                handleIdentifier(configuration, expression)
-                handleNoTypeArguments(!=)
-                handleNoArguments(!=)
-                handleSend(configuration, !=)
-                beginBinaryExpression(!=)
-                handleLiteralNull(null)
-                endBinaryExpression(!=)
-              endAssert(assert, Assert.Initializer, (, null, ,)
-            endInitializer(,)
-            beginInitializer(_configuration)
-              handleIdentifier(_configuration, expression)
-              handleNoTypeArguments(=)
-              handleNoArguments(=)
-              handleSend(_configuration, =)
-              handleIdentifier(configuration, expression)
-              handleNoTypeArguments({)
-              handleNoArguments({)
-              handleSend(configuration, {)
-              handleAssignmentExpression(=)
-            endInitializer({)
-          endInitializers(2, :, {)
-          handleAsyncModifier(null, null)
-          beginBlockFunctionBody({)
-          endBlockFunctionBody(0, {, })
-          handleRecoverableError(ConstructorWithWrongName, configuration, configuration)
-          handleRecoverableError(SetterConstructor, set, set)
-          handleRecoverableError(ConstructorWithReturnType, void, void)
-        endClassConstructor(set, void, (, :, })
-      endMember()
-      beginMetadataStar(Configuration)
-      endMetadataStar(0)
-      beginMember()
-        beginMethod(null, null, null, null, get, configuration)
-          handleIdentifier(Configuration, typeReference)
-          handleNoTypeArguments(get)
-          handleType(Configuration, null)
-          handleIdentifier(configuration, methodDeclaration)
-          handleNoTypeVariables(:)
-          handleRecoverableError(MissingMethodParameters, configuration, configuration)
-          beginFormalParameters((, MemberKind.NonStaticMethod)
-          endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
-          beginInitializers(:)
-            beginInitializer(assert)
-              beginAssert(assert, Assert.Initializer)
+          beginFields({)
+            handleIdentifier(Configuration, typeReference)
+            handleNoTypeArguments(_configuration)
+            handleType(Configuration, null)
+            handleIdentifier(_configuration, fieldDeclaration)
+            handleNoFieldInitializer(;)
+          endClassFields(null, null, null, null, null, null, 1, Configuration, ;)
+        endMember()
+        beginMetadataStar(ConfigurationService)
+        endMetadataStar(0)
+        beginMember()
+          beginMethod(null, null, null, null, null, ConfigurationService)
+            handleNoType(;)
+            handleIdentifier(ConfigurationService, methodDeclaration)
+            handleNoTypeVariables(()
+            beginFormalParameters((, MemberKind.NonStaticMethod)
+              beginMetadataStar(Configuration)
+              endMetadataStar(0)
+              beginFormalParameter(Configuration, MemberKind.NonStaticMethod, null, null, null)
+                handleIdentifier(Configuration, typeReference)
+                handleNoTypeArguments(configuration)
+                handleType(Configuration, null)
+                handleIdentifier(configuration, formalParameterDeclaration)
+                handleFormalParameterWithoutValue())
+              endFormalParameter(null, null, configuration, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+            endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+            beginInitializers(:)
+              beginInitializer(assert)
+                beginAssert(assert, Assert.Initializer)
+                  handleIdentifier(configuration, expression)
+                  handleNoTypeArguments(!=)
+                  handleNoArguments(!=)
+                  handleSend(configuration, !=)
+                  beginBinaryExpression(!=)
+                    handleLiteralNull(null)
+                  endBinaryExpression(!=)
+                endAssert(assert, Assert.Initializer, (, null, ,)
+              endInitializer(,)
+              beginInitializer(_configuration)
                 handleIdentifier(_configuration, expression)
-                handleNoTypeArguments(!=)
-                handleNoArguments(!=)
-                handleSend(_configuration, !=)
-                beginBinaryExpression(!=)
+                handleNoTypeArguments(=)
+                handleNoArguments(=)
+                handleSend(_configuration, =)
+                handleIdentifier(configuration, expression)
+                handleNoTypeArguments({)
+                handleNoArguments({)
+                handleSend(configuration, {)
+                handleAssignmentExpression(=)
+              endInitializer({)
+            endInitializers(2, :, {)
+            handleAsyncModifier(null, null)
+            beginBlockFunctionBody({)
+            endBlockFunctionBody(0, {, })
+          endClassConstructor(null, ConfigurationService, (, :, })
+        endMember()
+        beginMetadataStar(void)
+        endMetadataStar(0)
+        beginMember()
+          beginMethod(null, null, null, null, set, configuration)
+            handleVoidKeyword(void)
+            handleIdentifier(configuration, methodDeclaration)
+            handleNoTypeVariables(()
+            beginFormalParameters((, MemberKind.NonStaticMethod)
+              beginMetadataStar(Configuration)
+              endMetadataStar(0)
+              beginFormalParameter(Configuration, MemberKind.NonStaticMethod, null, null, null)
+                handleIdentifier(Configuration, typeReference)
+                handleNoTypeArguments(configuration)
+                handleType(Configuration, null)
+                handleIdentifier(configuration, formalParameterDeclaration)
+                handleFormalParameterWithoutValue())
+              endFormalParameter(null, null, configuration, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+            endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+            beginInitializers(:)
+              beginInitializer(assert)
+                beginAssert(assert, Assert.Initializer)
+                  handleIdentifier(configuration, expression)
+                  handleNoTypeArguments(!=)
+                  handleNoArguments(!=)
+                  handleSend(configuration, !=)
+                  beginBinaryExpression(!=)
+                    handleLiteralNull(null)
+                  endBinaryExpression(!=)
+                endAssert(assert, Assert.Initializer, (, null, ,)
+              endInitializer(,)
+              beginInitializer(_configuration)
+                handleIdentifier(_configuration, expression)
+                handleNoTypeArguments(=)
+                handleNoArguments(=)
+                handleSend(_configuration, =)
+                handleIdentifier(configuration, expression)
+                handleNoTypeArguments({)
+                handleNoArguments({)
+                handleSend(configuration, {)
+                handleAssignmentExpression(=)
+              endInitializer({)
+            endInitializers(2, :, {)
+            handleAsyncModifier(null, null)
+            beginBlockFunctionBody({)
+            endBlockFunctionBody(0, {, })
+            handleRecoverableError(ConstructorWithWrongName, configuration, configuration)
+            handleRecoverableError(SetterConstructor, set, set)
+            handleRecoverableError(ConstructorWithReturnType, void, void)
+          endClassConstructor(set, void, (, :, })
+        endMember()
+        beginMetadataStar(Configuration)
+        endMetadataStar(0)
+        beginMember()
+          beginMethod(null, null, null, null, get, configuration)
+            handleIdentifier(Configuration, typeReference)
+            handleNoTypeArguments(get)
+            handleType(Configuration, null)
+            handleIdentifier(configuration, methodDeclaration)
+            handleNoTypeVariables(:)
+            handleRecoverableError(MissingMethodParameters, configuration, configuration)
+            beginFormalParameters((, MemberKind.NonStaticMethod)
+            endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+            beginInitializers(:)
+              beginInitializer(assert)
+                beginAssert(assert, Assert.Initializer)
+                  handleIdentifier(_configuration, expression)
+                  handleNoTypeArguments(!=)
+                  handleNoArguments(!=)
+                  handleSend(_configuration, !=)
+                  beginBinaryExpression(!=)
+                    handleLiteralNull(null)
+                  endBinaryExpression(!=)
+                endAssert(assert, Assert.Initializer, (, null, ,)
+              endInitializer(,)
+              beginInitializer(_configuration)
+                handleIdentifier(_configuration, expression)
+                handleNoTypeArguments(=)
+                handleNoArguments(=)
+                handleSend(_configuration, =)
+                handleIdentifier(_configuration, expression)
+                handleNoTypeArguments(.)
+                handleNoArguments(.)
+                handleSend(_configuration, .)
+                handleIdentifier(foo, expressionContinuation)
+                handleNoTypeArguments({)
+                handleNoArguments({)
+                handleSend(foo, {)
+                handleEndingBinaryExpression(.)
+                handleAssignmentExpression(=)
+              endInitializer({)
+            endInitializers(2, :, {)
+            handleAsyncModifier(null, null)
+            beginBlockFunctionBody({)
+              beginReturnStatement(return)
+                handleIdentifier(_configuration, expression)
+                handleNoTypeArguments(;)
+                handleNoArguments(;)
+                handleSend(_configuration, ;)
+              endReturnStatement(true, return, ;)
+            endBlockFunctionBody(1, {, })
+            handleRecoverableError(ConstructorWithWrongName, configuration, configuration)
+            handleRecoverableError(GetterConstructor, get, get)
+            handleRecoverableError(ConstructorWithReturnType, Configuration, Configuration)
+          endClassConstructor(get, Configuration, (, :, })
+        endMember()
+        beginMetadataStar(void)
+        endMetadataStar(0)
+        beginMember()
+          beginMethod(null, null, null, null, null, method)
+            handleVoidKeyword(void)
+            handleIdentifier(method, methodDeclaration)
+            handleNoTypeVariables(()
+            beginFormalParameters((, MemberKind.NonStaticMethod)
+            endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+            beginInitializers(:)
+              beginInitializer(_configuration)
+                handleIdentifier(_configuration, expression)
+                handleNoTypeArguments(=)
+                handleNoArguments(=)
+                handleSend(_configuration, =)
                 handleLiteralNull(null)
-                endBinaryExpression(!=)
-              endAssert(assert, Assert.Initializer, (, null, ,)
-            endInitializer(,)
-            beginInitializer(_configuration)
-              handleIdentifier(_configuration, expression)
-              handleNoTypeArguments(=)
-              handleNoArguments(=)
-              handleSend(_configuration, =)
-              handleIdentifier(_configuration, expression)
-              handleNoTypeArguments(.)
-              handleNoArguments(.)
-              handleSend(_configuration, .)
-              handleIdentifier(foo, expressionContinuation)
-              handleNoTypeArguments({)
-              handleNoArguments({)
-              handleSend(foo, {)
-              endBinaryExpression(.)
-              handleAssignmentExpression(=)
-            endInitializer({)
-          endInitializers(2, :, {)
-          handleAsyncModifier(null, null)
-          beginBlockFunctionBody({)
-            beginReturnStatement(return)
-              handleIdentifier(_configuration, expression)
-              handleNoTypeArguments(;)
-              handleNoArguments(;)
-              handleSend(_configuration, ;)
-            endReturnStatement(true, return, ;)
-          endBlockFunctionBody(1, {, })
-          handleRecoverableError(ConstructorWithWrongName, configuration, configuration)
-          handleRecoverableError(GetterConstructor, get, get)
-          handleRecoverableError(ConstructorWithReturnType, Configuration, Configuration)
-        endClassConstructor(get, Configuration, (, :, })
-      endMember()
-      beginMetadataStar(void)
-      endMetadataStar(0)
-      beginMember()
-        beginMethod(null, null, null, null, null, method)
-          handleVoidKeyword(void)
-          handleIdentifier(method, methodDeclaration)
-          handleNoTypeVariables(()
-          beginFormalParameters((, MemberKind.NonStaticMethod)
-          endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
-          beginInitializers(:)
-            beginInitializer(_configuration)
-              handleIdentifier(_configuration, expression)
-              handleNoTypeArguments(=)
-              handleNoArguments(=)
-              handleSend(_configuration, =)
-              handleLiteralNull(null)
-              handleAssignmentExpression(=)
-            endInitializer({)
-          endInitializers(1, :, {)
-          handleAsyncModifier(null, null)
-          beginBlockFunctionBody({)
-          endBlockFunctionBody(0, {, })
-          handleRecoverableError(ConstructorWithWrongName, method, method)
-          handleRecoverableError(ConstructorWithReturnType, void, void)
-        endClassConstructor(null, void, (, :, })
-      endMember()
-      beginMetadataStar(Foo)
-      endMetadataStar(0)
-      beginMember()
-        beginMethod(null, null, null, null, null, Foo)
-          handleNoType(})
-          handleIdentifier(Foo, methodDeclaration)
-          handleNoTypeVariables(()
-          beginFormalParameters((, MemberKind.NonStaticMethod)
-          endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
-          beginInitializers(:)
-            beginInitializer(_configuration)
-              handleIdentifier(_configuration, expression)
-              handleNoTypeArguments(=)
-              handleNoArguments(=)
-              handleSend(_configuration, =)
-              handleLiteralNull(null)
-              handleAssignmentExpression(=)
-            endInitializer({)
-          endInitializers(1, :, {)
-          handleAsyncModifier(null, null)
-          beginBlockFunctionBody({)
-          endBlockFunctionBody(0, {, })
-          handleRecoverableError(ConstructorWithWrongName, Foo, Foo)
-        endClassConstructor(null, Foo, (, :, })
-      endMember()
-    endClassOrMixinBody(DeclarationKind.Class, 6, {, })
-  endClassDeclaration(class, })
-endTopLevelDeclaration(class)
-beginMetadataStar(class)
-endMetadataStar(0)
-beginClassOrNamedMixinApplicationPrelude(class)
-  handleIdentifier(Configuration, classOrMixinDeclaration)
-  handleNoTypeVariables({)
-  beginClassDeclaration(class, null, Configuration)
-    handleNoType(Configuration)
-    handleClassExtends(null, 1)
-    handleClassNoWithClause()
-    handleClassOrMixinImplements(null, 0)
-    handleClassHeader(class, class, null)
-    beginClassOrMixinBody(DeclarationKind.Class, {)
-      beginMetadataStar(Configuration)
-      endMetadataStar(0)
-      beginMember()
-        beginMethod(null, null, null, null, get, foo)
-          handleIdentifier(Configuration, typeReference)
-          handleNoTypeArguments(get)
-          handleType(Configuration, null)
-          handleIdentifier(foo, methodDeclaration)
-          handleNoTypeVariables(=>)
-          handleNoFormalParameters(=>, MemberKind.NonStaticMethod)
-          handleNoInitializers()
-          handleAsyncModifier(null, null)
-          handleThisExpression(this, expression)
-          handleExpressionFunctionBody(=>, ;)
-        endClassMethod(get, Configuration, =>, null, ;)
-      endMember()
-    endClassOrMixinBody(DeclarationKind.Class, 1, {, })
-  endClassDeclaration(class, })
-endTopLevelDeclaration()
+                handleAssignmentExpression(=)
+              endInitializer({)
+            endInitializers(1, :, {)
+            handleAsyncModifier(null, null)
+            beginBlockFunctionBody({)
+            endBlockFunctionBody(0, {, })
+            handleRecoverableError(ConstructorWithWrongName, method, method)
+            handleRecoverableError(ConstructorWithReturnType, void, void)
+          endClassConstructor(null, void, (, :, })
+        endMember()
+        beginMetadataStar(Foo)
+        endMetadataStar(0)
+        beginMember()
+          beginMethod(null, null, null, null, null, Foo)
+            handleNoType(})
+            handleIdentifier(Foo, methodDeclaration)
+            handleNoTypeVariables(()
+            beginFormalParameters((, MemberKind.NonStaticMethod)
+            endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+            beginInitializers(:)
+              beginInitializer(_configuration)
+                handleIdentifier(_configuration, expression)
+                handleNoTypeArguments(=)
+                handleNoArguments(=)
+                handleSend(_configuration, =)
+                handleLiteralNull(null)
+                handleAssignmentExpression(=)
+              endInitializer({)
+            endInitializers(1, :, {)
+            handleAsyncModifier(null, null)
+            beginBlockFunctionBody({)
+            endBlockFunctionBody(0, {, })
+            handleRecoverableError(ConstructorWithWrongName, Foo, Foo)
+          endClassConstructor(null, Foo, (, :, })
+        endMember()
+      endClassOrMixinBody(DeclarationKind.Class, 6, {, })
+    endClassDeclaration(class, })
+  endTopLevelDeclaration(class)
+  beginMetadataStar(class)
+  endMetadataStar(0)
+  beginClassOrNamedMixinApplicationPrelude(class)
+    handleIdentifier(Configuration, classOrMixinDeclaration)
+    handleNoTypeVariables({)
+    beginClassDeclaration(class, null, Configuration)
+      handleNoType(Configuration)
+      handleClassExtends(null, 1)
+      handleClassNoWithClause()
+      handleClassOrMixinImplements(null, 0)
+      handleClassHeader(class, class, null)
+      beginClassOrMixinBody(DeclarationKind.Class, {)
+        beginMetadataStar(Configuration)
+        endMetadataStar(0)
+        beginMember()
+          beginMethod(null, null, null, null, get, foo)
+            handleIdentifier(Configuration, typeReference)
+            handleNoTypeArguments(get)
+            handleType(Configuration, null)
+            handleIdentifier(foo, methodDeclaration)
+            handleNoTypeVariables(=>)
+            handleNoFormalParameters(=>, MemberKind.NonStaticMethod)
+            handleNoInitializers()
+            handleAsyncModifier(null, null)
+            handleThisExpression(this, expression)
+            handleExpressionFunctionBody(=>, ;)
+          endClassMethod(get, Configuration, =>, null, ;)
+        endMember()
+      endClassOrMixinBody(DeclarationKind.Class, 1, {, })
+    endClassDeclaration(class, })
+  endTopLevelDeclaration()
 endCompilationUnit(2, )
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 2f233a3..1dbb08a 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
@@ -33,6 +33,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseFields({, null, null, null, null, null, null, {, Instance of 'SimpleType', _configuration, DeclarationKind.Class, ConfigurationService, false)
+                listener: beginFields({)
                 listener: handleIdentifier(Configuration, typeReference)
                 listener: handleNoTypeArguments(_configuration)
                 listener: handleType(Configuration, null)
@@ -331,7 +332,7 @@
                                     parseArgumentsOpt(foo)
                                       listener: handleNoArguments({)
                                     listener: handleSend(foo, {)
-                              listener: endBinaryExpression(.)
+                              listener: handleEndingBinaryExpression(.)
                             listener: handleAssignmentExpression(=)
                         listener: endInitializer({)
                     listener: endInitializers(2, :, {)
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 6eeb8df..91800c7 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
@@ -28,7 +28,7 @@
         handleNoTypeArguments(!)
         handleNoArguments(!)
         handleSend(f, !)
-        endBinaryExpression(.)
+        handleEndingBinaryExpression(.)
         handleNonNullAssertExpression(!)
         handleNoTypeArguments(()
         beginArguments(()
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 0da40dd..a733856 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
@@ -65,7 +65,7 @@
                             parseArgumentsOpt(f)
                               listener: handleNoArguments(!)
                             listener: handleSend(f, !)
-                      listener: endBinaryExpression(.)
+                      listener: handleEndingBinaryExpression(.)
                       listener: handleNonNullAssertExpression(!)
                       parseArgumentOrIndexStar(!, Instance of 'NoTypeParamOrArg', false)
                         listener: handleNoTypeArguments(()
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 88e02a1..65cb64b 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
@@ -28,7 +28,7 @@
         handleNoTypeArguments(!)
         handleNoArguments(!)
         handleSend(f, !)
-        endBinaryExpression(.)
+        handleEndingBinaryExpression(.)
         handleNonNullAssertExpression(!)
         handleNoTypeArguments(()
         beginArguments(()
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 d7698cf..ece1474 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
@@ -65,7 +65,7 @@
                             parseArgumentsOpt(f)
                               listener: handleNoArguments(!)
                             listener: handleSend(f, !)
-                      listener: endBinaryExpression(.)
+                      listener: handleEndingBinaryExpression(.)
                       listener: handleNonNullAssertExpression(!)
                       parseArgumentOrIndexStar(!, Instance of 'NoTypeParamOrArg', false)
                         listener: handleNoTypeArguments(()
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 56b0356..06fd0eb 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
@@ -29,7 +29,7 @@
         beginArguments(()
         endArguments(0, (, ))
         handleSend(f, ))
-        endBinaryExpression(.)
+        handleEndingBinaryExpression(.)
         handleParenthesizedExpression(()
         handleNonNullAssertExpression(!)
         beginTypeArguments(<)
@@ -51,7 +51,7 @@
         beginArguments(()
         endArguments(0, (, ))
         handleSend(f, !)
-        endBinaryExpression(.)
+        handleEndingBinaryExpression(.)
         handleNonNullAssertExpression(!)
         handleParenthesizedExpression(()
         beginTypeArguments(<)
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 c9412c6..e434bf5 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
@@ -78,7 +78,7 @@
                                                     listener: beginArguments(()
                                                     listener: endArguments(0, (, ))
                                               listener: handleSend(f, ))
-                                        listener: endBinaryExpression(.)
+                                        listener: handleEndingBinaryExpression(.)
                                     ensureCloseParen(), ()
                                 listener: handleParenthesizedExpression(()
                         listener: handleNonNullAssertExpression(!)
@@ -136,7 +136,7 @@
                                                     listener: beginArguments(()
                                                     listener: endArguments(0, (, ))
                                               listener: handleSend(f, !)
-                                        listener: endBinaryExpression(.)
+                                        listener: handleEndingBinaryExpression(.)
                                         listener: handleNonNullAssertExpression(!)
                                     ensureCloseParen(!, ()
                                 listener: handleParenthesizedExpression(()
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 8233523..ff032b1 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
@@ -28,7 +28,7 @@
         handleNoTypeArguments(!)
         handleNoArguments(!)
         handleSend(f, !)
-        endBinaryExpression(.)
+        handleEndingBinaryExpression(.)
         handleNonNullAssertExpression(!)
         beginTypeArguments(<)
           handleIdentifier(int, typeReference)
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 4bafcd1..3e1777e 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
@@ -65,7 +65,7 @@
                             parseArgumentsOpt(f)
                               listener: handleNoArguments(!)
                             listener: handleSend(f, !)
-                      listener: endBinaryExpression(.)
+                      listener: handleEndingBinaryExpression(.)
                       listener: handleNonNullAssertExpression(!)
                       listener: beginTypeArguments(<)
                       listener: handleIdentifier(int, typeReference)
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 ab7611a..07545c6 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
@@ -28,7 +28,7 @@
         handleNoTypeArguments(!)
         handleNoArguments(!)
         handleSend(f, !)
-        endBinaryExpression(.)
+        handleEndingBinaryExpression(.)
         handleNonNullAssertExpression(!)
         handleNoTypeArguments(()
         beginArguments(()
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 2824282..137c323 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
@@ -65,7 +65,7 @@
                             parseArgumentsOpt(f)
                               listener: handleNoArguments(!)
                             listener: handleSend(f, !)
-                      listener: endBinaryExpression(.)
+                      listener: handleEndingBinaryExpression(.)
                       listener: handleNonNullAssertExpression(!)
                       parseArgumentOrIndexStar(!, Instance of 'NoTypeParamOrArg', false)
                         listener: handleNoTypeArguments(()
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 6f2b4e7..9d5b29e 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_39286.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_39286.dart.expect
@@ -29,14 +29,14 @@
           beginArguments(()
           endArguments(0, (, ))
           handleSend(f, !)
-          endBinaryExpression(..)
+          handleEndingBinaryExpression(..)
           handleNonNullAssertExpression(!)
           handleIdentifier(g, expressionContinuation)
           handleNoTypeArguments(()
           beginArguments(()
           endArguments(0, (, ))
           handleSend(g, ..)
-          endBinaryExpression(.)
+          handleEndingBinaryExpression(.)
         endCascade()
         beginCascade(..)
           handleIdentifier(h, expressionContinuation)
@@ -44,7 +44,7 @@
           beginArguments(()
           endArguments(0, (, ))
           handleSend(h, ;)
-          endBinaryExpression(..)
+          handleEndingBinaryExpression(..)
         endCascade()
         handleExpressionStatement(;)
       endBlockFunctionBody(1, {, })
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 e2adb1f..26b246c 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
@@ -67,7 +67,7 @@
                                 listener: beginArguments(()
                                 listener: endArguments(0, (, ))
                           listener: handleSend(f, !)
-                        listener: endBinaryExpression(..)
+                        listener: handleEndingBinaryExpression(..)
                         listener: handleNonNullAssertExpression(!)
                         parseArgumentOrIndexStar(!, Instance of 'NoTypeParamOrArg', false)
                         parseSend(., expressionContinuation)
@@ -80,7 +80,7 @@
                                 listener: beginArguments(()
                                 listener: endArguments(0, (, ))
                           listener: handleSend(g, ..)
-                        listener: endBinaryExpression(.)
+                        listener: handleEndingBinaryExpression(.)
                         parseArgumentOrIndexStar(), Instance of 'NoTypeParamOrArg', false)
                         parseArgumentOrIndexStar(), Instance of 'NoTypeParamOrArg', false)
                         listener: endCascade()
@@ -96,7 +96,7 @@
                                 listener: beginArguments(()
                                 listener: endArguments(0, (, ))
                           listener: handleSend(h, ;)
-                        listener: endBinaryExpression(..)
+                        listener: handleEndingBinaryExpression(..)
                         parseArgumentOrIndexStar(), Instance of 'NoTypeParamOrArg', false)
                         listener: endCascade()
                   ensureSemicolon())
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 f33d4b8..ce48ee0 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
@@ -29,14 +29,14 @@
           beginArguments(()
           endArguments(0, (, ))
           handleSend(f, !)
-          endBinaryExpression(..)
+          handleEndingBinaryExpression(..)
           handleNonNullAssertExpression(!)
           handleIdentifier(g, expressionContinuation)
           handleNoTypeArguments(()
           beginArguments(()
           endArguments(0, (, ))
           handleSend(g, [)
-          endBinaryExpression(.)
+          handleEndingBinaryExpression(.)
           beginLiteralString('Hi!')
           endLiteralString(0, ])
           handleIndexedExpression(null, [, ])
@@ -48,13 +48,13 @@
           beginArguments(()
           endArguments(0, (, ))
           handleSend(h, !)
-          endBinaryExpression(..)
+          handleEndingBinaryExpression(..)
           handleNonNullAssertExpression(!)
           handleIdentifier(y, expressionContinuation)
           handleNoTypeArguments(=)
           handleNoArguments(=)
           handleSend(y, =)
-          endBinaryExpression(.)
+          handleEndingBinaryExpression(.)
           handleLiteralInt(2)
           handleAssignmentExpression(=)
         endCascade()
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 565b2a5..f2c02d6 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
@@ -67,7 +67,7 @@
                                 listener: beginArguments(()
                                 listener: endArguments(0, (, ))
                           listener: handleSend(f, !)
-                        listener: endBinaryExpression(..)
+                        listener: handleEndingBinaryExpression(..)
                         listener: handleNonNullAssertExpression(!)
                         parseArgumentOrIndexStar(!, Instance of 'NoTypeParamOrArg', false)
                         parseSend(., expressionContinuation)
@@ -80,7 +80,7 @@
                                 listener: beginArguments(()
                                 listener: endArguments(0, (, ))
                           listener: handleSend(g, [)
-                        listener: endBinaryExpression(.)
+                        listener: handleEndingBinaryExpression(.)
                         parseArgumentOrIndexStar(), Instance of 'NoTypeParamOrArg', false)
                           parseExpression([)
                             parsePrecedenceExpression([, 1, true)
@@ -107,7 +107,7 @@
                                 listener: beginArguments(()
                                 listener: endArguments(0, (, ))
                           listener: handleSend(h, !)
-                        listener: endBinaryExpression(..)
+                        listener: handleEndingBinaryExpression(..)
                         listener: handleNonNullAssertExpression(!)
                         parseArgumentOrIndexStar(!, Instance of 'NoTypeParamOrArg', false)
                         parseSend(., expressionContinuation)
@@ -117,7 +117,7 @@
                           parseArgumentsOpt(y)
                             listener: handleNoArguments(=)
                           listener: handleSend(y, =)
-                        listener: endBinaryExpression(.)
+                        listener: handleEndingBinaryExpression(.)
                         parseArgumentOrIndexStar(y, Instance of 'NoTypeParamOrArg', false)
                         parseArgumentOrIndexStar(y, Instance of 'NoTypeParamOrArg', false)
                         parseExpressionWithoutCascade(=)
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 0f816d7..0664454 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
@@ -29,13 +29,13 @@
           beginArguments(()
           endArguments(0, (, ))
           handleSend(f, .)
-          endBinaryExpression(..)
+          handleEndingBinaryExpression(..)
           handleIdentifier(g, expressionContinuation)
           handleNoTypeArguments(()
           beginArguments(()
           endArguments(0, (, ))
           handleSend(g, [)
-          endBinaryExpression(.)
+          handleEndingBinaryExpression(.)
           beginLiteralString('Hi!')
           endLiteralString(0, ])
           handleIndexedExpression(null, [, ])
@@ -46,12 +46,12 @@
           beginArguments(()
           endArguments(0, (, ))
           handleSend(h, .)
-          endBinaryExpression(..)
+          handleEndingBinaryExpression(..)
           handleIdentifier(y, expressionContinuation)
           handleNoTypeArguments(=)
           handleNoArguments(=)
           handleSend(y, =)
-          endBinaryExpression(.)
+          handleEndingBinaryExpression(.)
           handleLiteralInt(2)
           handleAssignmentExpression(=)
         endCascade()
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 c3c6ad7..edb5617 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
@@ -67,7 +67,7 @@
                                 listener: beginArguments(()
                                 listener: endArguments(0, (, ))
                           listener: handleSend(f, .)
-                        listener: endBinaryExpression(..)
+                        listener: handleEndingBinaryExpression(..)
                         parseSend(., expressionContinuation)
                           ensureIdentifier(., expressionContinuation)
                             listener: handleIdentifier(g, expressionContinuation)
@@ -78,7 +78,7 @@
                                 listener: beginArguments(()
                                 listener: endArguments(0, (, ))
                           listener: handleSend(g, [)
-                        listener: endBinaryExpression(.)
+                        listener: handleEndingBinaryExpression(.)
                         parseArgumentOrIndexStar(), Instance of 'NoTypeParamOrArg', false)
                           parseExpression([)
                             parsePrecedenceExpression([, 1, true)
@@ -103,7 +103,7 @@
                                 listener: beginArguments(()
                                 listener: endArguments(0, (, ))
                           listener: handleSend(h, .)
-                        listener: endBinaryExpression(..)
+                        listener: handleEndingBinaryExpression(..)
                         parseSend(., expressionContinuation)
                           ensureIdentifier(., expressionContinuation)
                             listener: handleIdentifier(y, expressionContinuation)
@@ -111,7 +111,7 @@
                           parseArgumentsOpt(y)
                             listener: handleNoArguments(=)
                           listener: handleSend(y, =)
-                        listener: endBinaryExpression(.)
+                        listener: handleEndingBinaryExpression(.)
                         parseArgumentOrIndexStar(y, Instance of 'NoTypeParamOrArg', false)
                         parseArgumentOrIndexStar(y, Instance of 'NoTypeParamOrArg', false)
                         parseExpressionWithoutCascade(=)
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 aa04042..bd6398b 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
@@ -29,13 +29,13 @@
           beginArguments(()
           endArguments(0, (, ))
           handleSend(f, .)
-          endBinaryExpression(..)
+          handleEndingBinaryExpression(..)
           handleIdentifier(g, expressionContinuation)
           handleNoTypeArguments(()
           beginArguments(()
           endArguments(0, (, ))
           handleSend(g, ..)
-          endBinaryExpression(.)
+          handleEndingBinaryExpression(.)
         endCascade()
         beginCascade(..)
           handleIdentifier(h, expressionContinuation)
@@ -43,7 +43,7 @@
           beginArguments(()
           endArguments(0, (, ))
           handleSend(h, ;)
-          endBinaryExpression(..)
+          handleEndingBinaryExpression(..)
         endCascade()
         handleExpressionStatement(;)
       endBlockFunctionBody(1, {, })
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 7b12b5f..2bcc2ac 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
@@ -67,7 +67,7 @@
                                 listener: beginArguments(()
                                 listener: endArguments(0, (, ))
                           listener: handleSend(f, .)
-                        listener: endBinaryExpression(..)
+                        listener: handleEndingBinaryExpression(..)
                         parseSend(., expressionContinuation)
                           ensureIdentifier(., expressionContinuation)
                             listener: handleIdentifier(g, expressionContinuation)
@@ -78,7 +78,7 @@
                                 listener: beginArguments(()
                                 listener: endArguments(0, (, ))
                           listener: handleSend(g, ..)
-                        listener: endBinaryExpression(.)
+                        listener: handleEndingBinaryExpression(.)
                         parseArgumentOrIndexStar(), Instance of 'NoTypeParamOrArg', false)
                         parseArgumentOrIndexStar(), Instance of 'NoTypeParamOrArg', false)
                         listener: endCascade()
@@ -94,7 +94,7 @@
                                 listener: beginArguments(()
                                 listener: endArguments(0, (, ))
                           listener: handleSend(h, ;)
-                        listener: endBinaryExpression(..)
+                        listener: handleEndingBinaryExpression(..)
                         parseArgumentOrIndexStar(), Instance of 'NoTypeParamOrArg', false)
                         listener: endCascade()
                   ensureSemicolon())
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 7646da2..0b8bec0 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_39326.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_39326.dart.expect
@@ -26,7 +26,7 @@
         handleNoTypeArguments([)
         handleLiteralInt(1)
         handleLiteralList(1, [, null, ])
-        endBinaryExpression(?.)
+        handleEndingBinaryExpression(?.)
         handleLiteralInt(42)
         handleAssignmentExpression(=)
         handleExpressionStatement(;)
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 2acd198..07e059f 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
@@ -73,7 +73,7 @@
                                   parseLiteralInt([)
                                     listener: handleLiteralInt(1)
                           listener: handleLiteralList(1, [, null, ])
-                      listener: endBinaryExpression(?.)
+                      listener: handleEndingBinaryExpression(?.)
                       parsePrecedenceExpression(=, 1, true)
                         parseUnaryExpression(=, true)
                           parsePrimary(=, expression)
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 3392c1f..8254bd8 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_39697.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_39697.dart.expect
@@ -18,7 +18,7 @@
       handleNoTypeArguments([)
       handleNoArguments([)
       handleSend(current, [)
-      endBinaryExpression(.)
+      handleEndingBinaryExpression(.)
       handleIdentifier(logKey, expression)
       handleNoTypeArguments(])
       handleNoArguments(])
@@ -31,10 +31,10 @@
       endAsOperatorType(as)
       handleAsOperator(as)
       beginBinaryExpression(??)
-      handleIdentifier(_default, expression)
-      handleNoTypeArguments(;)
-      handleNoArguments(;)
-      handleSend(_default, ;)
+        handleIdentifier(_default, expression)
+        handleNoTypeArguments(;)
+        handleNoArguments(;)
+        handleSend(_default, ;)
       endBinaryExpression(??)
       handleExpressionFunctionBody(=>, ;)
     endTopLevelMethod(Logger, get, ;)
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 1efe9cc..2084814 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
@@ -45,7 +45,7 @@
                       parseArgumentsOpt(current)
                         listener: handleNoArguments([)
                       listener: handleSend(current, [)
-                listener: endBinaryExpression(.)
+                listener: handleEndingBinaryExpression(.)
                 parseArgumentOrIndexStar(current, Instance of 'NoTypeParamOrArg', false)
                   parseExpression([)
                     parsePrecedenceExpression([, 1, true)
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 0656ee2..683bb10 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
@@ -18,7 +18,7 @@
       handleNoTypeArguments([)
       handleNoArguments([)
       handleSend(current, [)
-      endBinaryExpression(.)
+      handleEndingBinaryExpression(.)
       handleIdentifier(logKey, expression)
       handleNoTypeArguments(])
       handleNoArguments(])
@@ -32,10 +32,10 @@
       handleAsOperator(as)
       handleParenthesizedExpression(()
       beginBinaryExpression(??)
-      handleIdentifier(_default, expression)
-      handleNoTypeArguments(;)
-      handleNoArguments(;)
-      handleSend(_default, ;)
+        handleIdentifier(_default, expression)
+        handleNoTypeArguments(;)
+        handleNoArguments(;)
+        handleSend(_default, ;)
       endBinaryExpression(??)
       handleExpressionFunctionBody(=>, ;)
     endTopLevelMethod(Logger, get, ;)
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 b83104f..3049622 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
@@ -53,7 +53,7 @@
                                       parseArgumentsOpt(current)
                                         listener: handleNoArguments([)
                                       listener: handleSend(current, [)
-                                listener: endBinaryExpression(.)
+                                listener: handleEndingBinaryExpression(.)
                                 parseArgumentOrIndexStar(current, Instance of 'NoTypeParamOrArg', false)
                                   parseExpression([)
                                     parsePrecedenceExpression([, 1, true)
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 7296a62..325d346 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_39723.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_39723.dart.expect
@@ -75,7 +75,7 @@
         beginArguments(()
         endArguments(0, (, ))
         handleSend(toString, ;)
-        endBinaryExpression(?.)
+        handleEndingBinaryExpression(?.)
         handleExpressionStatement(;)
         handleIdentifier(a, expression)
         handleNoTypeArguments(!)
@@ -85,7 +85,7 @@
         handleNoTypeArguments([)
         handleLiteralInt(42)
         handleLiteralList(1, [, null, ])
-        endBinaryExpression(?.)
+        handleEndingBinaryExpression(?.)
         handleExpressionStatement(;)
         handleIdentifier(a, expression)
         handleNoTypeArguments(!)
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 9d5ceaf..5d6b616 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
@@ -174,7 +174,7 @@
                                   listener: beginArguments(()
                                   listener: endArguments(0, (, ))
                             listener: handleSend(toString, ;)
-                      listener: endBinaryExpression(?.)
+                      listener: handleEndingBinaryExpression(?.)
                   ensureSemicolon())
                   listener: handleExpressionStatement(;)
           notEofOrValue(}, a)
@@ -206,7 +206,7 @@
                                   parseLiteralInt([)
                                     listener: handleLiteralInt(42)
                           listener: handleLiteralList(1, [, null, ])
-                      listener: endBinaryExpression(?.)
+                      listener: handleEndingBinaryExpression(?.)
                   ensureSemicolon(])
                   listener: handleExpressionStatement(;)
           notEofOrValue(}, a)
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 6fd348f..b461804c 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
@@ -76,7 +76,7 @@
         beginArguments(()
         endArguments(0, (, ))
         handleSend(toString, ;)
-        endBinaryExpression(?.)
+        handleEndingBinaryExpression(?.)
         handleExpressionStatement(;)
         handleIdentifier(a, expression)
         handleNoTypeArguments(!)
@@ -87,7 +87,7 @@
         handleNoTypeArguments([)
         handleLiteralInt(42)
         handleLiteralList(1, [, null, ])
-        endBinaryExpression(?.)
+        handleEndingBinaryExpression(?.)
         handleExpressionStatement(;)
         handleIdentifier(a, expression)
         handleNoTypeArguments(!)
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 39b35af..50f71df 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
@@ -185,7 +185,7 @@
                                     listener: beginArguments(()
                                     listener: endArguments(0, (, ))
                               listener: handleSend(toString, ;)
-                        listener: endBinaryExpression(?.)
+                        listener: handleEndingBinaryExpression(?.)
                     ensureSemicolon())
                     listener: handleExpressionStatement(;)
           notEofOrValue(}, ()
@@ -228,7 +228,7 @@
                                     parseLiteralInt([)
                                       listener: handleLiteralInt(42)
                             listener: handleLiteralList(1, [, null, ])
-                        listener: endBinaryExpression(?.)
+                        listener: handleEndingBinaryExpression(?.)
                     ensureSemicolon(])
                     listener: handleExpressionStatement(;)
           notEofOrValue(}, ()
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 7679ad7..0e1c227 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_39858.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_39858.dart.expect
@@ -40,64 +40,70 @@
         beginMetadataStar(late)
         endMetadataStar(0)
         beginMember()
-          handleRecoverableError(MissingConstFinalVarOrType, x1, x1)
-          handleNoType(late)
-          handleIdentifier(x1, fieldDeclaration)
-          handleNoFieldInitializer(;)
-        endClassFields(null, null, null, null, late, null, 1, late, ;)
-      endMember()
-      beginMetadataStar(static)
-      endMetadataStar(0)
-      beginMember()
-        handleRecoverableError(MissingConstFinalVarOrType, x2, x2)
-        handleNoType(late)
-        handleIdentifier(x2, fieldDeclaration)
-        handleNoFieldInitializer(;)
-      endClassFields(null, null, static, null, late, null, 1, static, ;)
-    endMember()
-    beginMetadataStar(covariant)
-    endMetadataStar(0)
-    beginMember()
-      handleRecoverableError(MissingConstFinalVarOrType, x3, x3)
-      handleNoType(late)
-      handleIdentifier(x3, fieldDeclaration)
-      handleNoFieldInitializer(;)
-    endClassFields(null, null, null, covariant, late, null, 1, covariant, ;)
-  endMember()
-  beginMetadataStar(late)
-  endMetadataStar(0)
-  beginMember()
-    handleRecoverableError(MissingConstFinalVarOrType, x4, x4)
-    handleNoType(late)
-    handleIdentifier(x4, fieldDeclaration)
-    beginFieldInitializer(=)
-      handleLiteralInt(0)
-    endFieldInitializer(=, ;)
-  endClassFields(null, null, null, null, late, null, 1, late, ;)
-endMember()
-beginMetadataStar(static)
-endMetadataStar(0)
-beginMember()
-  handleRecoverableError(MissingConstFinalVarOrType, x5, x5)
-  handleNoType(late)
-  handleIdentifier(x5, fieldDeclaration)
-  beginFieldInitializer(=)
-    handleLiteralInt(0)
-  endFieldInitializer(=, ;)
-endClassFields(null, null, static, null, late, null, 1, static, ;)
-endMember()
-beginMetadataStar(covariant)
-endMetadataStar(0)
-beginMember()
-handleRecoverableError(MissingConstFinalVarOrType, x6, x6)
-handleNoType(late)
-handleIdentifier(x6, fieldDeclaration)
-beginFieldInitializer(=)
-  handleLiteralInt(0)
-endFieldInitializer(=, ;)
-endClassFields(null, null, null, covariant, late, null, 1, covariant, ;)
-endMember()
-endClassOrMixinBody(DeclarationKind.Class, 6, {, })
-endClassDeclaration(class, })
-endTopLevelDeclaration()
+          beginFields({)
+            handleRecoverableError(MissingConstFinalVarOrType, x1, x1)
+            handleNoType(late)
+            handleIdentifier(x1, fieldDeclaration)
+            handleNoFieldInitializer(;)
+          endClassFields(null, null, null, null, late, null, 1, late, ;)
+        endMember()
+        beginMetadataStar(static)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleRecoverableError(MissingConstFinalVarOrType, x2, x2)
+            handleNoType(late)
+            handleIdentifier(x2, fieldDeclaration)
+            handleNoFieldInitializer(;)
+          endClassFields(null, null, static, null, late, null, 1, static, ;)
+        endMember()
+        beginMetadataStar(covariant)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleRecoverableError(MissingConstFinalVarOrType, x3, x3)
+            handleNoType(late)
+            handleIdentifier(x3, fieldDeclaration)
+            handleNoFieldInitializer(;)
+          endClassFields(null, null, null, covariant, late, null, 1, covariant, ;)
+        endMember()
+        beginMetadataStar(late)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleRecoverableError(MissingConstFinalVarOrType, x4, x4)
+            handleNoType(late)
+            handleIdentifier(x4, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(0)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, late, null, 1, late, ;)
+        endMember()
+        beginMetadataStar(static)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleRecoverableError(MissingConstFinalVarOrType, x5, x5)
+            handleNoType(late)
+            handleIdentifier(x5, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(0)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, static, null, late, null, 1, static, ;)
+        endMember()
+        beginMetadataStar(covariant)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleRecoverableError(MissingConstFinalVarOrType, x6, x6)
+            handleNoType(late)
+            handleIdentifier(x6, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(0)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, covariant, late, null, 1, covariant, ;)
+        endMember()
+      endClassOrMixinBody(DeclarationKind.Class, 6, {, })
+    endClassDeclaration(class, })
+  endTopLevelDeclaration()
 endCompilationUnit(1, )
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 e830646..4dd48dd 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
@@ -34,6 +34,7 @@
               listener: beginMember()
               isReservedKeyword(;)
               parseFields({, null, null, null, null, late, null, late, Instance of 'NoType', x1, DeclarationKind.Class, X, false)
+                listener: beginFields({)
                 reportRecoverableError(x1, MissingConstFinalVarOrType)
                   listener: handleRecoverableError(MissingConstFinalVarOrType, x1, x1)
                 listener: handleNoType(late)
@@ -51,6 +52,7 @@
               listener: beginMember()
               isReservedKeyword(;)
               parseFields(;, null, null, static, null, late, null, late, Instance of 'NoType', x2, DeclarationKind.Class, X, false)
+                listener: beginFields(;)
                 reportRecoverableError(x2, MissingConstFinalVarOrType)
                   listener: handleRecoverableError(MissingConstFinalVarOrType, x2, x2)
                 listener: handleNoType(late)
@@ -68,6 +70,7 @@
               listener: beginMember()
               isReservedKeyword(;)
               parseFields(;, null, null, null, covariant, late, null, late, Instance of 'NoType', x3, DeclarationKind.Class, X, false)
+                listener: beginFields(;)
                 reportRecoverableError(x3, MissingConstFinalVarOrType)
                   listener: handleRecoverableError(MissingConstFinalVarOrType, x3, x3)
                 listener: handleNoType(late)
@@ -85,6 +88,7 @@
               listener: beginMember()
               isReservedKeyword(=)
               parseFields(;, null, null, null, null, late, null, late, Instance of 'NoType', x4, DeclarationKind.Class, X, false)
+                listener: beginFields(;)
                 reportRecoverableError(x4, MissingConstFinalVarOrType)
                   listener: handleRecoverableError(MissingConstFinalVarOrType, x4, x4)
                 listener: handleNoType(late)
@@ -109,6 +113,7 @@
               listener: beginMember()
               isReservedKeyword(=)
               parseFields(;, null, null, static, null, late, null, late, Instance of 'NoType', x5, DeclarationKind.Class, X, false)
+                listener: beginFields(;)
                 reportRecoverableError(x5, MissingConstFinalVarOrType)
                   listener: handleRecoverableError(MissingConstFinalVarOrType, x5, x5)
                 listener: handleNoType(late)
@@ -133,6 +138,7 @@
               listener: beginMember()
               isReservedKeyword(=)
               parseFields(;, null, null, null, covariant, late, null, late, Instance of 'NoType', x6, DeclarationKind.Class, X, false)
+                listener: beginFields(;)
                 reportRecoverableError(x6, MissingConstFinalVarOrType)
                   listener: handleRecoverableError(MissingConstFinalVarOrType, x6, x6)
                 listener: handleNoType(late)
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 69d129c..2cb3c26 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,58 +14,64 @@
         beginMetadataStar(var)
         endMetadataStar(0)
         beginMember()
-          handleNoType(var)
-          handleIdentifier(x1, fieldDeclaration)
-          handleNoFieldInitializer(;)
-        endClassFields(null, null, null, null, null, var, 1, var, ;)
-      endMember()
-      beginMetadataStar(static)
-      endMetadataStar(0)
-      beginMember()
-        handleNoType(var)
-        handleIdentifier(x2, fieldDeclaration)
-        handleNoFieldInitializer(;)
-      endClassFields(null, null, static, null, null, var, 1, static, ;)
-    endMember()
-    beginMetadataStar(covariant)
-    endMetadataStar(0)
-    beginMember()
-      handleNoType(var)
-      handleIdentifier(x3, fieldDeclaration)
-      handleNoFieldInitializer(;)
-    endClassFields(null, null, null, covariant, null, var, 1, covariant, ;)
-  endMember()
-  beginMetadataStar(var)
-  endMetadataStar(0)
-  beginMember()
-    handleNoType(var)
-    handleIdentifier(x4, fieldDeclaration)
-    beginFieldInitializer(=)
-      handleLiteralInt(0)
-    endFieldInitializer(=, ;)
-  endClassFields(null, null, null, null, null, var, 1, var, ;)
-endMember()
-beginMetadataStar(static)
-endMetadataStar(0)
-beginMember()
-  handleNoType(var)
-  handleIdentifier(x5, fieldDeclaration)
-  beginFieldInitializer(=)
-    handleLiteralInt(0)
-  endFieldInitializer(=, ;)
-endClassFields(null, null, static, null, null, var, 1, static, ;)
-endMember()
-beginMetadataStar(covariant)
-endMetadataStar(0)
-beginMember()
-handleNoType(var)
-handleIdentifier(x6, fieldDeclaration)
-beginFieldInitializer(=)
-  handleLiteralInt(0)
-endFieldInitializer(=, ;)
-endClassFields(null, null, null, covariant, null, var, 1, covariant, ;)
-endMember()
-endClassOrMixinBody(DeclarationKind.Class, 6, {, })
-endClassDeclaration(class, })
-endTopLevelDeclaration()
+          beginFields({)
+            handleNoType(var)
+            handleIdentifier(x1, fieldDeclaration)
+            handleNoFieldInitializer(;)
+          endClassFields(null, null, null, null, null, var, 1, var, ;)
+        endMember()
+        beginMetadataStar(static)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleNoType(var)
+            handleIdentifier(x2, fieldDeclaration)
+            handleNoFieldInitializer(;)
+          endClassFields(null, null, static, null, null, var, 1, static, ;)
+        endMember()
+        beginMetadataStar(covariant)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleNoType(var)
+            handleIdentifier(x3, fieldDeclaration)
+            handleNoFieldInitializer(;)
+          endClassFields(null, null, null, covariant, null, var, 1, covariant, ;)
+        endMember()
+        beginMetadataStar(var)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleNoType(var)
+            handleIdentifier(x4, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(0)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, var, 1, var, ;)
+        endMember()
+        beginMetadataStar(static)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleNoType(var)
+            handleIdentifier(x5, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(0)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, static, null, null, var, 1, static, ;)
+        endMember()
+        beginMetadataStar(covariant)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleNoType(var)
+            handleIdentifier(x6, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(0)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, covariant, null, var, 1, covariant, ;)
+        endMember()
+      endClassOrMixinBody(DeclarationKind.Class, 6, {, })
+    endClassDeclaration(class, })
+  endTopLevelDeclaration()
 endCompilationUnit(1, )
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 45d8491..db54e68 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
@@ -33,6 +33,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseFields({, null, null, null, null, null, var, var, Instance of 'NoType', x1, DeclarationKind.Class, X, false)
+                listener: beginFields({)
                 listener: handleNoType(var)
                 ensureIdentifierPotentiallyRecovered(var, fieldDeclaration, false)
                   listener: handleIdentifier(x1, fieldDeclaration)
@@ -47,6 +48,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseFields(;, null, null, static, null, null, var, var, Instance of 'NoType', x2, DeclarationKind.Class, X, false)
+                listener: beginFields(;)
                 listener: handleNoType(var)
                 ensureIdentifierPotentiallyRecovered(var, fieldDeclaration, false)
                   listener: handleIdentifier(x2, fieldDeclaration)
@@ -61,6 +63,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseFields(;, null, null, null, covariant, null, var, var, Instance of 'NoType', x3, DeclarationKind.Class, X, false)
+                listener: beginFields(;)
                 listener: handleNoType(var)
                 ensureIdentifierPotentiallyRecovered(var, fieldDeclaration, false)
                   listener: handleIdentifier(x3, fieldDeclaration)
@@ -75,6 +78,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseFields(;, null, null, null, null, null, var, var, Instance of 'NoType', x4, DeclarationKind.Class, X, false)
+                listener: beginFields(;)
                 listener: handleNoType(var)
                 ensureIdentifierPotentiallyRecovered(var, fieldDeclaration, false)
                   listener: handleIdentifier(x4, fieldDeclaration)
@@ -96,6 +100,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseFields(;, null, null, static, null, null, var, var, Instance of 'NoType', x5, DeclarationKind.Class, X, false)
+                listener: beginFields(;)
                 listener: handleNoType(var)
                 ensureIdentifierPotentiallyRecovered(var, fieldDeclaration, false)
                   listener: handleIdentifier(x5, fieldDeclaration)
@@ -117,6 +122,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseFields(;, null, null, null, covariant, null, var, var, Instance of 'NoType', x6, DeclarationKind.Class, X, false)
+                listener: beginFields(;)
                 listener: handleNoType(var)
                 ensureIdentifierPotentiallyRecovered(var, fieldDeclaration, false)
                   listener: handleIdentifier(x6, fieldDeclaration)
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 51ede43..537e3e4 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
@@ -79,7 +79,7 @@
           beginArguments(()
           endArguments(0, (, ))
           handleSend(toString, :)
-          endBinaryExpression(.)
+          handleEndingBinaryExpression(.)
           handleConditionalExpressionColon()
           handleIdentifier(c, expression)
           handleNoTypeArguments(;)
@@ -103,7 +103,7 @@
           beginArguments(()
           endArguments(0, (, ))
           handleSend(toString, :)
-          endBinaryExpression(.)
+          handleEndingBinaryExpression(.)
           handleConditionalExpressionColon()
           handleIdentifier(c, expression)
           handleNoTypeArguments(;)
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 caa1810..433eec8 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
@@ -297,7 +297,7 @@
                                         listener: beginArguments(()
                                         listener: endArguments(0, (, ))
                                   listener: handleSend(toString, :)
-                            listener: endBinaryExpression(.)
+                            listener: handleEndingBinaryExpression(.)
                         ensureColon())
                         listener: handleConditionalExpressionColon()
                         parseExpressionWithoutCascade(:)
@@ -397,7 +397,7 @@
                                         listener: beginArguments(()
                                         listener: endArguments(0, (, ))
                                   listener: handleSend(toString, :)
-                            listener: endBinaryExpression(.)
+                            listener: handleEndingBinaryExpression(.)
                         ensureColon())
                         listener: handleConditionalExpressionColon()
                         parseExpressionWithoutCascade(:)
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 760e325..abcfbe6 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
@@ -33,7 +33,7 @@
         handleNoArguments(])
         handleSend(b, ])
         handleLiteralList(1, [, null, ])
-        endBinaryExpression(?.)
+        handleEndingBinaryExpression(?.)
         handleExpressionStatement(;)
         handleIdentifier(a, expression)
         handleNoTypeArguments(?)
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 45d26ab..c170335 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
@@ -86,7 +86,7 @@
                                         listener: handleNoArguments(])
                                       listener: handleSend(b, ])
                           listener: handleLiteralList(1, [, null, ])
-                      listener: endBinaryExpression(?.)
+                      listener: handleEndingBinaryExpression(?.)
                   ensureSemicolon(])
                   listener: handleExpressionStatement(;)
           notEofOrValue(}, a)
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 e9a9536..c8c2deb 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
@@ -37,7 +37,7 @@
         handleNoArguments(])
         handleSend(b, ])
         handleLiteralList(1, [, null, ])
-        endBinaryExpression(?.)
+        handleEndingBinaryExpression(?.)
         handleIdentifier(c, expression)
         handleNoTypeArguments(;)
         handleNoArguments(;)
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 30dbcff..9a4dd5e 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
@@ -93,7 +93,7 @@
                                         listener: handleNoArguments(])
                                       listener: handleSend(b, ])
                           listener: handleLiteralList(1, [, null, ])
-                      listener: endBinaryExpression(?.)
+                      listener: handleEndingBinaryExpression(?.)
                       parsePrecedenceExpression(=, 1, true)
                         parseUnaryExpression(=, true)
                           parsePrimary(=, expression)
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 29249f9..60b2d3b 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
@@ -26,7 +26,7 @@
         handleLiteralInt(0)
         handleIndexedExpression(?, [, ])
         beginBinaryExpression(+)
-        handleLiteralInt(1)
+          handleLiteralInt(1)
         endBinaryExpression(+)
         handleExpressionStatement(;)
       endBlockFunctionBody(1, {, })
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 df0efbe..1990760 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
@@ -46,7 +46,7 @@
           handleSend(b, ))
         endArguments(1, (, ))
         handleSend(call, ;)
-        endBinaryExpression(?.)
+        handleEndingBinaryExpression(?.)
         handleExpressionStatement(;)
         handleIdentifier(a, expression)
         handleNoTypeArguments(?)
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 65987de..093950e 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
@@ -95,7 +95,7 @@
                                               listener: handleSend(b, ))
                                   listener: endArguments(1, (, ))
                             listener: handleSend(call, ;)
-                      listener: endBinaryExpression(?.)
+                      listener: handleEndingBinaryExpression(?.)
                   ensureSemicolon())
                   listener: handleExpressionStatement(;)
           notEofOrValue(}, a)
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 8839c76..0b56e4b 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
@@ -62,7 +62,7 @@
           handleSend(b, ))
         endArguments(1, (, ))
         handleSend(call, ;)
-        endBinaryExpression(?.)
+        handleEndingBinaryExpression(?.)
         handleExpressionStatement(;)
         handleIdentifier(a, expression)
         handleNoTypeArguments(?)
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 76f08fd..5fdde51 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
@@ -99,7 +99,7 @@
                                               listener: handleSend(b, ))
                                   listener: endArguments(1, (, ))
                             listener: handleSend(call, ;)
-                      listener: endBinaryExpression(?.)
+                      listener: handleEndingBinaryExpression(?.)
                   ensureSemicolon())
                   listener: handleExpressionStatement(;)
           notEofOrValue(}, a)
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 44d2997..a7ed1d5 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_40793.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_40793.dart.expect
@@ -28,10 +28,10 @@
           handleNoTypeArguments(!)
           handleNoArguments(!)
           handleSend(value, !)
-          endBinaryExpression(.)
+          handleEndingBinaryExpression(.)
           handleNonNullAssertExpression(!)
           beginBinaryExpression(<)
-          handleLiteralInt(10)
+            handleLiteralInt(10)
           endBinaryExpression(<)
           handleParenthesizedCondition(()
           beginThenStatement({)
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 c45375f..6fc667d 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
@@ -65,7 +65,7 @@
                               parseArgumentsOpt(value)
                                 listener: handleNoArguments(!)
                               listener: handleSend(value, !)
-                        listener: endBinaryExpression(.)
+                        listener: handleEndingBinaryExpression(.)
                         listener: handleNonNullAssertExpression(!)
                         listener: beginBinaryExpression(<)
                         parsePrecedenceExpression(<, 9, true)
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 bb7bea4..384f089 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
@@ -28,11 +28,11 @@
           handleNoTypeArguments(!)
           handleNoArguments(!)
           handleSend(value, !)
-          endBinaryExpression(.)
+          handleEndingBinaryExpression(.)
           handleNonNullAssertExpression(!)
           handleParenthesizedExpression(()
           beginBinaryExpression(<)
-          handleLiteralInt(10)
+            handleLiteralInt(10)
           endBinaryExpression(<)
           handleParenthesizedCondition(()
           beginThenStatement({)
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 4895f75..484f431 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
@@ -73,7 +73,7 @@
                                               parseArgumentsOpt(value)
                                                 listener: handleNoArguments(!)
                                               listener: handleSend(value, !)
-                                        listener: endBinaryExpression(.)
+                                        listener: handleEndingBinaryExpression(.)
                                         listener: handleNonNullAssertExpression(!)
                                     ensureCloseParen(!, ()
                                 listener: handleParenthesizedExpression(()
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 9784d4e..2e30ef7 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
@@ -28,10 +28,10 @@
           handleNoTypeArguments())
           handleNoArguments())
           handleSend(value, ))
-          endBinaryExpression(.)
+          handleEndingBinaryExpression(.)
           handleParenthesizedExpression(()
           beginBinaryExpression(<)
-          handleLiteralInt(10)
+            handleLiteralInt(10)
           endBinaryExpression(<)
           handleParenthesizedCondition(()
           beginThenStatement({)
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 89547a0..79a4016 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
@@ -73,7 +73,7 @@
                                               parseArgumentsOpt(value)
                                                 listener: handleNoArguments())
                                               listener: handleSend(value, ))
-                                        listener: endBinaryExpression(.)
+                                        listener: handleEndingBinaryExpression(.)
                                     ensureCloseParen(value, ()
                                 listener: handleParenthesizedExpression(()
                         listener: beginBinaryExpression(<)
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 fcbb3c9..fee2dc9 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
@@ -28,9 +28,9 @@
           handleNoTypeArguments(<)
           handleNoArguments(<)
           handleSend(value, <)
-          endBinaryExpression(.)
+          handleEndingBinaryExpression(.)
           beginBinaryExpression(<)
-          handleLiteralInt(10)
+            handleLiteralInt(10)
           endBinaryExpression(<)
           handleParenthesizedCondition(()
           beginThenStatement({)
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 ae0ddb4..7da58ec 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
@@ -65,7 +65,7 @@
                               parseArgumentsOpt(value)
                                 listener: handleNoArguments(<)
                               listener: handleSend(value, <)
-                        listener: endBinaryExpression(.)
+                        listener: handleEndingBinaryExpression(.)
                         listener: beginBinaryExpression(<)
                         parsePrecedenceExpression(<, 9, true)
                           parseUnaryExpression(<, true)
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 d456544..fb4318c 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
@@ -27,9 +27,9 @@
         handleNoTypeArguments(<)
         handleNoArguments(<)
         handleSend(x, <)
-        endBinaryExpression(.)
+        handleEndingBinaryExpression(.)
         beginBinaryExpression(<)
-        handleLiteralInt(10)
+          handleLiteralInt(10)
         endBinaryExpression(<)
         handleExpressionStatement(;)
       endBlockFunctionBody(1, {, })
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 4dfab55..192785b 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
@@ -64,7 +64,7 @@
                             parseArgumentsOpt(x)
                               listener: handleNoArguments(<)
                             listener: handleSend(x, <)
-                      listener: endBinaryExpression(.)
+                      listener: handleEndingBinaryExpression(.)
                       listener: beginBinaryExpression(<)
                       parsePrecedenceExpression(<, 9, true)
                         parseUnaryExpression(<, true)
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 c4ddcf5..68b4a22 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
@@ -27,10 +27,10 @@
         handleNoTypeArguments(!)
         handleNoArguments(!)
         handleSend(x, !)
-        endBinaryExpression(.)
+        handleEndingBinaryExpression(.)
         handleNonNullAssertExpression(!)
         beginBinaryExpression(<)
-        handleLiteralInt(10)
+          handleLiteralInt(10)
         endBinaryExpression(<)
         handleExpressionStatement(;)
       endBlockFunctionBody(1, {, })
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 9b6f454..9bb83fa 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
@@ -64,7 +64,7 @@
                             parseArgumentsOpt(x)
                               listener: handleNoArguments(!)
                             listener: handleSend(x, !)
-                      listener: endBinaryExpression(.)
+                      listener: handleEndingBinaryExpression(.)
                       listener: handleNonNullAssertExpression(!)
                       listener: beginBinaryExpression(<)
                       parsePrecedenceExpression(<, 9, true)
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 7c818a2..5e881e6 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,14 +14,15 @@
         beginMetadataStar(covariant)
         endMetadataStar(0)
         beginMember()
-          handleIdentifier(int, typeReference)
-          handleNoTypeArguments(x)
-          handleType(int, null)
-          handleIdentifier(x, fieldDeclaration)
-          handleNoFieldInitializer(;)
-        endClassFields(null, null, null, covariant, late, final, 1, covariant, ;)
-      endMember()
-    endClassOrMixinBody(DeclarationKind.Class, 1, {, })
-  endClassDeclaration(class, })
-endTopLevelDeclaration()
+          beginFields({)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(x)
+            handleType(int, null)
+            handleIdentifier(x, fieldDeclaration)
+            handleNoFieldInitializer(;)
+          endClassFields(null, null, null, covariant, late, final, 1, covariant, ;)
+        endMember()
+      endClassOrMixinBody(DeclarationKind.Class, 1, {, })
+    endClassDeclaration(class, })
+  endTopLevelDeclaration()
 endCompilationUnit(1, )
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 9c4a02e..1680edc 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
@@ -33,6 +33,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseFields({, null, null, null, covariant, late, final, final, Instance of 'SimpleType', x, DeclarationKind.Class, C, false)
+                listener: beginFields({)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(x)
                 listener: handleType(int, null)
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 f228d46..b28c309 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,17 +20,18 @@
         beginMetadataStar(covariant)
         endMetadataStar(0)
         beginMember()
-          handleIdentifier(int, typeReference)
-          handleNoTypeArguments(x)
-          handleType(int, null)
-          handleIdentifier(x, fieldDeclaration)
-          handleRecoverableError(FinalAndCovariantLateWithInitializer, covariant, covariant)
-          beginFieldInitializer(=)
-            handleLiteralInt(42)
-          endFieldInitializer(=, ;)
-        endClassFields(null, null, null, null, late, final, 1, covariant, ;)
-      endMember()
-    endClassOrMixinBody(DeclarationKind.Class, 1, {, })
-  endClassDeclaration(class, })
-endTopLevelDeclaration()
+          beginFields({)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(x)
+            handleType(int, null)
+            handleIdentifier(x, fieldDeclaration)
+            handleRecoverableError(FinalAndCovariantLateWithInitializer, covariant, covariant)
+            beginFieldInitializer(=)
+              handleLiteralInt(42)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, late, final, 1, covariant, ;)
+        endMember()
+      endClassOrMixinBody(DeclarationKind.Class, 1, {, })
+    endClassDeclaration(class, })
+  endTopLevelDeclaration()
 endCompilationUnit(1, )
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 4d308f2..6b1e244 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
@@ -33,6 +33,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseFields({, null, null, null, covariant, late, final, final, Instance of 'SimpleType', x, DeclarationKind.Class, C, false)
+                listener: beginFields({)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(x)
                 listener: handleType(int, null)
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 25f761d..a3cfa19 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,17 +20,18 @@
         beginMetadataStar(covariant)
         endMetadataStar(0)
         beginMember()
-          handleRecoverableError(FinalAndCovariant, covariant, covariant)
-          handleIdentifier(int, typeReference)
-          handleNoTypeArguments(x)
-          handleType(int, null)
-          handleIdentifier(x, fieldDeclaration)
-          beginFieldInitializer(=)
-            handleLiteralInt(42)
-          endFieldInitializer(=, ;)
-        endClassFields(null, null, null, null, null, final, 1, covariant, ;)
-      endMember()
-    endClassOrMixinBody(DeclarationKind.Class, 1, {, })
-  endClassDeclaration(class, })
-endTopLevelDeclaration()
+          beginFields({)
+            handleRecoverableError(FinalAndCovariant, covariant, covariant)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(x)
+            handleType(int, null)
+            handleIdentifier(x, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(42)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, final, 1, covariant, ;)
+        endMember()
+      endClassOrMixinBody(DeclarationKind.Class, 1, {, })
+    endClassDeclaration(class, })
+  endTopLevelDeclaration()
 endCompilationUnit(1, )
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 dc89a35..5664402 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
@@ -33,6 +33,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseFields({, null, null, null, covariant, null, final, final, Instance of 'SimpleType', x, DeclarationKind.Class, C, false)
+                listener: beginFields({)
                 reportRecoverableError(covariant, FinalAndCovariant)
                   listener: handleRecoverableError(FinalAndCovariant, covariant, covariant)
                 listener: handleIdentifier(int, typeReference)
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 1c8b158..0624ab1 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,329 +14,331 @@
         beginMetadataStar(String)
         endMetadataStar(0)
         beginMember()
-          handleIdentifier(String, typeReference)
-          handleNoTypeArguments(?)
-          handleType(String, ?)
-          handleIdentifier(x, fieldDeclaration)
-          handleNoFieldInitializer(;)
-        endClassFields(null, null, null, null, null, null, 1, String, ;)
-      endMember()
-      beginMetadataStar(int)
-      endMetadataStar(0)
-      beginMember()
-        handleIdentifier(int, typeReference)
-        handleNoTypeArguments(y)
-        handleType(int, null)
-        handleIdentifier(y, fieldDeclaration)
-        handleNoFieldInitializer(;)
-      endClassFields(null, null, null, null, null, null, 1, int, ;)
-    endMember()
-    beginMetadataStar(Foo)
-    endMetadataStar(0)
-    beginMember()
-      beginMethod(null, null, null, null, null, Foo)
-        handleNoType(;)
-        handleIdentifier(Foo, methodDeclaration)
-        handleNoTypeVariables(()
-        beginFormalParameters((, MemberKind.NonStaticMethod)
-          beginMetadataStar(Object)
-          endMetadataStar(0)
-          beginFormalParameter(Object, MemberKind.NonStaticMethod, null, null, null)
-            handleIdentifier(Object, typeReference)
+          beginFields({)
+            handleIdentifier(String, typeReference)
             handleNoTypeArguments(?)
-            handleType(Object, ?)
-            handleIdentifier(o, formalParameterDeclaration)
-            handleFormalParameterWithoutValue())
-          endFormalParameter(null, null, o, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
-        endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
-        beginInitializers(:)
-          beginInitializer(x)
-            handleIdentifier(x, expression)
-            handleNoTypeArguments(=)
-            handleNoArguments(=)
-            handleSend(x, =)
-            handleIdentifier(o, expression)
-            handleNoTypeArguments(as)
-            handleNoArguments(as)
-            handleSend(o, as)
-            beginAsOperatorType(as)
-              handleIdentifier(String, typeReference)
-              handleNoTypeArguments(?)
-              handleType(String, ?)
-            endAsOperatorType(as)
-            handleAsOperator(as)
-            handleAssignmentExpression(=)
-          endInitializer(,)
-          beginInitializer(y)
-            handleIdentifier(y, expression)
-            handleNoTypeArguments(=)
-            handleNoArguments(=)
-            handleSend(y, =)
-            handleLiteralInt(0)
-            handleAssignmentExpression(=)
-          endInitializer(;)
-        endInitializers(2, :, ;)
-        handleAsyncModifier(null, null)
-        handleEmptyFunctionBody(;)
-      endClassConstructor(null, Foo, (, :, ;)
-    endMember()
-    beginMetadataStar(Foo)
-    endMetadataStar(0)
-    beginMember()
-      beginMethod(null, null, null, null, null, Foo)
-        handleNoType(;)
-        handleIdentifier(Foo, methodDeclaration)
-        handleIdentifier(a, methodDeclarationContinuation)
-        handleQualified(.)
-        handleNoTypeVariables(()
-        beginFormalParameters((, MemberKind.NonStaticMethod)
-          beginMetadataStar(dynamic)
-          endMetadataStar(0)
-          beginFormalParameter(dynamic, MemberKind.NonStaticMethod, null, null, null)
-            handleIdentifier(dynamic, typeReference)
-            handleNoTypeArguments(o)
-            handleType(dynamic, null)
-            handleIdentifier(o, formalParameterDeclaration)
-            handleFormalParameterWithoutValue())
-          endFormalParameter(null, null, o, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
-        endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
-        beginInitializers(:)
-          beginInitializer(y)
-            handleIdentifier(y, expression)
-            handleNoTypeArguments(=)
-            handleNoArguments(=)
-            handleSend(y, =)
-            handleIdentifier(o, expression)
-            handleNoTypeArguments(is)
-            handleNoArguments(is)
-            handleSend(o, is)
-            beginIsOperatorType(is)
-              handleIdentifier(String, typeReference)
-              handleNoTypeArguments(?)
-              handleType(String, null)
-            endIsOperatorType(is)
-            handleIsOperator(is, null)
-            beginConditionalExpression(?)
-              handleIdentifier(o, expression)
-              handleNoTypeArguments(.)
-              handleNoArguments(.)
-              handleSend(o, .)
-              handleIdentifier(length, expressionContinuation)
-              handleNoTypeArguments(:)
-              handleNoArguments(:)
-              handleSend(length, :)
-              endBinaryExpression(.)
-              handleConditionalExpressionColon()
-              handleLiteralNull(null)
-            endConditionalExpression(?, :)
-            handleAssignmentExpression(=)
-          endInitializer(,)
-          beginInitializer(x)
-            handleIdentifier(x, expression)
-            handleNoTypeArguments(=)
-            handleNoArguments(=)
-            handleSend(x, =)
-            handleLiteralNull(null)
-            handleAssignmentExpression(=)
-          endInitializer(;)
-        endInitializers(2, :, ;)
-        handleAsyncModifier(null, null)
-        handleEmptyFunctionBody(;)
-      endClassConstructor(null, Foo, (, :, ;)
-    endMember()
-    beginMetadataStar(Foo)
-    endMetadataStar(0)
-    beginMember()
-      beginMethod(null, null, null, null, null, Foo)
-        handleNoType(;)
-        handleIdentifier(Foo, methodDeclaration)
-        handleIdentifier(b, methodDeclarationContinuation)
-        handleQualified(.)
-        handleNoTypeVariables(()
-        beginFormalParameters((, MemberKind.NonStaticMethod)
-          beginMetadataStar(dynamic)
-          endMetadataStar(0)
-          beginFormalParameter(dynamic, MemberKind.NonStaticMethod, null, null, null)
-            handleIdentifier(dynamic, typeReference)
-            handleNoTypeArguments(o)
-            handleType(dynamic, null)
-            handleIdentifier(o, formalParameterDeclaration)
-            handleFormalParameterWithoutValue())
-          endFormalParameter(null, null, o, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
-        endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
-        beginInitializers(:)
-          beginInitializer(y)
-            handleIdentifier(y, expression)
-            handleNoTypeArguments(=)
-            handleNoArguments(=)
-            handleSend(y, =)
-            handleIdentifier(o, expression)
-            handleNoTypeArguments(is)
-            handleNoArguments(is)
-            handleSend(o, is)
-            beginIsOperatorType(is)
-              handleIdentifier(String, typeReference)
-              handleNoTypeArguments(?)
-              handleType(String, ?)
-            endIsOperatorType(is)
-            handleIsOperator(is, null)
-            beginConditionalExpression(?)
-              handleIdentifier(o, expression)
-              handleNoTypeArguments(.)
-              handleNoArguments(.)
-              handleSend(o, .)
-              handleIdentifier(length, expressionContinuation)
-              handleNoTypeArguments(:)
-              handleNoArguments(:)
-              handleSend(length, :)
-              endBinaryExpression(.)
-              handleConditionalExpressionColon()
-              handleLiteralNull(null)
-            endConditionalExpression(?, :)
-            handleAssignmentExpression(=)
-          endInitializer(,)
-          beginInitializer(x)
-            handleIdentifier(x, expression)
-            handleNoTypeArguments(=)
-            handleNoArguments(=)
-            handleSend(x, =)
-            handleLiteralNull(null)
-            handleAssignmentExpression(=)
-          endInitializer(;)
-        endInitializers(2, :, ;)
-        handleAsyncModifier(null, null)
-        handleEmptyFunctionBody(;)
-      endClassConstructor(null, Foo, (, :, ;)
-    endMember()
-    beginMetadataStar(Foo)
-    endMetadataStar(0)
-    beginMember()
-      beginMethod(null, null, null, null, null, Foo)
-        handleNoType(;)
-        handleIdentifier(Foo, methodDeclaration)
-        handleIdentifier(c, methodDeclarationContinuation)
-        handleQualified(.)
-        handleNoTypeVariables(()
-        beginFormalParameters((, MemberKind.NonStaticMethod)
-          beginMetadataStar(dynamic)
-          endMetadataStar(0)
-          beginFormalParameter(dynamic, MemberKind.NonStaticMethod, null, null, null)
-            handleIdentifier(dynamic, typeReference)
-            handleNoTypeArguments(o)
-            handleType(dynamic, null)
-            handleIdentifier(o, formalParameterDeclaration)
-            handleFormalParameterWithoutValue())
-          endFormalParameter(null, null, o, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
-        endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
-        beginInitializers(:)
-          beginInitializer(y)
-            handleIdentifier(y, expression)
-            handleNoTypeArguments(=)
-            handleNoArguments(=)
-            handleSend(y, =)
-            handleIdentifier(o, expression)
-            handleNoTypeArguments(as)
-            handleNoArguments(as)
-            handleSend(o, as)
-            beginAsOperatorType(as)
-              handleIdentifier(String, typeReference)
-              handleNoTypeArguments(?)
-              handleType(String, null)
-            endAsOperatorType(as)
-            handleAsOperator(as)
-            beginConditionalExpression(?)
-              handleIdentifier(o, expression)
-              handleNoTypeArguments(.)
-              handleNoArguments(.)
-              handleSend(o, .)
-              handleIdentifier(length, expressionContinuation)
-              handleNoTypeArguments(:)
-              handleNoArguments(:)
-              handleSend(length, :)
-              endBinaryExpression(.)
-              handleConditionalExpressionColon()
-              handleLiteralNull(null)
-            endConditionalExpression(?, :)
-            handleAssignmentExpression(=)
-          endInitializer(,)
-          beginInitializer(x)
-            handleIdentifier(x, expression)
-            handleNoTypeArguments(=)
-            handleNoArguments(=)
-            handleSend(x, =)
-            handleLiteralNull(null)
-            handleAssignmentExpression(=)
-          endInitializer(;)
-        endInitializers(2, :, ;)
-        handleAsyncModifier(null, null)
-        handleEmptyFunctionBody(;)
-      endClassConstructor(null, Foo, (, :, ;)
-    endMember()
-    beginMetadataStar(Foo)
-    endMetadataStar(0)
-    beginMember()
-      beginMethod(null, null, null, null, null, Foo)
-        handleNoType(;)
-        handleIdentifier(Foo, methodDeclaration)
-        handleIdentifier(d, methodDeclarationContinuation)
-        handleQualified(.)
-        handleNoTypeVariables(()
-        beginFormalParameters((, MemberKind.NonStaticMethod)
-          beginMetadataStar(dynamic)
-          endMetadataStar(0)
-          beginFormalParameter(dynamic, MemberKind.NonStaticMethod, null, null, null)
-            handleIdentifier(dynamic, typeReference)
-            handleNoTypeArguments(o)
-            handleType(dynamic, null)
-            handleIdentifier(o, formalParameterDeclaration)
-            handleFormalParameterWithoutValue())
-          endFormalParameter(null, null, o, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
-        endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
-        beginInitializers(:)
-          beginInitializer(y)
-            handleIdentifier(y, expression)
-            handleNoTypeArguments(=)
-            handleNoArguments(=)
-            handleSend(y, =)
-            handleIdentifier(o, expression)
-            handleNoTypeArguments(as)
-            handleNoArguments(as)
-            handleSend(o, as)
-            beginAsOperatorType(as)
-              handleIdentifier(String, typeReference)
-              handleNoTypeArguments(?)
-              handleType(String, ?)
-            endAsOperatorType(as)
-            handleAsOperator(as)
-            beginConditionalExpression(?)
-              handleIdentifier(o, expression)
-              handleNoTypeArguments(.)
-              handleNoArguments(.)
-              handleSend(o, .)
-              handleIdentifier(length, expressionContinuation)
-              handleNoTypeArguments(:)
-              handleNoArguments(:)
-              handleSend(length, :)
-              endBinaryExpression(.)
-              handleConditionalExpressionColon()
-              handleLiteralNull(null)
-            endConditionalExpression(?, :)
-            handleAssignmentExpression(=)
-          endInitializer(,)
-          beginInitializer(x)
-            handleIdentifier(x, expression)
-            handleNoTypeArguments(=)
-            handleNoArguments(=)
-            handleSend(x, =)
-            handleLiteralNull(null)
-            handleAssignmentExpression(=)
-          endInitializer(;)
-        endInitializers(2, :, ;)
-        handleAsyncModifier(null, null)
-        handleEmptyFunctionBody(;)
-      endClassConstructor(null, Foo, (, :, ;)
-    endMember()
-  endClassOrMixinBody(DeclarationKind.Class, 7, {, })
-endClassDeclaration(class, })
-endTopLevelDeclaration()
+            handleType(String, ?)
+            handleIdentifier(x, fieldDeclaration)
+            handleNoFieldInitializer(;)
+          endClassFields(null, null, null, null, null, null, 1, String, ;)
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(y)
+            handleType(int, null)
+            handleIdentifier(y, fieldDeclaration)
+            handleNoFieldInitializer(;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+        beginMetadataStar(Foo)
+        endMetadataStar(0)
+        beginMember()
+          beginMethod(null, null, null, null, null, Foo)
+            handleNoType(;)
+            handleIdentifier(Foo, methodDeclaration)
+            handleNoTypeVariables(()
+            beginFormalParameters((, MemberKind.NonStaticMethod)
+              beginMetadataStar(Object)
+              endMetadataStar(0)
+              beginFormalParameter(Object, MemberKind.NonStaticMethod, null, null, null)
+                handleIdentifier(Object, typeReference)
+                handleNoTypeArguments(?)
+                handleType(Object, ?)
+                handleIdentifier(o, formalParameterDeclaration)
+                handleFormalParameterWithoutValue())
+              endFormalParameter(null, null, o, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+            endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+            beginInitializers(:)
+              beginInitializer(x)
+                handleIdentifier(x, expression)
+                handleNoTypeArguments(=)
+                handleNoArguments(=)
+                handleSend(x, =)
+                handleIdentifier(o, expression)
+                handleNoTypeArguments(as)
+                handleNoArguments(as)
+                handleSend(o, as)
+                beginAsOperatorType(as)
+                  handleIdentifier(String, typeReference)
+                  handleNoTypeArguments(?)
+                  handleType(String, ?)
+                endAsOperatorType(as)
+                handleAsOperator(as)
+                handleAssignmentExpression(=)
+              endInitializer(,)
+              beginInitializer(y)
+                handleIdentifier(y, expression)
+                handleNoTypeArguments(=)
+                handleNoArguments(=)
+                handleSend(y, =)
+                handleLiteralInt(0)
+                handleAssignmentExpression(=)
+              endInitializer(;)
+            endInitializers(2, :, ;)
+            handleAsyncModifier(null, null)
+            handleEmptyFunctionBody(;)
+          endClassConstructor(null, Foo, (, :, ;)
+        endMember()
+        beginMetadataStar(Foo)
+        endMetadataStar(0)
+        beginMember()
+          beginMethod(null, null, null, null, null, Foo)
+            handleNoType(;)
+            handleIdentifier(Foo, methodDeclaration)
+            handleIdentifier(a, methodDeclarationContinuation)
+            handleQualified(.)
+            handleNoTypeVariables(()
+            beginFormalParameters((, MemberKind.NonStaticMethod)
+              beginMetadataStar(dynamic)
+              endMetadataStar(0)
+              beginFormalParameter(dynamic, MemberKind.NonStaticMethod, null, null, null)
+                handleIdentifier(dynamic, typeReference)
+                handleNoTypeArguments(o)
+                handleType(dynamic, null)
+                handleIdentifier(o, formalParameterDeclaration)
+                handleFormalParameterWithoutValue())
+              endFormalParameter(null, null, o, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+            endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+            beginInitializers(:)
+              beginInitializer(y)
+                handleIdentifier(y, expression)
+                handleNoTypeArguments(=)
+                handleNoArguments(=)
+                handleSend(y, =)
+                handleIdentifier(o, expression)
+                handleNoTypeArguments(is)
+                handleNoArguments(is)
+                handleSend(o, is)
+                beginIsOperatorType(is)
+                  handleIdentifier(String, typeReference)
+                  handleNoTypeArguments(?)
+                  handleType(String, null)
+                endIsOperatorType(is)
+                handleIsOperator(is, null)
+                beginConditionalExpression(?)
+                  handleIdentifier(o, expression)
+                  handleNoTypeArguments(.)
+                  handleNoArguments(.)
+                  handleSend(o, .)
+                  handleIdentifier(length, expressionContinuation)
+                  handleNoTypeArguments(:)
+                  handleNoArguments(:)
+                  handleSend(length, :)
+                  handleEndingBinaryExpression(.)
+                  handleConditionalExpressionColon()
+                  handleLiteralNull(null)
+                endConditionalExpression(?, :)
+                handleAssignmentExpression(=)
+              endInitializer(,)
+              beginInitializer(x)
+                handleIdentifier(x, expression)
+                handleNoTypeArguments(=)
+                handleNoArguments(=)
+                handleSend(x, =)
+                handleLiteralNull(null)
+                handleAssignmentExpression(=)
+              endInitializer(;)
+            endInitializers(2, :, ;)
+            handleAsyncModifier(null, null)
+            handleEmptyFunctionBody(;)
+          endClassConstructor(null, Foo, (, :, ;)
+        endMember()
+        beginMetadataStar(Foo)
+        endMetadataStar(0)
+        beginMember()
+          beginMethod(null, null, null, null, null, Foo)
+            handleNoType(;)
+            handleIdentifier(Foo, methodDeclaration)
+            handleIdentifier(b, methodDeclarationContinuation)
+            handleQualified(.)
+            handleNoTypeVariables(()
+            beginFormalParameters((, MemberKind.NonStaticMethod)
+              beginMetadataStar(dynamic)
+              endMetadataStar(0)
+              beginFormalParameter(dynamic, MemberKind.NonStaticMethod, null, null, null)
+                handleIdentifier(dynamic, typeReference)
+                handleNoTypeArguments(o)
+                handleType(dynamic, null)
+                handleIdentifier(o, formalParameterDeclaration)
+                handleFormalParameterWithoutValue())
+              endFormalParameter(null, null, o, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+            endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+            beginInitializers(:)
+              beginInitializer(y)
+                handleIdentifier(y, expression)
+                handleNoTypeArguments(=)
+                handleNoArguments(=)
+                handleSend(y, =)
+                handleIdentifier(o, expression)
+                handleNoTypeArguments(is)
+                handleNoArguments(is)
+                handleSend(o, is)
+                beginIsOperatorType(is)
+                  handleIdentifier(String, typeReference)
+                  handleNoTypeArguments(?)
+                  handleType(String, ?)
+                endIsOperatorType(is)
+                handleIsOperator(is, null)
+                beginConditionalExpression(?)
+                  handleIdentifier(o, expression)
+                  handleNoTypeArguments(.)
+                  handleNoArguments(.)
+                  handleSend(o, .)
+                  handleIdentifier(length, expressionContinuation)
+                  handleNoTypeArguments(:)
+                  handleNoArguments(:)
+                  handleSend(length, :)
+                  handleEndingBinaryExpression(.)
+                  handleConditionalExpressionColon()
+                  handleLiteralNull(null)
+                endConditionalExpression(?, :)
+                handleAssignmentExpression(=)
+              endInitializer(,)
+              beginInitializer(x)
+                handleIdentifier(x, expression)
+                handleNoTypeArguments(=)
+                handleNoArguments(=)
+                handleSend(x, =)
+                handleLiteralNull(null)
+                handleAssignmentExpression(=)
+              endInitializer(;)
+            endInitializers(2, :, ;)
+            handleAsyncModifier(null, null)
+            handleEmptyFunctionBody(;)
+          endClassConstructor(null, Foo, (, :, ;)
+        endMember()
+        beginMetadataStar(Foo)
+        endMetadataStar(0)
+        beginMember()
+          beginMethod(null, null, null, null, null, Foo)
+            handleNoType(;)
+            handleIdentifier(Foo, methodDeclaration)
+            handleIdentifier(c, methodDeclarationContinuation)
+            handleQualified(.)
+            handleNoTypeVariables(()
+            beginFormalParameters((, MemberKind.NonStaticMethod)
+              beginMetadataStar(dynamic)
+              endMetadataStar(0)
+              beginFormalParameter(dynamic, MemberKind.NonStaticMethod, null, null, null)
+                handleIdentifier(dynamic, typeReference)
+                handleNoTypeArguments(o)
+                handleType(dynamic, null)
+                handleIdentifier(o, formalParameterDeclaration)
+                handleFormalParameterWithoutValue())
+              endFormalParameter(null, null, o, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+            endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+            beginInitializers(:)
+              beginInitializer(y)
+                handleIdentifier(y, expression)
+                handleNoTypeArguments(=)
+                handleNoArguments(=)
+                handleSend(y, =)
+                handleIdentifier(o, expression)
+                handleNoTypeArguments(as)
+                handleNoArguments(as)
+                handleSend(o, as)
+                beginAsOperatorType(as)
+                  handleIdentifier(String, typeReference)
+                  handleNoTypeArguments(?)
+                  handleType(String, null)
+                endAsOperatorType(as)
+                handleAsOperator(as)
+                beginConditionalExpression(?)
+                  handleIdentifier(o, expression)
+                  handleNoTypeArguments(.)
+                  handleNoArguments(.)
+                  handleSend(o, .)
+                  handleIdentifier(length, expressionContinuation)
+                  handleNoTypeArguments(:)
+                  handleNoArguments(:)
+                  handleSend(length, :)
+                  handleEndingBinaryExpression(.)
+                  handleConditionalExpressionColon()
+                  handleLiteralNull(null)
+                endConditionalExpression(?, :)
+                handleAssignmentExpression(=)
+              endInitializer(,)
+              beginInitializer(x)
+                handleIdentifier(x, expression)
+                handleNoTypeArguments(=)
+                handleNoArguments(=)
+                handleSend(x, =)
+                handleLiteralNull(null)
+                handleAssignmentExpression(=)
+              endInitializer(;)
+            endInitializers(2, :, ;)
+            handleAsyncModifier(null, null)
+            handleEmptyFunctionBody(;)
+          endClassConstructor(null, Foo, (, :, ;)
+        endMember()
+        beginMetadataStar(Foo)
+        endMetadataStar(0)
+        beginMember()
+          beginMethod(null, null, null, null, null, Foo)
+            handleNoType(;)
+            handleIdentifier(Foo, methodDeclaration)
+            handleIdentifier(d, methodDeclarationContinuation)
+            handleQualified(.)
+            handleNoTypeVariables(()
+            beginFormalParameters((, MemberKind.NonStaticMethod)
+              beginMetadataStar(dynamic)
+              endMetadataStar(0)
+              beginFormalParameter(dynamic, MemberKind.NonStaticMethod, null, null, null)
+                handleIdentifier(dynamic, typeReference)
+                handleNoTypeArguments(o)
+                handleType(dynamic, null)
+                handleIdentifier(o, formalParameterDeclaration)
+                handleFormalParameterWithoutValue())
+              endFormalParameter(null, null, o, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+            endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+            beginInitializers(:)
+              beginInitializer(y)
+                handleIdentifier(y, expression)
+                handleNoTypeArguments(=)
+                handleNoArguments(=)
+                handleSend(y, =)
+                handleIdentifier(o, expression)
+                handleNoTypeArguments(as)
+                handleNoArguments(as)
+                handleSend(o, as)
+                beginAsOperatorType(as)
+                  handleIdentifier(String, typeReference)
+                  handleNoTypeArguments(?)
+                  handleType(String, ?)
+                endAsOperatorType(as)
+                handleAsOperator(as)
+                beginConditionalExpression(?)
+                  handleIdentifier(o, expression)
+                  handleNoTypeArguments(.)
+                  handleNoArguments(.)
+                  handleSend(o, .)
+                  handleIdentifier(length, expressionContinuation)
+                  handleNoTypeArguments(:)
+                  handleNoArguments(:)
+                  handleSend(length, :)
+                  handleEndingBinaryExpression(.)
+                  handleConditionalExpressionColon()
+                  handleLiteralNull(null)
+                endConditionalExpression(?, :)
+                handleAssignmentExpression(=)
+              endInitializer(,)
+              beginInitializer(x)
+                handleIdentifier(x, expression)
+                handleNoTypeArguments(=)
+                handleNoArguments(=)
+                handleSend(x, =)
+                handleLiteralNull(null)
+                handleAssignmentExpression(=)
+              endInitializer(;)
+            endInitializers(2, :, ;)
+            handleAsyncModifier(null, null)
+            handleEmptyFunctionBody(;)
+          endClassConstructor(null, Foo, (, :, ;)
+        endMember()
+      endClassOrMixinBody(DeclarationKind.Class, 7, {, })
+    endClassDeclaration(class, })
+  endTopLevelDeclaration()
 endCompilationUnit(1, )
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 8c591ce..170bf38 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
@@ -33,6 +33,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseFields({, null, null, null, null, null, null, {, Instance of 'SimpleNullableType', x, DeclarationKind.Class, Foo, false)
+                listener: beginFields({)
                 listener: handleIdentifier(String, typeReference)
                 listener: handleNoTypeArguments(?)
                 listener: handleType(String, ?)
@@ -49,6 +50,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', y, DeclarationKind.Class, Foo, false)
+                listener: beginFields(;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(y)
                 listener: handleType(int, null)
@@ -258,7 +260,7 @@
                                           parseArgumentsOpt(length)
                                             listener: handleNoArguments(:)
                                           listener: handleSend(length, :)
-                                    listener: endBinaryExpression(.)
+                                    listener: handleEndingBinaryExpression(.)
                                 ensureColon(length)
                                 listener: handleConditionalExpressionColon()
                                 parseExpressionWithoutCascade(:)
@@ -398,7 +400,7 @@
                                           parseArgumentsOpt(length)
                                             listener: handleNoArguments(:)
                                           listener: handleSend(length, :)
-                                    listener: endBinaryExpression(.)
+                                    listener: handleEndingBinaryExpression(.)
                                 ensureColon(length)
                                 listener: handleConditionalExpressionColon()
                                 parseExpressionWithoutCascade(:)
@@ -538,7 +540,7 @@
                                           parseArgumentsOpt(length)
                                             listener: handleNoArguments(:)
                                           listener: handleSend(length, :)
-                                    listener: endBinaryExpression(.)
+                                    listener: handleEndingBinaryExpression(.)
                                 ensureColon(length)
                                 listener: handleConditionalExpressionColon()
                                 parseExpressionWithoutCascade(:)
@@ -678,7 +680,7 @@
                                           parseArgumentsOpt(length)
                                             listener: handleNoArguments(:)
                                           listener: handleSend(length, :)
-                                    listener: endBinaryExpression(.)
+                                    listener: handleEndingBinaryExpression(.)
                                 ensureColon(length)
                                 listener: handleConditionalExpressionColon()
                                 parseExpressionWithoutCascade(:)
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 44a6b48..89bb893 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,73 +14,75 @@
         beginMetadataStar(String)
         endMetadataStar(0)
         beginMember()
-          handleIdentifier(String, typeReference)
-          handleNoTypeArguments(?)
-          handleType(String, ?)
-          handleIdentifier(x, fieldDeclaration)
-          handleNoFieldInitializer(;)
-        endClassFields(null, null, null, null, null, null, 1, String, ;)
-      endMember()
-      beginMetadataStar(int)
-      endMetadataStar(0)
-      beginMember()
-        handleIdentifier(int, typeReference)
-        handleNoTypeArguments(y)
-        handleType(int, null)
-        handleIdentifier(y, fieldDeclaration)
-        handleNoFieldInitializer(;)
-      endClassFields(null, null, null, null, null, null, 1, int, ;)
-    endMember()
-    beginMetadataStar(Foo)
-    endMetadataStar(0)
-    beginMember()
-      beginMethod(null, null, null, null, null, Foo)
-        handleNoType(;)
-        handleIdentifier(Foo, methodDeclaration)
-        handleNoTypeVariables(()
-        beginFormalParameters((, MemberKind.NonStaticMethod)
-          beginMetadataStar(Object)
-          endMetadataStar(0)
-          beginFormalParameter(Object, MemberKind.NonStaticMethod, null, null, null)
-            handleIdentifier(Object, typeReference)
+          beginFields({)
+            handleIdentifier(String, typeReference)
             handleNoTypeArguments(?)
-            handleType(Object, ?)
-            handleIdentifier(o, formalParameterDeclaration)
-            handleFormalParameterWithoutValue())
-          endFormalParameter(null, null, o, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
-        endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
-        beginInitializers(:)
-          beginInitializer(x)
-            handleIdentifier(x, expression)
-            handleNoTypeArguments(=)
-            handleNoArguments(=)
-            handleSend(x, =)
-            handleIdentifier(o, expression)
-            handleNoTypeArguments(as)
-            handleNoArguments(as)
-            handleSend(o, as)
-            beginAsOperatorType(as)
-              handleIdentifier(String, typeReference)
-              handleNoTypeArguments(,)
-              handleType(String, null)
-            endAsOperatorType(as)
-            handleAsOperator(as)
-            handleAssignmentExpression(=)
-          endInitializer(,)
-          beginInitializer(y)
-            handleIdentifier(y, expression)
-            handleNoTypeArguments(=)
-            handleNoArguments(=)
-            handleSend(y, =)
-            handleLiteralInt(0)
-            handleAssignmentExpression(=)
-          endInitializer(;)
-        endInitializers(2, :, ;)
-        handleAsyncModifier(null, null)
-        handleEmptyFunctionBody(;)
-      endClassConstructor(null, Foo, (, :, ;)
-    endMember()
-  endClassOrMixinBody(DeclarationKind.Class, 3, {, })
-endClassDeclaration(class, })
-endTopLevelDeclaration()
+            handleType(String, ?)
+            handleIdentifier(x, fieldDeclaration)
+            handleNoFieldInitializer(;)
+          endClassFields(null, null, null, null, null, null, 1, String, ;)
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(y)
+            handleType(int, null)
+            handleIdentifier(y, fieldDeclaration)
+            handleNoFieldInitializer(;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+        beginMetadataStar(Foo)
+        endMetadataStar(0)
+        beginMember()
+          beginMethod(null, null, null, null, null, Foo)
+            handleNoType(;)
+            handleIdentifier(Foo, methodDeclaration)
+            handleNoTypeVariables(()
+            beginFormalParameters((, MemberKind.NonStaticMethod)
+              beginMetadataStar(Object)
+              endMetadataStar(0)
+              beginFormalParameter(Object, MemberKind.NonStaticMethod, null, null, null)
+                handleIdentifier(Object, typeReference)
+                handleNoTypeArguments(?)
+                handleType(Object, ?)
+                handleIdentifier(o, formalParameterDeclaration)
+                handleFormalParameterWithoutValue())
+              endFormalParameter(null, null, o, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+            endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+            beginInitializers(:)
+              beginInitializer(x)
+                handleIdentifier(x, expression)
+                handleNoTypeArguments(=)
+                handleNoArguments(=)
+                handleSend(x, =)
+                handleIdentifier(o, expression)
+                handleNoTypeArguments(as)
+                handleNoArguments(as)
+                handleSend(o, as)
+                beginAsOperatorType(as)
+                  handleIdentifier(String, typeReference)
+                  handleNoTypeArguments(,)
+                  handleType(String, null)
+                endAsOperatorType(as)
+                handleAsOperator(as)
+                handleAssignmentExpression(=)
+              endInitializer(,)
+              beginInitializer(y)
+                handleIdentifier(y, expression)
+                handleNoTypeArguments(=)
+                handleNoArguments(=)
+                handleSend(y, =)
+                handleLiteralInt(0)
+                handleAssignmentExpression(=)
+              endInitializer(;)
+            endInitializers(2, :, ;)
+            handleAsyncModifier(null, null)
+            handleEmptyFunctionBody(;)
+          endClassConstructor(null, Foo, (, :, ;)
+        endMember()
+      endClassOrMixinBody(DeclarationKind.Class, 3, {, })
+    endClassDeclaration(class, })
+  endTopLevelDeclaration()
 endCompilationUnit(1, )
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 5edc2bf..651f195 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
@@ -33,6 +33,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseFields({, null, null, null, null, null, null, {, Instance of 'SimpleNullableType', x, DeclarationKind.Class, Foo, false)
+                listener: beginFields({)
                 listener: handleIdentifier(String, typeReference)
                 listener: handleNoTypeArguments(?)
                 listener: handleType(String, ?)
@@ -49,6 +50,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', y, DeclarationKind.Class, Foo, false)
+                listener: beginFields(;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(y)
                 listener: handleType(int, null)
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 aa81a89..1efd65e 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,198 +14,200 @@
         beginMetadataStar(String)
         endMetadataStar(0)
         beginMember()
-          handleIdentifier(String, typeReference)
-          handleNoTypeArguments(?)
-          handleType(String, ?)
-          handleIdentifier(x, fieldDeclaration)
-          handleNoFieldInitializer(;)
-        endClassFields(null, null, null, null, null, null, 1, String, ;)
-      endMember()
-      beginMetadataStar(int)
-      endMetadataStar(0)
-      beginMember()
-        handleIdentifier(int, typeReference)
-        handleNoTypeArguments(y)
-        handleType(int, null)
-        handleIdentifier(y, fieldDeclaration)
-        handleNoFieldInitializer(;)
-      endClassFields(null, null, null, null, null, null, 1, int, ;)
-    endMember()
-    beginMetadataStar(Foo)
-    endMetadataStar(0)
-    beginMember()
-      beginMethod(null, null, null, null, null, Foo)
-        handleNoType(;)
-        handleIdentifier(Foo, methodDeclaration)
-        handleNoTypeVariables(()
-        beginFormalParameters((, MemberKind.NonStaticMethod)
-          beginMetadataStar(Object)
-          endMetadataStar(0)
-          beginFormalParameter(Object, MemberKind.NonStaticMethod, null, null, null)
-            handleIdentifier(Object, typeReference)
+          beginFields({)
+            handleIdentifier(String, typeReference)
             handleNoTypeArguments(?)
-            handleType(Object, ?)
-            handleIdentifier(o, formalParameterDeclaration)
-            handleFormalParameterWithoutValue())
-          endFormalParameter(null, null, o, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
-        endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
-        beginInitializers(:)
-          beginInitializer(x)
-            handleIdentifier(x, expression)
-            handleNoTypeArguments(=)
-            handleNoArguments(=)
-            handleSend(x, =)
-            handleIdentifier(o, expression)
-            handleNoTypeArguments(!=)
-            handleNoArguments(!=)
-            handleSend(o, !=)
-            beginBinaryExpression(!=)
-            handleLiteralNull(null)
-            endBinaryExpression(!=)
-            beginConditionalExpression(?)
-              handleIdentifier(o, expression)
-              handleNoTypeArguments(as)
-              handleNoArguments(as)
-              handleSend(o, as)
-              beginAsOperatorType(as)
-                handleIdentifier(String, typeReference)
+            handleType(String, ?)
+            handleIdentifier(x, fieldDeclaration)
+            handleNoFieldInitializer(;)
+          endClassFields(null, null, null, null, null, null, 1, String, ;)
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(y)
+            handleType(int, null)
+            handleIdentifier(y, fieldDeclaration)
+            handleNoFieldInitializer(;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+        beginMetadataStar(Foo)
+        endMetadataStar(0)
+        beginMember()
+          beginMethod(null, null, null, null, null, Foo)
+            handleNoType(;)
+            handleIdentifier(Foo, methodDeclaration)
+            handleNoTypeVariables(()
+            beginFormalParameters((, MemberKind.NonStaticMethod)
+              beginMetadataStar(Object)
+              endMetadataStar(0)
+              beginFormalParameter(Object, MemberKind.NonStaticMethod, null, null, null)
+                handleIdentifier(Object, typeReference)
                 handleNoTypeArguments(?)
-                handleType(String, ?)
-              endAsOperatorType(as)
-              handleAsOperator(as)
-              handleConditionalExpressionColon()
-              handleLiteralNull(null)
-            endConditionalExpression(?, :)
-            handleAssignmentExpression(=)
-          endInitializer(,)
-          beginInitializer(y)
-            handleIdentifier(y, expression)
-            handleNoTypeArguments(=)
-            handleNoArguments(=)
-            handleSend(y, =)
-            handleLiteralInt(0)
-            handleAssignmentExpression(=)
-          endInitializer(;)
-        endInitializers(2, :, ;)
-        handleAsyncModifier(null, null)
-        handleEmptyFunctionBody(;)
-      endClassConstructor(null, Foo, (, :, ;)
-    endMember()
-    beginMetadataStar(void)
-    endMetadataStar(0)
-    beginMember()
-      beginMethod(null, null, null, null, null, foo)
-        handleVoidKeyword(void)
-        handleIdentifier(foo, methodDeclaration)
-        handleNoTypeVariables(()
-        beginFormalParameters((, MemberKind.NonStaticMethod)
-          beginMetadataStar(dynamic)
-          endMetadataStar(0)
-          beginFormalParameter(dynamic, MemberKind.NonStaticMethod, null, null, null)
-            handleIdentifier(dynamic, typeReference)
-            handleNoTypeArguments(x)
-            handleType(dynamic, null)
-            handleIdentifier(x, formalParameterDeclaration)
-            handleFormalParameterWithoutValue())
-          endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
-        endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
-        handleNoInitializers()
-        handleAsyncModifier(null, null)
-        beginBlockFunctionBody({)
-          beginIfStatement(if)
-            handleIdentifier(x, expression)
-            handleNoTypeArguments(is)
-            handleNoArguments(is)
-            handleSend(x, is)
-            beginIsOperatorType(is)
-              handleIdentifier(String, typeReference)
-              handleNoTypeArguments(?)
-              handleType(String, ?)
-            endIsOperatorType(is)
-            handleIsOperator(is, null)
-            beginConditionalExpression(?)
-              handleLiteralInt(4)
-              handleConditionalExpressionColon()
-              handleLiteralInt(2)
-              beginBinaryExpression(==)
-              handleLiteralInt(4)
-              endBinaryExpression(==)
-            endConditionalExpression(?, :)
-            handleParenthesizedCondition(()
-            beginThenStatement({)
-              beginBlock({, BlockKind(statement))
-                handleIdentifier(print, expression)
-                handleNoTypeArguments(()
-                beginArguments(()
-                  beginLiteralString("hello")
-                  endLiteralString(0, ))
-                endArguments(1, (, ))
-                handleSend(print, ;)
-                handleExpressionStatement(;)
-              endBlock(1, {, }, BlockKind(statement))
-            endThenStatement(})
-          endIfStatement(if, null)
-        endBlockFunctionBody(1, {, })
-      endClassMethod(null, void, (, null, })
-    endMember()
-    beginMetadataStar(void)
-    endMetadataStar(0)
-    beginMember()
-      beginMethod(null, null, null, null, null, bar)
-        handleVoidKeyword(void)
-        handleIdentifier(bar, methodDeclaration)
-        handleNoTypeVariables(()
-        beginFormalParameters((, MemberKind.NonStaticMethod)
-          beginMetadataStar(dynamic)
-          endMetadataStar(0)
-          beginFormalParameter(dynamic, MemberKind.NonStaticMethod, null, null, null)
-            handleIdentifier(dynamic, typeReference)
-            handleNoTypeArguments(x)
-            handleType(dynamic, null)
-            handleIdentifier(x, formalParameterDeclaration)
-            handleFormalParameterWithoutValue())
-          endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
-        endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
-        handleNoInitializers()
-        handleAsyncModifier(null, null)
-        beginBlockFunctionBody({)
-          beginIfStatement(if)
-            handleIdentifier(x, expression)
-            handleNoTypeArguments(is)
-            handleNoArguments(is)
-            handleSend(x, is)
-            beginIsOperatorType(is)
-              handleIdentifier(String, typeReference)
-              handleNoTypeArguments(?)
-              handleType(String, null)
-            endIsOperatorType(is)
-            handleIsOperator(is, null)
-            beginConditionalExpression(?)
-              handleLiteralInt(4)
-              handleConditionalExpressionColon()
-              handleLiteralInt(2)
-              beginBinaryExpression(==)
-              handleLiteralInt(4)
-              endBinaryExpression(==)
-            endConditionalExpression(?, :)
-            handleParenthesizedCondition(()
-            beginThenStatement({)
-              beginBlock({, BlockKind(statement))
-                handleIdentifier(print, expression)
-                handleNoTypeArguments(()
-                beginArguments(()
-                  beginLiteralString("hello")
-                  endLiteralString(0, ))
-                endArguments(1, (, ))
-                handleSend(print, ;)
-                handleExpressionStatement(;)
-              endBlock(1, {, }, BlockKind(statement))
-            endThenStatement(})
-          endIfStatement(if, null)
-        endBlockFunctionBody(1, {, })
-      endClassMethod(null, void, (, null, })
-    endMember()
-  endClassOrMixinBody(DeclarationKind.Class, 5, {, })
-endClassDeclaration(class, })
-endTopLevelDeclaration()
+                handleType(Object, ?)
+                handleIdentifier(o, formalParameterDeclaration)
+                handleFormalParameterWithoutValue())
+              endFormalParameter(null, null, o, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+            endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+            beginInitializers(:)
+              beginInitializer(x)
+                handleIdentifier(x, expression)
+                handleNoTypeArguments(=)
+                handleNoArguments(=)
+                handleSend(x, =)
+                handleIdentifier(o, expression)
+                handleNoTypeArguments(!=)
+                handleNoArguments(!=)
+                handleSend(o, !=)
+                beginBinaryExpression(!=)
+                  handleLiteralNull(null)
+                endBinaryExpression(!=)
+                beginConditionalExpression(?)
+                  handleIdentifier(o, expression)
+                  handleNoTypeArguments(as)
+                  handleNoArguments(as)
+                  handleSend(o, as)
+                  beginAsOperatorType(as)
+                    handleIdentifier(String, typeReference)
+                    handleNoTypeArguments(?)
+                    handleType(String, ?)
+                  endAsOperatorType(as)
+                  handleAsOperator(as)
+                  handleConditionalExpressionColon()
+                  handleLiteralNull(null)
+                endConditionalExpression(?, :)
+                handleAssignmentExpression(=)
+              endInitializer(,)
+              beginInitializer(y)
+                handleIdentifier(y, expression)
+                handleNoTypeArguments(=)
+                handleNoArguments(=)
+                handleSend(y, =)
+                handleLiteralInt(0)
+                handleAssignmentExpression(=)
+              endInitializer(;)
+            endInitializers(2, :, ;)
+            handleAsyncModifier(null, null)
+            handleEmptyFunctionBody(;)
+          endClassConstructor(null, Foo, (, :, ;)
+        endMember()
+        beginMetadataStar(void)
+        endMetadataStar(0)
+        beginMember()
+          beginMethod(null, null, null, null, null, foo)
+            handleVoidKeyword(void)
+            handleIdentifier(foo, methodDeclaration)
+            handleNoTypeVariables(()
+            beginFormalParameters((, MemberKind.NonStaticMethod)
+              beginMetadataStar(dynamic)
+              endMetadataStar(0)
+              beginFormalParameter(dynamic, MemberKind.NonStaticMethod, null, null, null)
+                handleIdentifier(dynamic, typeReference)
+                handleNoTypeArguments(x)
+                handleType(dynamic, null)
+                handleIdentifier(x, formalParameterDeclaration)
+                handleFormalParameterWithoutValue())
+              endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+            endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+            handleNoInitializers()
+            handleAsyncModifier(null, null)
+            beginBlockFunctionBody({)
+              beginIfStatement(if)
+                handleIdentifier(x, expression)
+                handleNoTypeArguments(is)
+                handleNoArguments(is)
+                handleSend(x, is)
+                beginIsOperatorType(is)
+                  handleIdentifier(String, typeReference)
+                  handleNoTypeArguments(?)
+                  handleType(String, ?)
+                endIsOperatorType(is)
+                handleIsOperator(is, null)
+                beginConditionalExpression(?)
+                  handleLiteralInt(4)
+                  handleConditionalExpressionColon()
+                  handleLiteralInt(2)
+                  beginBinaryExpression(==)
+                    handleLiteralInt(4)
+                  endBinaryExpression(==)
+                endConditionalExpression(?, :)
+                handleParenthesizedCondition(()
+                beginThenStatement({)
+                  beginBlock({, BlockKind(statement))
+                    handleIdentifier(print, expression)
+                    handleNoTypeArguments(()
+                    beginArguments(()
+                      beginLiteralString("hello")
+                      endLiteralString(0, ))
+                    endArguments(1, (, ))
+                    handleSend(print, ;)
+                    handleExpressionStatement(;)
+                  endBlock(1, {, }, BlockKind(statement))
+                endThenStatement(})
+              endIfStatement(if, null)
+            endBlockFunctionBody(1, {, })
+          endClassMethod(null, void, (, null, })
+        endMember()
+        beginMetadataStar(void)
+        endMetadataStar(0)
+        beginMember()
+          beginMethod(null, null, null, null, null, bar)
+            handleVoidKeyword(void)
+            handleIdentifier(bar, methodDeclaration)
+            handleNoTypeVariables(()
+            beginFormalParameters((, MemberKind.NonStaticMethod)
+              beginMetadataStar(dynamic)
+              endMetadataStar(0)
+              beginFormalParameter(dynamic, MemberKind.NonStaticMethod, null, null, null)
+                handleIdentifier(dynamic, typeReference)
+                handleNoTypeArguments(x)
+                handleType(dynamic, null)
+                handleIdentifier(x, formalParameterDeclaration)
+                handleFormalParameterWithoutValue())
+              endFormalParameter(null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+            endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+            handleNoInitializers()
+            handleAsyncModifier(null, null)
+            beginBlockFunctionBody({)
+              beginIfStatement(if)
+                handleIdentifier(x, expression)
+                handleNoTypeArguments(is)
+                handleNoArguments(is)
+                handleSend(x, is)
+                beginIsOperatorType(is)
+                  handleIdentifier(String, typeReference)
+                  handleNoTypeArguments(?)
+                  handleType(String, null)
+                endIsOperatorType(is)
+                handleIsOperator(is, null)
+                beginConditionalExpression(?)
+                  handleLiteralInt(4)
+                  handleConditionalExpressionColon()
+                  handleLiteralInt(2)
+                  beginBinaryExpression(==)
+                    handleLiteralInt(4)
+                  endBinaryExpression(==)
+                endConditionalExpression(?, :)
+                handleParenthesizedCondition(()
+                beginThenStatement({)
+                  beginBlock({, BlockKind(statement))
+                    handleIdentifier(print, expression)
+                    handleNoTypeArguments(()
+                    beginArguments(()
+                      beginLiteralString("hello")
+                      endLiteralString(0, ))
+                    endArguments(1, (, ))
+                    handleSend(print, ;)
+                    handleExpressionStatement(;)
+                  endBlock(1, {, }, BlockKind(statement))
+                endThenStatement(})
+              endIfStatement(if, null)
+            endBlockFunctionBody(1, {, })
+          endClassMethod(null, void, (, null, })
+        endMember()
+      endClassOrMixinBody(DeclarationKind.Class, 5, {, })
+    endClassDeclaration(class, })
+  endTopLevelDeclaration()
 endCompilationUnit(1, )
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 4a96eb21..1246230 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
@@ -33,6 +33,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseFields({, null, null, null, null, null, null, {, Instance of 'SimpleNullableType', x, DeclarationKind.Class, Foo, false)
+                listener: beginFields({)
                 listener: handleIdentifier(String, typeReference)
                 listener: handleNoTypeArguments(?)
                 listener: handleType(String, ?)
@@ -49,6 +50,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', y, DeclarationKind.Class, Foo, false)
+                listener: beginFields(;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(y)
                 listener: handleType(int, null)
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 e2450db..8553682 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_41597.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_41597.dart.expect
@@ -2,145 +2,147 @@
   beginMetadataStar(bool)
   endMetadataStar(0)
   beginTopLevelMember(bool)
-    handleIdentifier(bool, typeReference)
-    handleNoTypeArguments(x)
-    handleType(bool, null)
-    handleIdentifier(x, topLevelVariableDeclaration)
-    handleNoFieldInitializer(;)
-  endTopLevelFields(null, null, null, null, null, 1, bool, ;)
-endTopLevelDeclaration(bool)
-beginMetadataStar(bool)
-endMetadataStar(0)
-beginTopLevelMember(bool)
-  handleIdentifier(bool, typeReference)
-  handleNoTypeArguments(x)
-  handleType(bool, null)
-  handleIdentifier(x, topLevelVariableDeclaration)
-  handleNoFieldInitializer(;)
-endTopLevelFields(null, null, null, null, null, 1, bool, ;)
-endTopLevelDeclaration(errors)
-beginMetadataStar(errors)
-endMetadataStar(0)
-beginTopLevelMember(errors)
-beginTopLevelMethod(;, null)
-  handleNoType(;)
-  handleIdentifier(errors, topLevelFunctionDeclaration)
-  handleNoTypeVariables(()
-  beginFormalParameters((, MemberKind.TopLevelMethod)
-  endFormalParameters(0, (, ), MemberKind.TopLevelMethod)
-  handleAsyncModifier(null, null)
-  beginBlockFunctionBody({)
-    handleIdentifier(print, expression)
-    handleNoTypeArguments(()
-    beginArguments(()
-      handleIdentifier(x, expression)
-      handleNoTypeArguments())
-      handleNoArguments())
-      handleSend(x, ))
-    endArguments(1, (, ))
-    handleSend(print, ;)
-    handleExpressionStatement(;)
-    handleIdentifier(print, expression)
-    handleNoTypeArguments(()
-    beginArguments(()
-      handleIdentifier(x, expression)
-      handleNoTypeArguments(!)
-      handleNoArguments(!)
-      handleSend(x, !)
-      handleNonNullAssertExpression(!)
-    endArguments(1, (, ))
-    handleSend(print, ;)
-    handleExpressionStatement(;)
-    handleIdentifier(print, expression)
-    handleNoTypeArguments(()
-    beginArguments(()
-      handleIdentifier(x, expression)
-      handleNoTypeArguments())
-      handleNoArguments())
-      handleSend(x, ))
-      handleUnaryPrefixExpression(!)
-    endArguments(1, (, ))
-    handleSend(print, ;)
-    handleExpressionStatement(;)
-  endBlockFunctionBody(3, {, })
-endTopLevelMethod(errors, null, })
-endTopLevelDeclaration(class)
-beginMetadataStar(class)
-endMetadataStar(0)
-beginClassOrNamedMixinApplicationPrelude(class)
-handleIdentifier(C, classOrMixinDeclaration)
-handleNoTypeVariables({)
-beginClassDeclaration(class, null, C)
-  handleNoType(C)
-  handleClassExtends(null, 1)
-  handleClassNoWithClause()
-  handleClassOrMixinImplements(null, 0)
-  handleClassHeader(class, class, null)
-  beginClassOrMixinBody(DeclarationKind.Class, {)
-    beginMetadataStar(C)
-    endMetadataStar(0)
-    beginMember()
-      beginMethod(null, null, null, null, null, C)
-        handleNoType({)
-        handleIdentifier(C, methodDeclaration)
-        handleIdentifier(c0, methodDeclarationContinuation)
-        handleQualified(.)
-        handleNoTypeVariables(()
-        beginFormalParameters((, MemberKind.NonStaticMethod)
-        endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
-        beginInitializers(:)
-          beginInitializer(super)
-            handleSuperExpression(super, expression)
-            handleNoTypeArguments(()
-            beginArguments(()
-            endArguments(0, (, ))
-            handleSend(super, ;)
-          endInitializer(;)
-        endInitializers(1, :, ;)
-        handleAsyncModifier(null, null)
-        handleEmptyFunctionBody(;)
-      endClassConstructor(null, C, (, :, ;)
-    endMember()
-    beginMetadataStar(C)
-    endMetadataStar(0)
-    beginMember()
-      beginMethod(null, null, null, null, null, C)
-        handleNoType(;)
-        handleIdentifier(C, methodDeclaration)
-        handleIdentifier(c1, methodDeclarationContinuation)
-        handleQualified(.)
-        handleNoTypeVariables(()
-        beginFormalParameters((, MemberKind.NonStaticMethod)
-        endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
-        beginInitializers(:)
-          beginInitializer(super)
-            handleSuperExpression(super, expression)
-            handleNoTypeArguments(()
-            beginArguments(()
-            endArguments(0, (, ))
-            handleSend(super, !)
-            handleNonNullAssertExpression(!)
-          endInitializer(;)
-        endInitializers(1, :, ;)
-        handleAsyncModifier(null, null)
-        handleEmptyFunctionBody(;)
-      endClassConstructor(null, C, (, :, ;)
-    endMember()
-  endClassOrMixinBody(DeclarationKind.Class, 2, {, })
-endClassDeclaration(class, })
-endTopLevelDeclaration(main)
-beginMetadataStar(main)
-endMetadataStar(0)
-beginTopLevelMember(main)
-beginTopLevelMethod(}, null)
-  handleNoType(})
-  handleIdentifier(main, topLevelFunctionDeclaration)
-  handleNoTypeVariables(()
-  beginFormalParameters((, MemberKind.TopLevelMethod)
-  endFormalParameters(0, (, ), MemberKind.TopLevelMethod)
-  handleAsyncModifier(null, null)
-  beginBlockFunctionBody({)
-  endBlockFunctionBody(0, {, })
-endTopLevelMethod(main, null, })
-endTopLevelDeclaration()
+    beginFields()
+      handleIdentifier(bool, typeReference)
+      handleNoTypeArguments(x)
+      handleType(bool, null)
+      handleIdentifier(x, topLevelVariableDeclaration)
+      handleNoFieldInitializer(;)
+    endTopLevelFields(null, null, null, null, null, 1, bool, ;)
+  endTopLevelDeclaration(bool)
+  beginMetadataStar(bool)
+  endMetadataStar(0)
+  beginTopLevelMember(bool)
+    beginFields(;)
+      handleIdentifier(bool, typeReference)
+      handleNoTypeArguments(x)
+      handleType(bool, null)
+      handleIdentifier(x, topLevelVariableDeclaration)
+      handleNoFieldInitializer(;)
+    endTopLevelFields(null, null, null, null, null, 1, bool, ;)
+  endTopLevelDeclaration(errors)
+  beginMetadataStar(errors)
+  endMetadataStar(0)
+  beginTopLevelMember(errors)
+    beginTopLevelMethod(;, null)
+      handleNoType(;)
+      handleIdentifier(errors, topLevelFunctionDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.TopLevelMethod)
+      endFormalParameters(0, (, ), MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      beginBlockFunctionBody({)
+        handleIdentifier(print, expression)
+        handleNoTypeArguments(()
+        beginArguments(()
+          handleIdentifier(x, expression)
+          handleNoTypeArguments())
+          handleNoArguments())
+          handleSend(x, ))
+        endArguments(1, (, ))
+        handleSend(print, ;)
+        handleExpressionStatement(;)
+        handleIdentifier(print, expression)
+        handleNoTypeArguments(()
+        beginArguments(()
+          handleIdentifier(x, expression)
+          handleNoTypeArguments(!)
+          handleNoArguments(!)
+          handleSend(x, !)
+          handleNonNullAssertExpression(!)
+        endArguments(1, (, ))
+        handleSend(print, ;)
+        handleExpressionStatement(;)
+        handleIdentifier(print, expression)
+        handleNoTypeArguments(()
+        beginArguments(()
+          handleIdentifier(x, expression)
+          handleNoTypeArguments())
+          handleNoArguments())
+          handleSend(x, ))
+          handleUnaryPrefixExpression(!)
+        endArguments(1, (, ))
+        handleSend(print, ;)
+        handleExpressionStatement(;)
+      endBlockFunctionBody(3, {, })
+    endTopLevelMethod(errors, null, })
+  endTopLevelDeclaration(class)
+  beginMetadataStar(class)
+  endMetadataStar(0)
+  beginClassOrNamedMixinApplicationPrelude(class)
+    handleIdentifier(C, classOrMixinDeclaration)
+    handleNoTypeVariables({)
+    beginClassDeclaration(class, null, C)
+      handleNoType(C)
+      handleClassExtends(null, 1)
+      handleClassNoWithClause()
+      handleClassOrMixinImplements(null, 0)
+      handleClassHeader(class, class, null)
+      beginClassOrMixinBody(DeclarationKind.Class, {)
+        beginMetadataStar(C)
+        endMetadataStar(0)
+        beginMember()
+          beginMethod(null, null, null, null, null, C)
+            handleNoType({)
+            handleIdentifier(C, methodDeclaration)
+            handleIdentifier(c0, methodDeclarationContinuation)
+            handleQualified(.)
+            handleNoTypeVariables(()
+            beginFormalParameters((, MemberKind.NonStaticMethod)
+            endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+            beginInitializers(:)
+              beginInitializer(super)
+                handleSuperExpression(super, expression)
+                handleNoTypeArguments(()
+                beginArguments(()
+                endArguments(0, (, ))
+                handleSend(super, ;)
+              endInitializer(;)
+            endInitializers(1, :, ;)
+            handleAsyncModifier(null, null)
+            handleEmptyFunctionBody(;)
+          endClassConstructor(null, C, (, :, ;)
+        endMember()
+        beginMetadataStar(C)
+        endMetadataStar(0)
+        beginMember()
+          beginMethod(null, null, null, null, null, C)
+            handleNoType(;)
+            handleIdentifier(C, methodDeclaration)
+            handleIdentifier(c1, methodDeclarationContinuation)
+            handleQualified(.)
+            handleNoTypeVariables(()
+            beginFormalParameters((, MemberKind.NonStaticMethod)
+            endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+            beginInitializers(:)
+              beginInitializer(super)
+                handleSuperExpression(super, expression)
+                handleNoTypeArguments(()
+                beginArguments(()
+                endArguments(0, (, ))
+                handleSend(super, !)
+                handleNonNullAssertExpression(!)
+              endInitializer(;)
+            endInitializers(1, :, ;)
+            handleAsyncModifier(null, null)
+            handleEmptyFunctionBody(;)
+          endClassConstructor(null, C, (, :, ;)
+        endMember()
+      endClassOrMixinBody(DeclarationKind.Class, 2, {, })
+    endClassDeclaration(class, })
+  endTopLevelDeclaration(main)
+  beginMetadataStar(main)
+  endMetadataStar(0)
+  beginTopLevelMember(main)
+    beginTopLevelMethod(}, null)
+      handleNoType(})
+      handleIdentifier(main, topLevelFunctionDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.TopLevelMethod)
+      endFormalParameters(0, (, ), MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      beginBlockFunctionBody({)
+      endBlockFunctionBody(0, {, })
+    endTopLevelMethod(main, null, })
+  endTopLevelDeclaration()
 endCompilationUnit(5, )
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 bb28e5b..80be6b7 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
@@ -9,6 +9,7 @@
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(bool)
       parseFields(, null, null, null, null, null, null, , Instance of 'SimpleType', x, DeclarationKind.TopLevel, null, false)
+        listener: beginFields()
         listener: handleIdentifier(bool, typeReference)
         listener: handleNoTypeArguments(x)
         listener: handleType(bool, null)
@@ -25,6 +26,7 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(bool)
       parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', x, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(;)
         listener: handleIdentifier(bool, typeReference)
         listener: handleNoTypeArguments(x)
         listener: handleType(bool, null)
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 c9fe677..5447d9d 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_42621.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_42621.dart.expect
@@ -39,7 +39,7 @@
             handleNoTypeArguments(=)
             handleNoArguments(=)
             handleSend(x, =)
-            endBinaryExpression(..)
+            handleEndingBinaryExpression(..)
             handleIdentifier(json, expression)
             handleNoTypeArguments([)
             handleNoArguments([)
@@ -60,7 +60,7 @@
             handleNoTypeArguments(=)
             handleNoArguments(=)
             handleSend(y, =)
-            endBinaryExpression(..)
+            handleEndingBinaryExpression(..)
             handleIdentifier(json, expression)
             handleNoTypeArguments([)
             handleNoArguments([)
@@ -120,7 +120,7 @@
             handleNoTypeArguments(=)
             handleNoArguments(=)
             handleSend(x, =)
-            endBinaryExpression(..)
+            handleEndingBinaryExpression(..)
             handleIdentifier(json, expression)
             handleNoTypeArguments([)
             handleNoArguments([)
@@ -141,7 +141,7 @@
             handleNoTypeArguments(=)
             handleNoArguments(=)
             handleSend(y, =)
-            endBinaryExpression(..)
+            handleEndingBinaryExpression(..)
             handleIdentifier(json, expression)
             handleNoTypeArguments([)
             handleNoArguments([)
@@ -201,7 +201,7 @@
             handleNoTypeArguments(=)
             handleNoArguments(=)
             handleSend(x, =)
-            endBinaryExpression(..)
+            handleEndingBinaryExpression(..)
             handleIdentifier(json, expression)
             handleNoTypeArguments([)
             handleNoArguments([)
@@ -223,7 +223,7 @@
             handleNoTypeArguments(=)
             handleNoArguments(=)
             handleSend(y, =)
-            endBinaryExpression(..)
+            handleEndingBinaryExpression(..)
             handleIdentifier(json, expression)
             handleNoTypeArguments([)
             handleNoArguments([)
@@ -283,7 +283,7 @@
             handleNoTypeArguments(=)
             handleNoArguments(=)
             handleSend(x, =)
-            endBinaryExpression(..)
+            handleEndingBinaryExpression(..)
             handleIdentifier(json, expression)
             handleNoTypeArguments([)
             handleNoArguments([)
@@ -318,24 +318,26 @@
         beginMetadataStar(List)
         endMetadataStar(0)
         beginMember()
-          handleIdentifier(List, typeReference)
-          handleNoTypeArguments(?)
-          handleType(List, ?)
-          handleIdentifier(x, fieldDeclaration)
-          handleNoFieldInitializer(;)
-        endClassFields(null, null, null, null, null, null, 1, List, ;)
-      endMember()
-      beginMetadataStar(int)
-      endMetadataStar(0)
-      beginMember()
-        handleIdentifier(int, typeReference)
-        handleNoTypeArguments(?)
-        handleType(int, ?)
-        handleIdentifier(y, fieldDeclaration)
-        handleNoFieldInitializer(;)
-      endClassFields(null, null, null, null, null, null, 1, int, ;)
-    endMember()
-  endClassOrMixinBody(DeclarationKind.Class, 2, {, })
-endClassDeclaration(class, })
-endTopLevelDeclaration()
+          beginFields({)
+            handleIdentifier(List, typeReference)
+            handleNoTypeArguments(?)
+            handleType(List, ?)
+            handleIdentifier(x, fieldDeclaration)
+            handleNoFieldInitializer(;)
+          endClassFields(null, null, null, null, null, null, 1, List, ;)
+        endMember()
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(?)
+            handleType(int, ?)
+            handleIdentifier(y, fieldDeclaration)
+            handleNoFieldInitializer(;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+      endClassOrMixinBody(DeclarationKind.Class, 2, {, })
+    endClassDeclaration(class, })
+  endTopLevelDeclaration()
 endCompilationUnit(5, )
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 c196fb5..b50f901 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
@@ -77,7 +77,7 @@
                         parseArgumentsOpt(x)
                           listener: handleNoArguments(=)
                         listener: handleSend(x, =)
-                      listener: endBinaryExpression(..)
+                      listener: handleEndingBinaryExpression(..)
                       parseArgumentOrIndexStar(x, Instance of 'NoTypeParamOrArg', false)
                       parseExpressionWithoutCascade(=)
                         parsePrecedenceExpression(=, 1, false)
@@ -121,7 +121,7 @@
                         parseArgumentsOpt(y)
                           listener: handleNoArguments(=)
                         listener: handleSend(y, =)
-                      listener: endBinaryExpression(..)
+                      listener: handleEndingBinaryExpression(..)
                       parseArgumentOrIndexStar(y, Instance of 'NoTypeParamOrArg', false)
                       parseExpressionWithoutCascade(=)
                         parsePrecedenceExpression(=, 1, false)
@@ -238,7 +238,7 @@
                         parseArgumentsOpt(x)
                           listener: handleNoArguments(=)
                         listener: handleSend(x, =)
-                      listener: endBinaryExpression(..)
+                      listener: handleEndingBinaryExpression(..)
                       parseArgumentOrIndexStar(x, Instance of 'NoTypeParamOrArg', false)
                       parseExpressionWithoutCascade(=)
                         parsePrecedenceExpression(=, 1, false)
@@ -282,7 +282,7 @@
                         parseArgumentsOpt(y)
                           listener: handleNoArguments(=)
                         listener: handleSend(y, =)
-                      listener: endBinaryExpression(..)
+                      listener: handleEndingBinaryExpression(..)
                       parseArgumentOrIndexStar(y, Instance of 'NoTypeParamOrArg', false)
                       parseExpressionWithoutCascade(=)
                         parsePrecedenceExpression(=, 1, false)
@@ -399,7 +399,7 @@
                         parseArgumentsOpt(x)
                           listener: handleNoArguments(=)
                         listener: handleSend(x, =)
-                      listener: endBinaryExpression(..)
+                      listener: handleEndingBinaryExpression(..)
                       parseArgumentOrIndexStar(x, Instance of 'NoTypeParamOrArg', false)
                       parseExpressionWithoutCascade(=)
                         parsePrecedenceExpression(=, 1, false)
@@ -453,7 +453,7 @@
                         parseArgumentsOpt(y)
                           listener: handleNoArguments(=)
                         listener: handleSend(y, =)
-                      listener: endBinaryExpression(..)
+                      listener: handleEndingBinaryExpression(..)
                       parseArgumentOrIndexStar(y, Instance of 'NoTypeParamOrArg', false)
                       parseExpressionWithoutCascade(=)
                         parsePrecedenceExpression(=, 1, false)
@@ -570,7 +570,7 @@
                         parseArgumentsOpt(x)
                           listener: handleNoArguments(=)
                         listener: handleSend(x, =)
-                      listener: endBinaryExpression(..)
+                      listener: handleEndingBinaryExpression(..)
                       parseArgumentOrIndexStar(x, Instance of 'NoTypeParamOrArg', false)
                       parseExpressionWithoutCascade(=)
                         parsePrecedenceExpression(=, 1, false)
@@ -643,6 +643,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseFields({, null, null, null, null, null, null, {, Instance of 'SimpleNullableType', x, DeclarationKind.Class, Order, false)
+                listener: beginFields({)
                 listener: handleIdentifier(List, typeReference)
                 listener: handleNoTypeArguments(?)
                 listener: handleType(List, ?)
@@ -659,6 +660,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleNullableType', y, DeclarationKind.Class, Order, false)
+                listener: beginFields(;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(?)
                 listener: handleType(int, ?)
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 a13f528..4db9fb9 100644
--- a/pkg/front_end/parser_testcases/nnbd/late_member.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/late_member.dart.expect
@@ -46,7 +46,7 @@
               handleNoTypeArguments(;)
               handleNoArguments(;)
               handleSend(late, ;)
-              endBinaryExpression(.)
+              handleEndingBinaryExpression(.)
             endVariableInitializer(=)
           endInitializedIdentifier(bar)
         endVariablesDeclaration(1, ;)
@@ -76,7 +76,7 @@
         beginArguments(()
         endArguments(0, (, ))
         handleSend(late, ;)
-        endBinaryExpression(.)
+        handleEndingBinaryExpression(.)
         handleExpressionStatement(;)
         beginNewExpression(new)
           handleIdentifier(Y, constructorReference)
@@ -91,7 +91,7 @@
         handleNoTypeArguments(;)
         handleNoArguments(;)
         handleSend(late, ;)
-        endBinaryExpression(.)
+        handleEndingBinaryExpression(.)
         handleExpressionStatement(;)
       endBlockFunctionBody(6, {, })
     endTopLevelMethod(main, null, })
@@ -171,16 +171,17 @@
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          handleIdentifier(int, typeReference)
-          handleNoTypeArguments(late)
-          handleType(int, null)
-          handleIdentifier(late, fieldDeclaration)
-          beginFieldInitializer(=)
-            handleLiteralInt(42)
-          endFieldInitializer(=, ;)
-        endClassFields(null, null, null, null, null, null, 1, int, ;)
-      endMember()
-    endClassOrMixinBody(DeclarationKind.Class, 1, {, })
-  endClassDeclaration(class, })
-endTopLevelDeclaration()
+          beginFields({)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(late)
+            handleType(int, null)
+            handleIdentifier(late, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(42)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+      endClassOrMixinBody(DeclarationKind.Class, 1, {, })
+    endClassDeclaration(class, })
+  endTopLevelDeclaration()
 endCompilationUnit(4, )
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 5eea6a8..36d7e57 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
@@ -107,7 +107,7 @@
                                 parseArgumentsOpt(late)
                                   listener: handleNoArguments(;)
                                 listener: handleSend(late, ;)
-                          listener: endBinaryExpression(.)
+                          listener: handleEndingBinaryExpression(.)
                       listener: endVariableInitializer(=)
                     listener: endInitializedIdentifier(bar)
                   ensureSemicolon(late)
@@ -204,7 +204,7 @@
                                     listener: beginArguments(()
                                     listener: endArguments(0, (, ))
                               listener: handleSend(late, ;)
-                        listener: endBinaryExpression(.)
+                        listener: handleEndingBinaryExpression(.)
                     ensureSemicolon())
                     listener: handleExpressionStatement(;)
           notEofOrValue(}, new)
@@ -244,7 +244,7 @@
                               parseArgumentsOpt(late)
                                 listener: handleNoArguments(;)
                               listener: handleSend(late, ;)
-                        listener: endBinaryExpression(.)
+                        listener: handleEndingBinaryExpression(.)
                     ensureSemicolon(late)
                     listener: handleExpressionStatement(;)
           notEofOrValue(}, })
@@ -433,6 +433,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseFields({, null, null, null, null, null, null, {, Instance of 'SimpleType', late, DeclarationKind.Class, Y, false)
+                listener: beginFields({)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(late)
                 listener: handleType(int, null)
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 c8f987c..d7696f5 100644
--- a/pkg/front_end/parser_testcases/nnbd/late_modifier.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/late_modifier.dart.expect
@@ -46,7 +46,7 @@
               handleNoTypeArguments(;)
               handleNoArguments(;)
               handleSend(late, ;)
-              endBinaryExpression(.)
+              handleEndingBinaryExpression(.)
             endVariableInitializer(=)
           endInitializedIdentifier(bar)
         endVariablesDeclaration(1, ;)
@@ -76,7 +76,7 @@
         beginArguments(()
         endArguments(0, (, ))
         handleSend(late, ;)
-        endBinaryExpression(.)
+        handleEndingBinaryExpression(.)
         handleExpressionStatement(;)
         beginNewExpression(new)
           handleIdentifier(Y, constructorReference)
@@ -91,7 +91,7 @@
         handleNoTypeArguments(;)
         handleNoArguments(;)
         handleSend(late, ;)
-        endBinaryExpression(.)
+        handleEndingBinaryExpression(.)
         handleExpressionStatement(;)
         beginMetadataStar(late)
         endMetadataStar(0)
@@ -189,16 +189,17 @@
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          handleIdentifier(int, typeReference)
-          handleNoTypeArguments(late)
-          handleType(int, null)
-          handleIdentifier(late, fieldDeclaration)
-          beginFieldInitializer(=)
-            handleLiteralInt(42)
-          endFieldInitializer(=, ;)
-        endClassFields(null, null, null, null, null, null, 1, int, ;)
-      endMember()
-    endClassOrMixinBody(DeclarationKind.Class, 1, {, })
-  endClassDeclaration(class, })
-endTopLevelDeclaration()
+          beginFields({)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(late)
+            handleType(int, null)
+            handleIdentifier(late, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(42)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+      endClassOrMixinBody(DeclarationKind.Class, 1, {, })
+    endClassDeclaration(class, })
+  endTopLevelDeclaration()
 endCompilationUnit(4, )
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 8e0a141..5395458 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
@@ -107,7 +107,7 @@
                                 parseArgumentsOpt(late)
                                   listener: handleNoArguments(;)
                                 listener: handleSend(late, ;)
-                          listener: endBinaryExpression(.)
+                          listener: handleEndingBinaryExpression(.)
                       listener: endVariableInitializer(=)
                     listener: endInitializedIdentifier(bar)
                   ensureSemicolon(late)
@@ -204,7 +204,7 @@
                                     listener: beginArguments(()
                                     listener: endArguments(0, (, ))
                               listener: handleSend(late, ;)
-                        listener: endBinaryExpression(.)
+                        listener: handleEndingBinaryExpression(.)
                     ensureSemicolon())
                     listener: handleExpressionStatement(;)
           notEofOrValue(}, new)
@@ -244,7 +244,7 @@
                               parseArgumentsOpt(late)
                                 listener: handleNoArguments(;)
                               listener: handleSend(late, ;)
-                        listener: endBinaryExpression(.)
+                        listener: handleEndingBinaryExpression(.)
                     ensureSemicolon(late)
                     listener: handleExpressionStatement(;)
           notEofOrValue(}, late)
@@ -481,6 +481,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseFields({, null, null, null, null, null, null, {, Instance of 'SimpleType', late, DeclarationKind.Class, Y, false)
+                listener: beginFields({)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(late)
                 listener: handleType(int, null)
diff --git a/pkg/front_end/parser_testcases/nnbd/nullCheckBeforeIndex.dart.expect b/pkg/front_end/parser_testcases/nnbd/nullCheckBeforeIndex.dart.expect
index 9189542..3b88ac0 100644
--- a/pkg/front_end/parser_testcases/nnbd/nullCheckBeforeIndex.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/nullCheckBeforeIndex.dart.expect
@@ -18,13 +18,13 @@
         handleNoTypeArguments(!)
         handleNoArguments(!)
         handleSend(bar, !)
-        endBinaryExpression(.)
+        handleEndingBinaryExpression(.)
         handleNonNullAssertExpression(!)
         handleIdentifier(baz, expressionContinuation)
         handleNoTypeArguments([)
         handleNoArguments([)
         handleSend(baz, [)
-        endBinaryExpression(.)
+        handleEndingBinaryExpression(.)
         handleIdentifier(arg, expression)
         handleNoTypeArguments(])
         handleNoArguments(])
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 d874387..bdbfb93 100644
--- a/pkg/front_end/parser_testcases/nnbd/nullCheckBeforeIndex.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/nnbd/nullCheckBeforeIndex.dart.intertwined.expect
@@ -53,7 +53,7 @@
                             parseArgumentsOpt(bar)
                               listener: handleNoArguments(!)
                             listener: handleSend(bar, !)
-                      listener: endBinaryExpression(.)
+                      listener: handleEndingBinaryExpression(.)
                       listener: handleNonNullAssertExpression(!)
                       parsePrimary(., expressionContinuation)
                         parseSendOrFunctionLiteral(., expressionContinuation)
@@ -64,7 +64,7 @@
                             parseArgumentsOpt(baz)
                               listener: handleNoArguments([)
                             listener: handleSend(baz, [)
-                      listener: endBinaryExpression(.)
+                      listener: handleEndingBinaryExpression(.)
                       parseArgumentOrIndexStar(baz, Instance of 'NoTypeParamOrArg', false)
                         parseExpression([)
                           parsePrecedenceExpression([, 1, true)
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 25b8a57..27a18c6 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
@@ -18,14 +18,14 @@
         handleNoTypeArguments())
         handleNoArguments())
         handleSend(bar, ))
-        endBinaryExpression(.)
+        handleEndingBinaryExpression(.)
         handleParenthesizedExpression(()
         handleNonNullAssertExpression(!)
         handleIdentifier(baz, expressionContinuation)
         handleNoTypeArguments([)
         handleNoArguments([)
         handleSend(baz, [)
-        endBinaryExpression(.)
+        handleEndingBinaryExpression(.)
         handleIdentifier(arg, expression)
         handleNoTypeArguments(])
         handleNoArguments(])
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 ab2b8a7..34634cc 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
@@ -62,7 +62,7 @@
                                               parseArgumentsOpt(bar)
                                                 listener: handleNoArguments())
                                               listener: handleSend(bar, ))
-                                        listener: endBinaryExpression(.)
+                                        listener: handleEndingBinaryExpression(.)
                                     ensureCloseParen(bar, ()
                                 listener: handleParenthesizedExpression(()
                         listener: handleNonNullAssertExpression(!)
@@ -75,7 +75,7 @@
                               parseArgumentsOpt(baz)
                                 listener: handleNoArguments([)
                               listener: handleSend(baz, [)
-                        listener: endBinaryExpression(.)
+                        listener: handleEndingBinaryExpression(.)
                         parseArgumentOrIndexStar(baz, Instance of 'NoTypeParamOrArg', false)
                           parseExpression([)
                             parsePrecedenceExpression([, 1, true)
diff --git a/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex3.dart.expect b/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex3.dart.expect
index 67ac636..5050179 100644
--- a/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex3.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex3.dart.expect
@@ -18,7 +18,7 @@
         handleNoTypeArguments(!)
         handleNoArguments(!)
         handleSend(bar, !)
-        endBinaryExpression(.)
+        handleEndingBinaryExpression(.)
         handleNonNullAssertExpression(!)
         handleIdentifier(arg, expression)
         handleNoTypeArguments(])
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 927470a..350b5b0 100644
--- a/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex3.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex3.dart.intertwined.expect
@@ -53,7 +53,7 @@
                             parseArgumentsOpt(bar)
                               listener: handleNoArguments(!)
                             listener: handleSend(bar, !)
-                      listener: endBinaryExpression(.)
+                      listener: handleEndingBinaryExpression(.)
                       listener: handleNonNullAssertExpression(!)
                       parseArgumentOrIndexStar(!, Instance of 'NoTypeParamOrArg', false)
                         parseExpression([)
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 c560018..096a6b9 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
@@ -18,7 +18,7 @@
         handleNoTypeArguments())
         handleNoArguments())
         handleSend(bar, ))
-        endBinaryExpression(.)
+        handleEndingBinaryExpression(.)
         handleParenthesizedExpression(()
         handleNonNullAssertExpression(!)
         handleIdentifier(arg, expression)
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 eac1369..1ce8a71 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
@@ -62,7 +62,7 @@
                                               parseArgumentsOpt(bar)
                                                 listener: handleNoArguments())
                                               listener: handleSend(bar, ))
-                                        listener: endBinaryExpression(.)
+                                        listener: handleEndingBinaryExpression(.)
                                     ensureCloseParen(bar, ()
                                 listener: handleParenthesizedExpression(()
                         listener: handleNonNullAssertExpression(!)
diff --git a/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex4.dart.expect b/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex4.dart.expect
index cba8456..e58d1a7 100644
--- a/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex4.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex4.dart.expect
@@ -19,7 +19,7 @@
         handleNoTypeArguments(!)
         handleNoArguments(!)
         handleSend(bar, !)
-        endBinaryExpression(.)
+        handleEndingBinaryExpression(.)
         handleNonNullAssertExpression(!)
         handleIdentifier(arg, expression)
         handleNoTypeArguments(])
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 728bae3..c995f0b 100644
--- a/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex4.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex4.dart.intertwined.expect
@@ -54,7 +54,7 @@
                             parseArgumentsOpt(bar)
                               listener: handleNoArguments(!)
                             listener: handleSend(bar, !)
-                      listener: endBinaryExpression(.)
+                      listener: handleEndingBinaryExpression(.)
                       listener: handleNonNullAssertExpression(!)
                       parseArgumentOrIndexStar(!, Instance of 'NoTypeParamOrArg', false)
                         parseExpression([)
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 033a883..547ae08 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
@@ -20,7 +20,7 @@
         handleNoTypeArguments(!)
         handleNoArguments(!)
         handleSend(bar, !)
-        endBinaryExpression(.)
+        handleEndingBinaryExpression(.)
         handleNonNullAssertExpression(!)
         handleParenthesizedExpression(()
         handleIdentifier(arg, expression)
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 d1e5df3..4aff390 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
@@ -73,7 +73,7 @@
                                               parseArgumentsOpt(bar)
                                                 listener: handleNoArguments(!)
                                               listener: handleSend(bar, !)
-                                        listener: endBinaryExpression(.)
+                                        listener: handleEndingBinaryExpression(.)
                                         listener: handleNonNullAssertExpression(!)
                                     ensureCloseParen(!, ()
                                 listener: handleParenthesizedExpression(()
diff --git a/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex5.dart.expect b/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex5.dart.expect
index 76089e7..24c1311 100644
--- a/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex5.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex5.dart.expect
@@ -18,7 +18,7 @@
         handleNoTypeArguments(!)
         handleNoArguments(!)
         handleSend(bar, !)
-        endBinaryExpression(.)
+        handleEndingBinaryExpression(.)
         handleNonNullAssertExpression(!)
         handleIdentifier(arg, expression)
         handleNoTypeArguments(])
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 211e2d3..d32485b 100644
--- a/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex5.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex5.dart.intertwined.expect
@@ -53,7 +53,7 @@
                             parseArgumentsOpt(bar)
                               listener: handleNoArguments(!)
                             listener: handleSend(bar, !)
-                      listener: endBinaryExpression(.)
+                      listener: handleEndingBinaryExpression(.)
                       listener: handleNonNullAssertExpression(!)
                       parseArgumentOrIndexStar(!, Instance of 'NoTypeParamOrArg', false)
                         parseExpression([)
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 7220e37..3683c7e 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
@@ -18,7 +18,7 @@
         handleNoTypeArguments(!)
         handleNoArguments(!)
         handleSend(bar, !)
-        endBinaryExpression(.)
+        handleEndingBinaryExpression(.)
         handleNonNullAssertExpression(!)
         handleParenthesizedExpression(()
         handleIdentifier(arg, expression)
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 a61f951..381b7e2 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
@@ -78,7 +78,7 @@
                                                                               parseArgumentsOpt(bar)
                                                                                 listener: handleNoArguments(!)
                                                                               listener: handleSend(bar, !)
-                                                                        listener: endBinaryExpression(.)
+                                                                        listener: handleEndingBinaryExpression(.)
                                                                         listener: handleNonNullAssertExpression(!)
                                                                     ensureCloseParen(!, ()
                                                                 listener: handleParenthesizedExpression(()
diff --git a/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex6.dart.expect b/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex6.dart.expect
index e3a2c5e..2cec617 100644
--- a/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex6.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex6.dart.expect
@@ -19,7 +19,7 @@
         handleNoTypeArguments(!)
         handleNoArguments(!)
         handleSend(bar, !)
-        endBinaryExpression(.)
+        handleEndingBinaryExpression(.)
         handleNonNullAssertExpression(!)
         handleIdentifier(arg, expression)
         handleNoTypeArguments(])
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 219e830..d994cdc 100644
--- a/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex6.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex6.dart.intertwined.expect
@@ -54,7 +54,7 @@
                             parseArgumentsOpt(bar)
                               listener: handleNoArguments(!)
                             listener: handleSend(bar, !)
-                      listener: endBinaryExpression(.)
+                      listener: handleEndingBinaryExpression(.)
                       listener: handleNonNullAssertExpression(!)
                       parseArgumentOrIndexStar(!, Instance of 'NoTypeParamOrArg', false)
                         parseExpression([)
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 cfa73d5..013e4c7 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
@@ -20,7 +20,7 @@
         handleNoTypeArguments(!)
         handleNoArguments(!)
         handleSend(bar, !)
-        endBinaryExpression(.)
+        handleEndingBinaryExpression(.)
         handleNonNullAssertExpression(!)
         handleParenthesizedExpression(()
         handleIdentifier(arg, expression)
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 3e57f89..748dbfd 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
@@ -89,7 +89,7 @@
                                                                               parseArgumentsOpt(bar)
                                                                                 listener: handleNoArguments(!)
                                                                               listener: handleSend(bar, !)
-                                                                        listener: endBinaryExpression(.)
+                                                                        listener: handleEndingBinaryExpression(.)
                                                                         listener: handleNonNullAssertExpression(!)
                                                                     ensureCloseParen(!, ()
                                                                 listener: handleParenthesizedExpression(()
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 939cdb7..dda2592 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
@@ -105,7 +105,7 @@
         handleNoTypeArguments([)
         handleLiteralInt(0)
         handleLiteralList(1, [, null, ])
-        endBinaryExpression(?.)
+        handleEndingBinaryExpression(?.)
         handleExpressionStatement(;)
         handleIdentifier(c1, expression)
         handleNoTypeArguments(?.)
@@ -114,7 +114,7 @@
         handleNoTypeArguments([)
         handleLiteralInt(0)
         handleLiteralList(1, [, null, ])
-        endBinaryExpression(?.)
+        handleEndingBinaryExpression(?.)
         handleLiteralInt(1)
         handleAssignmentExpression(=)
         handleExpressionStatement(;)
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 89f7fa9..bf3ff98 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
@@ -214,7 +214,7 @@
                                   parseLiteralInt([)
                                     listener: handleLiteralInt(0)
                           listener: handleLiteralList(1, [, null, ])
-                      listener: endBinaryExpression(?.)
+                      listener: handleEndingBinaryExpression(?.)
                   ensureSemicolon(])
                   listener: handleExpressionStatement(;)
           notEofOrValue(}, c1)
@@ -245,7 +245,7 @@
                                   parseLiteralInt([)
                                     listener: handleLiteralInt(0)
                           listener: handleLiteralList(1, [, null, ])
-                      listener: endBinaryExpression(?.)
+                      listener: handleEndingBinaryExpression(?.)
                       parsePrecedenceExpression(=, 1, true)
                         parseUnaryExpression(=, true)
                           parsePrimary(=, expression)
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 2258220..ec54bee 100644
--- a/pkg/front_end/parser_testcases/nnbd/required_member.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/required_member.dart.expect
@@ -46,7 +46,7 @@
               handleNoTypeArguments(;)
               handleNoArguments(;)
               handleSend(required, ;)
-              endBinaryExpression(.)
+              handleEndingBinaryExpression(.)
             endVariableInitializer(=)
           endInitializedIdentifier(bar)
         endVariablesDeclaration(1, ;)
@@ -76,7 +76,7 @@
         beginArguments(()
         endArguments(0, (, ))
         handleSend(required, ;)
-        endBinaryExpression(.)
+        handleEndingBinaryExpression(.)
         handleExpressionStatement(;)
         beginNewExpression(new)
           handleIdentifier(Y, constructorReference)
@@ -91,7 +91,7 @@
         handleNoTypeArguments(;)
         handleNoArguments(;)
         handleSend(required, ;)
-        endBinaryExpression(.)
+        handleEndingBinaryExpression(.)
         handleExpressionStatement(;)
       endBlockFunctionBody(6, {, })
     endTopLevelMethod(main, null, })
@@ -171,16 +171,17 @@
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          handleIdentifier(int, typeReference)
-          handleNoTypeArguments(required)
-          handleType(int, null)
-          handleIdentifier(required, fieldDeclaration)
-          beginFieldInitializer(=)
-            handleLiteralInt(42)
-          endFieldInitializer(=, ;)
-        endClassFields(null, null, null, null, null, null, 1, int, ;)
-      endMember()
-    endClassOrMixinBody(DeclarationKind.Class, 1, {, })
-  endClassDeclaration(class, })
-endTopLevelDeclaration()
+          beginFields({)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(required)
+            handleType(int, null)
+            handleIdentifier(required, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(42)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+      endClassOrMixinBody(DeclarationKind.Class, 1, {, })
+    endClassDeclaration(class, })
+  endTopLevelDeclaration()
 endCompilationUnit(4, )
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 d9fa92e..98b6c31 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
@@ -107,7 +107,7 @@
                                 parseArgumentsOpt(required)
                                   listener: handleNoArguments(;)
                                 listener: handleSend(required, ;)
-                          listener: endBinaryExpression(.)
+                          listener: handleEndingBinaryExpression(.)
                       listener: endVariableInitializer(=)
                     listener: endInitializedIdentifier(bar)
                   ensureSemicolon(required)
@@ -204,7 +204,7 @@
                                     listener: beginArguments(()
                                     listener: endArguments(0, (, ))
                               listener: handleSend(required, ;)
-                        listener: endBinaryExpression(.)
+                        listener: handleEndingBinaryExpression(.)
                     ensureSemicolon())
                     listener: handleExpressionStatement(;)
           notEofOrValue(}, new)
@@ -244,7 +244,7 @@
                               parseArgumentsOpt(required)
                                 listener: handleNoArguments(;)
                               listener: handleSend(required, ;)
-                        listener: endBinaryExpression(.)
+                        listener: handleEndingBinaryExpression(.)
                     ensureSemicolon(required)
                     listener: handleExpressionStatement(;)
           notEofOrValue(}, })
@@ -433,6 +433,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseFields({, null, null, null, null, null, null, {, Instance of 'SimpleType', required, DeclarationKind.Class, Y, false)
+                listener: beginFields({)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(required)
                 listener: handleType(int, null)
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 31a989f..7ef46c8 100644
--- a/pkg/front_end/parser_testcases/nnbd/required_modifier.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/required_modifier.dart.expect
@@ -46,7 +46,7 @@
               handleNoTypeArguments(;)
               handleNoArguments(;)
               handleSend(required, ;)
-              endBinaryExpression(.)
+              handleEndingBinaryExpression(.)
             endVariableInitializer(=)
           endInitializedIdentifier(bar)
         endVariablesDeclaration(1, ;)
@@ -76,7 +76,7 @@
         beginArguments(()
         endArguments(0, (, ))
         handleSend(required, ;)
-        endBinaryExpression(.)
+        handleEndingBinaryExpression(.)
         handleExpressionStatement(;)
         beginNewExpression(new)
           handleIdentifier(Y, constructorReference)
@@ -91,7 +91,7 @@
         handleNoTypeArguments(;)
         handleNoArguments(;)
         handleSend(required, ;)
-        endBinaryExpression(.)
+        handleEndingBinaryExpression(.)
         handleExpressionStatement(;)
       endBlockFunctionBody(6, {, })
     endTopLevelMethod(main, null, })
@@ -182,16 +182,17 @@
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          handleIdentifier(int, typeReference)
-          handleNoTypeArguments(required)
-          handleType(int, null)
-          handleIdentifier(required, fieldDeclaration)
-          beginFieldInitializer(=)
-            handleLiteralInt(42)
-          endFieldInitializer(=, ;)
-        endClassFields(null, null, null, null, null, null, 1, int, ;)
-      endMember()
-    endClassOrMixinBody(DeclarationKind.Class, 1, {, })
-  endClassDeclaration(class, })
-endTopLevelDeclaration()
+          beginFields({)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(required)
+            handleType(int, null)
+            handleIdentifier(required, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(42)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+      endClassOrMixinBody(DeclarationKind.Class, 1, {, })
+    endClassDeclaration(class, })
+  endTopLevelDeclaration()
 endCompilationUnit(4, )
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 3acf91c..48cd79f 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
@@ -107,7 +107,7 @@
                                 parseArgumentsOpt(required)
                                   listener: handleNoArguments(;)
                                 listener: handleSend(required, ;)
-                          listener: endBinaryExpression(.)
+                          listener: handleEndingBinaryExpression(.)
                       listener: endVariableInitializer(=)
                     listener: endInitializedIdentifier(bar)
                   ensureSemicolon(required)
@@ -204,7 +204,7 @@
                                     listener: beginArguments(()
                                     listener: endArguments(0, (, ))
                               listener: handleSend(required, ;)
-                        listener: endBinaryExpression(.)
+                        listener: handleEndingBinaryExpression(.)
                     ensureSemicolon())
                     listener: handleExpressionStatement(;)
           notEofOrValue(}, new)
@@ -244,7 +244,7 @@
                               parseArgumentsOpt(required)
                                 listener: handleNoArguments(;)
                               listener: handleSend(required, ;)
-                        listener: endBinaryExpression(.)
+                        listener: handleEndingBinaryExpression(.)
                     ensureSemicolon(required)
                     listener: handleExpressionStatement(;)
           notEofOrValue(}, })
@@ -449,6 +449,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseFields({, null, null, null, null, null, null, {, Instance of 'SimpleType', required, DeclarationKind.Class, Y, false)
+                listener: beginFields({)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(required)
                 listener: handleType(int, null)
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 1b5dade..00c203f 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
@@ -26,7 +26,7 @@
         handleNoTypeArguments([)
         handleLiteralInt(1)
         handleLiteralList(1, [, null, ])
-        endBinaryExpression(?.)
+        handleEndingBinaryExpression(?.)
         handleLiteralInt(42)
         handleAssignmentExpression(=)
         handleExpressionStatement(;)
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 4fc4b624..410d504 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
@@ -73,7 +73,7 @@
                                   parseLiteralInt([)
                                     listener: handleLiteralInt(1)
                           listener: handleLiteralList(1, [, null, ])
-                      listener: endBinaryExpression(?.)
+                      listener: handleEndingBinaryExpression(?.)
                       parsePrecedenceExpression(=, 1, true)
                         parseUnaryExpression(=, true)
                           parsePrimary(=, expression)
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 51ede43..537e3e4 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
@@ -79,7 +79,7 @@
           beginArguments(()
           endArguments(0, (, ))
           handleSend(toString, :)
-          endBinaryExpression(.)
+          handleEndingBinaryExpression(.)
           handleConditionalExpressionColon()
           handleIdentifier(c, expression)
           handleNoTypeArguments(;)
@@ -103,7 +103,7 @@
           beginArguments(()
           endArguments(0, (, ))
           handleSend(toString, :)
-          endBinaryExpression(.)
+          handleEndingBinaryExpression(.)
           handleConditionalExpressionColon()
           handleIdentifier(c, expression)
           handleNoTypeArguments(;)
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 caa1810..433eec8 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
@@ -297,7 +297,7 @@
                                         listener: beginArguments(()
                                         listener: endArguments(0, (, ))
                                   listener: handleSend(toString, :)
-                            listener: endBinaryExpression(.)
+                            listener: handleEndingBinaryExpression(.)
                         ensureColon())
                         listener: handleConditionalExpressionColon()
                         parseExpressionWithoutCascade(:)
@@ -397,7 +397,7 @@
                                         listener: beginArguments(()
                                         listener: endArguments(0, (, ))
                                   listener: handleSend(toString, :)
-                            listener: endBinaryExpression(.)
+                            listener: handleEndingBinaryExpression(.)
                         ensureColon())
                         listener: handleConditionalExpressionColon()
                         parseExpressionWithoutCascade(:)
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 b24106f..7570ccb 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
@@ -25,7 +25,7 @@
           handleNoArguments(!=)
           handleSend(a, !=)
           beginBinaryExpression(!=)
-          handleLiteralNull(null)
+            handleLiteralNull(null)
           endBinaryExpression(!=)
           beginConditionalExpression(?)
             handleNoTypeArguments([)
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 00b2f6a..5a22804 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,83 +2,84 @@
   beginMetadataStar(var)
   endMetadataStar(0)
   beginTopLevelMember(var)
-    handleNoType(var)
-    handleIdentifier(a, topLevelVariableDeclaration)
-    handleNoFieldInitializer(,)
-    handleIdentifier(b, topLevelVariableDeclaration)
-    handleNoFieldInitializer(,)
-    handleIdentifier(c, topLevelVariableDeclaration)
-    handleNoFieldInitializer(,)
-    handleIdentifier(d, topLevelVariableDeclaration)
-    handleNoFieldInitializer(,)
-    handleIdentifier(e, topLevelVariableDeclaration)
-    handleNoFieldInitializer(;)
-  endTopLevelFields(null, null, null, null, var, 5, var, ;)
-endTopLevelDeclaration(List)
-beginMetadataStar(List)
-endMetadataStar(0)
-beginTopLevelMember(List)
-  beginTopLevelMethod(;, null)
-    handleIdentifier(List, typeReference)
-    handleNoTypeArguments(get)
-    handleType(List, null)
-    handleIdentifier(f, topLevelFunctionDeclaration)
-    handleNoTypeVariables(=>)
-    handleNoFormalParameters(=>, MemberKind.TopLevelMethod)
-    handleAsyncModifier(null, null)
-    handleIdentifier(a, expression)
-    handleNoTypeArguments(..)
-    handleNoArguments(..)
-    handleSend(a, ..)
-    beginCascade(..)
-      handleIdentifier(addAll, expressionContinuation)
-      handleNoTypeArguments(()
-      beginArguments(()
-        handleIdentifier(b, expression)
-        handleNoTypeArguments(&&)
-        handleNoArguments(&&)
-        handleSend(b, &&)
-        handleUnaryPrefixExpression(!)
-        beginBinaryExpression(&&)
-        handleIdentifier(c, expression)
-        handleNoTypeArguments([)
-        handleNoArguments([)
-        handleSend(c, [)
-        handleIdentifier(d, expression)
-        handleNoTypeArguments(])
-        handleNoArguments(])
-        handleSend(d, ])
-        handleIndexedExpression(null, [, ])
-        endBinaryExpression(&&)
-        beginConditionalExpression(?)
-          handleNoTypeArguments([)
-          handleIdentifier(a, expression)
-          handleNoTypeArguments(,)
-          handleNoArguments(,)
-          handleSend(a, ,)
-          handleIdentifier(e, expression)
-          handleNoTypeArguments(()
-          beginArguments(()
-            handleIdentifier(f, expression)
-            handleNoTypeArguments())
-            handleNoArguments())
-            handleSend(f, ))
-          endArguments(1, (, ))
-          handleSend(e, ])
-          handleLiteralList(2, [, null, ])
-          handleConditionalExpressionColon()
-          handleNoTypeArguments([)
-          handleIdentifier(a, expression)
-          handleNoTypeArguments(])
-          handleNoArguments(])
-          handleSend(a, ])
-          handleLiteralList(1, [, null, ])
-        endConditionalExpression(?, :)
-      endArguments(1, (, ))
-      handleSend(addAll, ;)
-      endBinaryExpression(..)
-    endCascade()
-    handleExpressionFunctionBody(=>, ;)
-  endTopLevelMethod(List, get, ;)
-endTopLevelDeclaration()
+    beginFields()
+      handleNoType(var)
+      handleIdentifier(a, topLevelVariableDeclaration)
+      handleNoFieldInitializer(,)
+      handleIdentifier(b, topLevelVariableDeclaration)
+      handleNoFieldInitializer(,)
+      handleIdentifier(c, topLevelVariableDeclaration)
+      handleNoFieldInitializer(,)
+      handleIdentifier(d, topLevelVariableDeclaration)
+      handleNoFieldInitializer(,)
+      handleIdentifier(e, topLevelVariableDeclaration)
+      handleNoFieldInitializer(;)
+    endTopLevelFields(null, null, null, null, var, 5, var, ;)
+  endTopLevelDeclaration(List)
+  beginMetadataStar(List)
+  endMetadataStar(0)
+  beginTopLevelMember(List)
+    beginTopLevelMethod(;, null)
+      handleIdentifier(List, typeReference)
+      handleNoTypeArguments(get)
+      handleType(List, null)
+      handleIdentifier(f, topLevelFunctionDeclaration)
+      handleNoTypeVariables(=>)
+      handleNoFormalParameters(=>, MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      handleIdentifier(a, expression)
+      handleNoTypeArguments(..)
+      handleNoArguments(..)
+      handleSend(a, ..)
+      beginCascade(..)
+        handleIdentifier(addAll, expressionContinuation)
+        handleNoTypeArguments(()
+        beginArguments(()
+          handleIdentifier(b, expression)
+          handleNoTypeArguments(&&)
+          handleNoArguments(&&)
+          handleSend(b, &&)
+          handleUnaryPrefixExpression(!)
+          beginBinaryExpression(&&)
+            handleIdentifier(c, expression)
+            handleNoTypeArguments([)
+            handleNoArguments([)
+            handleSend(c, [)
+            handleIdentifier(d, expression)
+            handleNoTypeArguments(])
+            handleNoArguments(])
+            handleSend(d, ])
+            handleIndexedExpression(null, [, ])
+          endBinaryExpression(&&)
+          beginConditionalExpression(?)
+            handleNoTypeArguments([)
+            handleIdentifier(a, expression)
+            handleNoTypeArguments(,)
+            handleNoArguments(,)
+            handleSend(a, ,)
+            handleIdentifier(e, expression)
+            handleNoTypeArguments(()
+            beginArguments(()
+              handleIdentifier(f, expression)
+              handleNoTypeArguments())
+              handleNoArguments())
+              handleSend(f, ))
+            endArguments(1, (, ))
+            handleSend(e, ])
+            handleLiteralList(2, [, null, ])
+            handleConditionalExpressionColon()
+            handleNoTypeArguments([)
+            handleIdentifier(a, expression)
+            handleNoTypeArguments(])
+            handleNoArguments(])
+            handleSend(a, ])
+            handleLiteralList(1, [, null, ])
+          endConditionalExpression(?, :)
+        endArguments(1, (, ))
+        handleSend(addAll, ;)
+        handleEndingBinaryExpression(..)
+      endCascade()
+      handleExpressionFunctionBody(=>, ;)
+    endTopLevelMethod(List, get, ;)
+  endTopLevelDeclaration()
 endCompilationUnit(2, )
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 8be1d99..ffb0a66 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
@@ -9,6 +9,7 @@
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(var)
       parseFields(, null, null, null, null, null, var, var, Instance of 'NoType', a, DeclarationKind.TopLevel, null, false)
+        listener: beginFields()
         listener: handleNoType(var)
         ensureIdentifierPotentiallyRecovered(var, topLevelVariableDeclaration, false)
           listener: handleIdentifier(a, topLevelVariableDeclaration)
@@ -329,7 +330,7 @@
                                 listener: endConditionalExpression(?, :)
                           listener: endArguments(1, (, ))
                     listener: handleSend(addAll, ;)
-                  listener: endBinaryExpression(..)
+                  listener: handleEndingBinaryExpression(..)
                   parseArgumentOrIndexStar(), Instance of 'NoTypeParamOrArg', false)
                   listener: endCascade()
             ensureSemicolon())
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 da71b09..e1e42f2 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,36 +76,38 @@
         beginMetadataStar(late)
         endMetadataStar(0)
         beginMember()
-          handleIdentifier(late, typeReference)
-          handleNoTypeArguments(l)
-          handleType(late, null)
-          handleIdentifier(l, fieldDeclaration)
-          beginFieldInitializer(=)
-            handleIdentifier(late, expression)
-            handleNoTypeArguments(()
-            beginArguments(()
-            endArguments(0, (, ))
-            handleSend(late, ;)
-          endFieldInitializer(=, ;)
-        endClassFields(null, null, null, null, null, null, 1, late, ;)
-      endMember()
-      beginMetadataStar(required)
-      endMetadataStar(0)
-      beginMember()
-        handleIdentifier(required, typeReference)
-        handleNoTypeArguments(r)
-        handleType(required, null)
-        handleIdentifier(r, fieldDeclaration)
-        beginFieldInitializer(=)
-          handleIdentifier(required, expression)
-          handleNoTypeArguments(()
-          beginArguments(()
-          endArguments(0, (, ))
-          handleSend(required, ;)
-        endFieldInitializer(=, ;)
-      endClassFields(null, null, null, null, null, null, 1, required, ;)
-    endMember()
-  endClassOrMixinBody(DeclarationKind.Class, 2, {, })
-endClassDeclaration(class, })
-endTopLevelDeclaration()
+          beginFields({)
+            handleIdentifier(late, typeReference)
+            handleNoTypeArguments(l)
+            handleType(late, null)
+            handleIdentifier(l, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleIdentifier(late, expression)
+              handleNoTypeArguments(()
+              beginArguments(()
+              endArguments(0, (, ))
+              handleSend(late, ;)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, late, ;)
+        endMember()
+        beginMetadataStar(required)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleIdentifier(required, typeReference)
+            handleNoTypeArguments(r)
+            handleType(required, null)
+            handleIdentifier(r, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleIdentifier(required, expression)
+              handleNoTypeArguments(()
+              beginArguments(()
+              endArguments(0, (, ))
+              handleSend(required, ;)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, required, ;)
+        endMember()
+      endClassOrMixinBody(DeclarationKind.Class, 2, {, })
+    endClassDeclaration(class, })
+  endTopLevelDeclaration()
 endCompilationUnit(3, )
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 00d7363..7c38bab 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
@@ -163,6 +163,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseFields({, null, null, null, null, null, null, {, Instance of 'SimpleType', l, DeclarationKind.Class, C, false)
+                listener: beginFields({)
                 listener: handleIdentifier(late, typeReference)
                 listener: handleNoTypeArguments(l)
                 listener: handleType(late, null)
@@ -196,6 +197,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', r, DeclarationKind.Class, C, false)
+                listener: beginFields(;)
                 listener: handleIdentifier(required, typeReference)
                 listener: handleNoTypeArguments(r)
                 listener: handleType(required, null)
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 6a706d5..fd1c433 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,36 +76,38 @@
         beginMetadataStar(Xlate)
         endMetadataStar(0)
         beginMember()
-          handleIdentifier(Xlate, typeReference)
-          handleNoTypeArguments(l)
-          handleType(Xlate, null)
-          handleIdentifier(l, fieldDeclaration)
-          beginFieldInitializer(=)
-            handleIdentifier(Xlate, expression)
-            handleNoTypeArguments(()
-            beginArguments(()
-            endArguments(0, (, ))
-            handleSend(Xlate, ;)
-          endFieldInitializer(=, ;)
-        endClassFields(null, null, null, null, null, null, 1, Xlate, ;)
-      endMember()
-      beginMetadataStar(Xrequired)
-      endMetadataStar(0)
-      beginMember()
-        handleIdentifier(Xrequired, typeReference)
-        handleNoTypeArguments(r)
-        handleType(Xrequired, null)
-        handleIdentifier(r, fieldDeclaration)
-        beginFieldInitializer(=)
-          handleIdentifier(Xrequired, expression)
-          handleNoTypeArguments(()
-          beginArguments(()
-          endArguments(0, (, ))
-          handleSend(Xrequired, ;)
-        endFieldInitializer(=, ;)
-      endClassFields(null, null, null, null, null, null, 1, Xrequired, ;)
-    endMember()
-  endClassOrMixinBody(DeclarationKind.Class, 2, {, })
-endClassDeclaration(class, })
-endTopLevelDeclaration()
+          beginFields({)
+            handleIdentifier(Xlate, typeReference)
+            handleNoTypeArguments(l)
+            handleType(Xlate, null)
+            handleIdentifier(l, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleIdentifier(Xlate, expression)
+              handleNoTypeArguments(()
+              beginArguments(()
+              endArguments(0, (, ))
+              handleSend(Xlate, ;)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, Xlate, ;)
+        endMember()
+        beginMetadataStar(Xrequired)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(;)
+            handleIdentifier(Xrequired, typeReference)
+            handleNoTypeArguments(r)
+            handleType(Xrequired, null)
+            handleIdentifier(r, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleIdentifier(Xrequired, expression)
+              handleNoTypeArguments(()
+              beginArguments(()
+              endArguments(0, (, ))
+              handleSend(Xrequired, ;)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, null, null, null, 1, Xrequired, ;)
+        endMember()
+      endClassOrMixinBody(DeclarationKind.Class, 2, {, })
+    endClassDeclaration(class, })
+  endTopLevelDeclaration()
 endCompilationUnit(3, )
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 b8149b9..715a0d3 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
@@ -163,6 +163,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseFields({, null, null, null, null, null, null, {, Instance of 'SimpleType', l, DeclarationKind.Class, C, false)
+                listener: beginFields({)
                 listener: handleIdentifier(Xlate, typeReference)
                 listener: handleNoTypeArguments(l)
                 listener: handleType(Xlate, null)
@@ -196,6 +197,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', r, DeclarationKind.Class, C, false)
+                listener: beginFields(;)
                 listener: handleIdentifier(Xrequired, typeReference)
                 listener: handleNoTypeArguments(r)
                 listener: handleType(Xrequired, null)
diff --git a/pkg/front_end/parser_testcases/parser_all.status b/pkg/front_end/parser_testcases/parser_all.status
new file mode 100644
index 0000000..e22cfe5
--- /dev/null
+++ b/pkg/front_end/parser_testcases/parser_all.status
@@ -0,0 +1,3 @@
+# Copyright (c) 2019, 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.md file.
diff --git a/pkg/front_end/test/fasta/parser/literal_entry_info_test.dart b/pkg/front_end/test/fasta/parser/literal_entry_info_test.dart
index 1cdea58..8e0033f 100644
--- a/pkg/front_end/test/fasta/parser/literal_entry_info_test.dart
+++ b/pkg/front_end/test/fasta/parser/literal_entry_info_test.dart
@@ -206,7 +206,7 @@
         'handleNoArguments )',
         'handleSend a )',
         'handleParenthesizedCondition (',
-        'beginThenControlFlow )',
+        'handleThenControlFlow )',
         // nested for (b in c)
         'beginForControlFlow null for',
         'handleIdentifier b expression',
@@ -344,7 +344,7 @@
         'beginIfControlFlow if',
         'handleLiteralBool true',
         'handleParenthesizedCondition (',
-        'beginThenControlFlow )',
+        'handleThenControlFlow )',
         'handleLiteralInt 2',
         'endIfControlFlow 2',
         'handleLiteralList 1, [, null, ]',
@@ -359,7 +359,7 @@
         'beginIfControlFlow if',
         'handleLiteralBool true',
         'handleParenthesizedCondition (',
-        'beginThenControlFlow )',
+        'handleThenControlFlow )',
         'handleLiteralInt 2',
         'handleElseControlFlow else',
         'handleLiteralInt 5',
@@ -377,7 +377,7 @@
         'beginIfControlFlow if',
         'handleLiteralBool true',
         'handleParenthesizedCondition (',
-        'beginThenControlFlow )',
+        'handleThenControlFlow )',
         // nested for (x in y)
         'beginForControlFlow null for',
         'handleIdentifier x expression',
@@ -411,7 +411,7 @@
         'beginIfControlFlow if',
         'handleLiteralBool true',
         'handleParenthesizedCondition (',
-        'beginThenControlFlow )',
+        'handleThenControlFlow )',
         // nested for (a in b)
         'beginForControlFlow null for',
         'handleIdentifier a expression',
@@ -439,7 +439,7 @@
         'handleNoArguments )',
         'handleSend c )',
         'handleParenthesizedCondition (',
-        'beginThenControlFlow )',
+        'handleThenControlFlow )',
         // nested for (d in e)
         'beginForControlFlow null for',
         'handleIdentifier d expression',
@@ -474,7 +474,7 @@
         'beginIfControlFlow if',
         'handleLiteralBool true',
         'handleParenthesizedCondition (',
-        'beginThenControlFlow )',
+        'handleThenControlFlow )',
         'handleNoTypeArguments [',
         'handleLiteralInt 2',
         'handleLiteralList 1, [, null, ]',
@@ -492,7 +492,7 @@
         'beginIfControlFlow if',
         'handleLiteralBool true',
         'handleParenthesizedCondition (',
-        'beginThenControlFlow )',
+        'handleThenControlFlow )',
         'handleNoTypeArguments [',
         'handleLiteralInt 2',
         'handleLiteralList 1, [, null, ]',
@@ -772,7 +772,7 @@
         'beginIfControlFlow if',
         'handleLiteralBool true',
         'handleParenthesizedCondition (',
-        'beginThenControlFlow )',
+        'handleThenControlFlow )',
         'handleLiteralInt 2',
         'handleLiteralInt 3',
         'handleLiteralMapEntry :, ',
@@ -788,7 +788,7 @@
         'beginIfControlFlow if',
         'handleLiteralBool true',
         'handleParenthesizedCondition (',
-        'beginThenControlFlow )',
+        'handleThenControlFlow )',
         'handleNoTypeArguments {',
         'handleLiteralInt 2',
         'handleLiteralInt 3',
@@ -887,8 +887,8 @@
   }
 
   @override
-  void beginThenControlFlow(Token token) {
-    calls.add('beginThenControlFlow $token');
+  void handleThenControlFlow(Token token) {
+    calls.add('handleThenControlFlow $token');
   }
 
   @override
diff --git a/pkg/front_end/test/fasta/testing/suite.dart b/pkg/front_end/test/fasta/testing/suite.dart
index db48578..2905b1b 100644
--- a/pkg/front_end/test/fasta/testing/suite.dart
+++ b/pkg/front_end/test/fasta/testing/suite.dart
@@ -162,6 +162,7 @@
 class FolderOptions {
   final Map<ExperimentalFlag, bool> _experimentalFlags;
   final bool forceLateLowering;
+  final bool forceStaticFieldLowering;
   final bool forceNoExplicitGetterCalls;
   final bool nnbdAgnosticMode;
   final String target;
@@ -169,12 +170,14 @@
 
   FolderOptions(this._experimentalFlags,
       {this.forceLateLowering: false,
+      this.forceStaticFieldLowering: false,
       this.forceNoExplicitGetterCalls: false,
       this.nnbdAgnosticMode: false,
       this.target: "vm",
       // can be null
       this.overwriteCurrentSdkVersion})
       : assert(forceLateLowering != null),
+        assert(forceStaticFieldLowering != null),
         assert(forceNoExplicitGetterCalls != null),
         assert(nnbdAgnosticMode != null),
         assert(target != null);
@@ -314,12 +317,14 @@
     FolderOptions folderOptions = _folderOptions[directory.uri];
     if (folderOptions == null) {
       bool forceLateLowering = false;
+      bool forceStaticFieldLowering = false;
       bool forceNoExplicitGetterCalls = false;
       bool nnbdAgnosticMode = false;
       String target = "vm";
       if (directory.uri == baseUri) {
         folderOptions = new FolderOptions({},
             forceLateLowering: forceLateLowering,
+            forceStaticFieldLowering: forceStaticFieldLowering,
             forceNoExplicitGetterCalls: forceNoExplicitGetterCalls,
             nnbdAgnosticMode: nnbdAgnosticMode,
             target: target);
@@ -339,6 +344,8 @@
                   line.substring(overwriteCurrentSdkVersion.length);
             } else if (line.startsWith(Flags.forceLateLowering)) {
               forceLateLowering = true;
+            } else if (line.startsWith(Flags.forceStaticFieldLowering)) {
+              forceStaticFieldLowering = true;
             } else if (line.startsWith(Flags.forceNoExplicitGetterCalls)) {
               forceNoExplicitGetterCalls = true;
             } else if (line.startsWith(Flags.forceNoExplicitGetterCalls)) {
@@ -360,6 +367,7 @@
                   onWarning: (String message) =>
                       throw new ArgumentError(message)),
               forceLateLowering: forceLateLowering,
+              forceStaticFieldLowering: forceStaticFieldLowering,
               forceNoExplicitGetterCalls: forceNoExplicitGetterCalls,
               nnbdAgnosticMode: nnbdAgnosticMode,
               target: target,
@@ -831,6 +839,7 @@
         await context.computeUriTranslator(description);
     TargetFlags targetFlags = new TargetFlags(
       forceLateLoweringForTesting: testOptions.forceLateLowering,
+      forceStaticFieldLoweringForTesting: testOptions.forceStaticFieldLowering,
       forceNoExplicitGetterCallsForTesting:
           testOptions.forceNoExplicitGetterCalls,
       enableNullSafety: !context.weak,
diff --git a/pkg/front_end/test/parser_all_suite.dart b/pkg/front_end/test/parser_all_suite.dart
new file mode 100644
index 0000000..543dbf9
--- /dev/null
+++ b/pkg/front_end/test/parser_all_suite.dart
@@ -0,0 +1,17 @@
+// 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.
+
+import 'dart:async' show Future;
+
+import 'package:testing/testing.dart' show Chain, ChainContext, runMe;
+
+import 'parser_suite.dart';
+
+main([List<String> arguments = const []]) =>
+    runMe(arguments, createContext, configurationPath: "../testing.json");
+
+Future<ChainContext> createContext(
+    Chain suite, Map<String, String> environment) async {
+  return new ContextChecksOnly(suite.name);
+}
diff --git a/pkg/front_end/test/parser_suite.dart b/pkg/front_end/test/parser_suite.dart
index f4d996b..5e65244 100644
--- a/pkg/front_end/test/parser_suite.dart
+++ b/pkg/front_end/test/parser_suite.dart
@@ -15,6 +15,8 @@
 
 import 'package:front_end/src/fasta/messages.dart' show Message;
 
+import 'package:front_end/src/fasta/util/direct_parser_ast.dart' show getAST;
+
 import 'package:_fe_analyzer_shared/src/parser/parser.dart'
     show Parser, lengthOfSpan;
 
@@ -29,6 +31,9 @@
 import 'package:front_end/src/fasta/source/stack_listener_impl.dart'
     show offsetForToken;
 
+import 'package:front_end/src/fasta/util/direct_parser_ast_helper.dart'
+    show DirectParserASTContent;
+
 import 'package:kernel/ast.dart';
 
 import 'package:testing/testing.dart'
@@ -91,16 +96,61 @@
   final List<Step> steps = const <Step>[
     const TokenStep(true, ".scanner.expect"),
     const TokenStep(false, ".parser.expect"),
-    const ListenerStep(),
+    const ListenerStep(true),
     const IntertwinedStep(),
   ];
 
   final ExpectationSet expectationSet =
       new ExpectationSet.fromJsonList(jsonDecode(EXPECTATIONS));
+
+  // Override special handling of negative tests.
+  @override
+  Result processTestResult(
+      TestDescription description, Result result, bool last) {
+    return result;
+  }
+}
+
+class ContextChecksOnly extends Context {
+  ContextChecksOnly(String suiteName) : super(suiteName, false, false, false);
+
+  final List<Step> steps = const <Step>[
+    const ListenerStep(false),
+    const DirectParserASTStep(),
+  ];
+
+  final ExpectationSet expectationSet =
+      new ExpectationSet.fromJsonList(jsonDecode(EXPECTATIONS));
+
+  // Override special handling of negative tests.
+  @override
+  Result processTestResult(
+      TestDescription description, Result result, bool last) {
+    return result;
+  }
+}
+
+class DirectParserASTStep
+    extends Step<TestDescription, TestDescription, Context> {
+  const DirectParserASTStep();
+  String get name => "DirectParserAST";
+  Future<Result<TestDescription>> run(
+      TestDescription description, Context context) {
+    Uri uri = description.uri;
+    File f = new File.fromUri(uri);
+    List<int> rawBytes = f.readAsBytesSync();
+    DirectParserASTContent ast = getAST(rawBytes);
+    if (ast.what != "CompilationUnit") {
+      throw "Expected a single element for 'CompilationUnit' "
+          "but got ${ast.what}";
+    }
+    return new Future.value(new Result<TestDescription>.pass(description));
+  }
 }
 
 class ListenerStep extends Step<TestDescription, TestDescription, Context> {
-  const ListenerStep();
+  final bool doExpects;
+  const ListenerStep(this.doExpects);
 
   String get name => "listener";
 
@@ -134,8 +184,12 @@
           "${parserTestListener.errors.join("\n\n")}\n\n";
     }
 
-    return context.match<TestDescription>(".expect",
-        "${errors}${parserTestListener.sb}", description.uri, description);
+    if (doExpects) {
+      return context.match<TestDescription>(".expect",
+          "${errors}${parserTestListener.sb}", description.uri, description);
+    } else {
+      return new Future.value(new Result<TestDescription>.pass(description));
+    }
   }
 }
 
@@ -350,6 +404,20 @@
       bool trace, this.annotateLines, this.source, this.shortName)
       : super(trace);
 
+  void doPrint(String s) {
+    super.doPrint(s);
+    if (s.startsWith("beginCompilationUnit(") ||
+        s.startsWith("endCompilationUnit(")) {
+      if (indent != 0) {
+        throw "Incorrect indents: '$s' (indent = $indent).\n\n${sb.toString()}";
+      }
+    } else {
+      if (indent <= 0) {
+        throw "Incorrect indents: '$s' (indent = $indent).\n\n${sb.toString()}";
+      }
+    }
+  }
+
   void seen(Token token) {
     if (!annotateLines) return;
     if (token == null) return;
diff --git a/pkg/front_end/test/parser_test_listener.dart b/pkg/front_end/test/parser_test_listener.dart
index d9e3e7e..63a1210 100644
--- a/pkg/front_end/test/parser_test_listener.dart
+++ b/pkg/front_end/test/parser_test_listener.dart
@@ -101,19 +101,6 @@
         '$errorCode)');
   }
 
-  void endInvalidYieldStatement(Token beginToken, Token starToken,
-      Token endToken, MessageCode errorCode) {
-    indent--;
-    seen(beginToken);
-    seen(starToken);
-    seen(endToken);
-    doPrint('endInvalidYieldStatement('
-        '$beginToken, '
-        '$starToken, '
-        '$endToken, '
-        '$errorCode)');
-  }
-
   void beginBlock(Token token, BlockKind blockKind) {
     seen(token);
     doPrint('beginBlock(' '$token, ' '$blockKind)');
@@ -247,6 +234,12 @@
     doPrint('endMixinDeclaration(' '$mixinKeyword, ' '$endToken)');
   }
 
+  void beginUncategorizedTopLevelDeclaration(Token token) {
+    seen(token);
+    doPrint('beginUncategorizedTopLevelDeclaration(' '$token)');
+    indent++;
+  }
+
   void beginExtensionDeclarationPrelude(Token extensionKeyword) {
     seen(extensionKeyword);
     doPrint('beginExtensionDeclarationPrelude(' '$extensionKeyword)');
@@ -1431,10 +1424,10 @@
     doPrint('endRethrowStatement(' '$rethrowToken, ' '$endToken)');
   }
 
-  void endTopLevelDeclaration(Token token) {
+  void endTopLevelDeclaration(Token nextToken) {
     indent--;
-    seen(token);
-    doPrint('endTopLevelDeclaration(' '$token)');
+    seen(nextToken);
+    doPrint('endTopLevelDeclaration(' '$nextToken)');
   }
 
   void handleInvalidTopLevelDeclaration(Token endToken) {
@@ -1448,6 +1441,12 @@
     indent++;
   }
 
+  void beginFields(Token lastConsumed) {
+    seen(lastConsumed);
+    doPrint('beginFields(' '$lastConsumed)');
+    indent++;
+  }
+
   void endTopLevelFields(
       Token externalToken,
       Token staticToken,
@@ -1698,13 +1697,20 @@
   void beginBinaryExpression(Token token) {
     seen(token);
     doPrint('beginBinaryExpression(' '$token)');
+    indent++;
   }
 
   void endBinaryExpression(Token token) {
+    indent--;
     seen(token);
     doPrint('endBinaryExpression(' '$token)');
   }
 
+  void handleEndingBinaryExpression(Token token) {
+    seen(token);
+    doPrint('handleEndingBinaryExpression(' '$token)');
+  }
+
   void beginConditionalExpression(Token question) {
     seen(question);
     doPrint('beginConditionalExpression(' '$question)');
@@ -1759,10 +1765,9 @@
     indent++;
   }
 
-  void beginThenControlFlow(Token token) {
+  void handleThenControlFlow(Token token) {
     seen(token);
-    doPrint('beginThenControlFlow(' '$token)');
-    indent++;
+    doPrint('handleThenControlFlow(' '$token)');
   }
 
   void handleElseControlFlow(Token elseToken) {
@@ -2113,6 +2118,19 @@
     doPrint('endYieldStatement(' '$yieldToken, ' '$starToken, ' '$endToken)');
   }
 
+  void endInvalidYieldStatement(Token beginToken, Token starToken,
+      Token endToken, MessageCode errorCode) {
+    indent--;
+    seen(beginToken);
+    seen(starToken);
+    seen(endToken);
+    doPrint('endInvalidYieldStatement('
+        '$beginToken, '
+        '$starToken, '
+        '$endToken, '
+        '$errorCode)');
+  }
+
   void handleRecoverableError(
       Message message, Token startToken, Token endToken) {
     seen(startToken);
diff --git a/pkg/front_end/test/parser_test_listener_creator.dart b/pkg/front_end/test/parser_test_listener_creator.dart
index 67c2268..1acfac3 100644
--- a/pkg/front_end/test/parser_test_listener_creator.dart
+++ b/pkg/front_end/test/parser_test_listener_creator.dart
@@ -15,11 +15,6 @@
 
 StringSink out;
 
-const Set<String> specialHandledMethods = {
-  "beginBinaryExpression",
-  "endBinaryExpression",
-};
-
 main(List<String> args) {
   if (args.contains("--stdout")) {
     out = stdout;
@@ -157,8 +152,7 @@
         out.write(" null;");
       } else {
         out.write("\n    ");
-        if (!specialHandledMethods.contains(currentMethodName) &&
-            currentMethodName.startsWith("end")) {
+        if (currentMethodName.startsWith("end")) {
           out.write("indent--;\n    ");
         }
         for (int i = 0; i < parameterTypes.length; i++) {
@@ -176,8 +170,7 @@
         }
         out.write(")');\n  ");
 
-        if (!specialHandledMethods.contains(currentMethodName) &&
-            currentMethodName.startsWith("begin")) {
+        if (currentMethodName.startsWith("begin")) {
           out.write("  indent++;\n  ");
         }
 
diff --git a/pkg/front_end/test/spell_checking_list_code.txt b/pkg/front_end/test/spell_checking_list_code.txt
index eb44178..e67f4b8 100644
--- a/pkg/front_end/test/spell_checking_list_code.txt
+++ b/pkg/front_end/test/spell_checking_list_code.txt
@@ -68,6 +68,7 @@
 atom
 atoms
 attributes
+auto
 automagically
 auxiliary
 awaited
@@ -156,6 +157,7 @@
 cast
 casted
 casts
+categorized
 ce
 cfe
 ch
@@ -357,6 +359,7 @@
 emitting
 en
 encapsulation
+end'ed
 enforce
 enforced
 enforces
@@ -461,6 +464,7 @@
 globally
 glyph
 gn
+gobble
 goldens
 googlesource
 goto
@@ -1181,6 +1185,7 @@
 unaltered
 unassigned
 unbound
+uncategorized
 uncomment
 uncommon
 unconditionally
diff --git a/pkg/front_end/test/spell_checking_list_tests.txt b/pkg/front_end/test/spell_checking_list_tests.txt
index 9ab0fd2..1c18fee 100644
--- a/pkg/front_end/test/spell_checking_list_tests.txt
+++ b/pkg/front_end/test/spell_checking_list_tests.txt
@@ -46,6 +46,7 @@
 ba
 baba
 backed
+background
 bail
 bailout
 bash
@@ -62,6 +63,7 @@
 blindly
 blocked
 blorp
+bold
 boo
 bootstrap
 bots
@@ -111,6 +113,7 @@
 coded
 codepath
 collisions
+columns
 commented
 commit
 companion
@@ -137,7 +140,10 @@
 cov
 cp
 crashes
+csi
+ctrl
 cumulative
+cursor
 cx
 dacoharkes
 dadd
@@ -154,7 +160,9 @@
 debugger
 decrease
 decrements
+dectcem
 def
+defaulting
 defintions
 deleting
 denylist
@@ -190,6 +198,7 @@
 dog
 doo
 downstream
+draw
 dumping
 dumps
 dupe
@@ -200,6 +209,7 @@
 e2e
 ease
 ec
+echo
 edits
 elapse
 ell
@@ -207,7 +217,9 @@
 entrypoints
 eoo
 epoch
+erase
 err
+esc
 everytime
 evicting
 exceed
@@ -261,6 +273,7 @@
 foos
 forbidden
 forces
+foreground
 foreign
 forrest
 foundation
@@ -278,6 +291,7 @@
 git
 goo
 google
+graphic
 greeting
 gtgt
 gulp
@@ -309,13 +323,16 @@
 increased
 incrementally
 increments
+indents
 infinity
+initializer2
 inspect
 insufficient
 intact
 interactive
 internet
 interpolate
+introducer
 inv
 invalidating
 invocation1a
@@ -344,11 +361,13 @@
 issue41498b
 issue41499b
 it'll
+italic
 iter
 joo
 jumped
 kernels
 kill
+kitty
 ko
 koo
 la
@@ -408,6 +427,7 @@
 mf
 micro
 minimize
+mintty
 minutes
 mismatched
 misnamed
@@ -465,6 +485,7 @@
 pp
 preliminary
 prematurely
+press
 pretends
 producer
 profile
@@ -481,6 +502,7 @@
 py
 python
 quicker
+quit
 quot
 quux
 qux
@@ -506,6 +528,8 @@
 reload
 remap
 remaps
+rendition
+repaint
 repeating
 repro
 resource
@@ -518,6 +542,7 @@
 retains
 rev
 risky
+row
 runtimes
 say
 scans
@@ -537,7 +562,9 @@
 shipped
 shortest
 shot
+sigint
 signalled
+sigwinch
 slight
 smoke
 somehow
@@ -616,11 +643,14 @@
 typeargs
 typeparam
 typeparambounds
+u250c
 ugly
 unassignment
 unawaited
 unbreak
+uncategorized
 unconverted
+underline
 unpacked
 unpaused
 unregistered
@@ -642,6 +672,8 @@
 versioned
 versioning
 vp
+vt
+vte
 waited
 waiting
 waits
diff --git a/pkg/front_end/test/unit_test_suites.dart b/pkg/front_end/test/unit_test_suites.dart
index 768fa14..1f42047 100644
--- a/pkg/front_end/test/unit_test_suites.dart
+++ b/pkg/front_end/test/unit_test_suites.dart
@@ -32,6 +32,7 @@
 import 'lint_suite.dart' as lint show createContext;
 import 'old_dill_suite.dart' as old_dill show createContext;
 import 'parser_suite.dart' as parser show createContext;
+import 'parser_all_suite.dart' as parserAll show createContext;
 import 'spelling_test_not_src_suite.dart' as spelling_not_src
     show createContext;
 import 'spelling_test_src_suite.dart' as spelling_src show createContext;
@@ -266,6 +267,7 @@
   const Suite("lint", lint.createContext, "../testing.json"),
   const Suite("old_dill", old_dill.createContext, "../testing.json"),
   const Suite("parser", parser.createContext, "../testing.json"),
+  const Suite("parser_all", parserAll.createContext, "../testing.json"),
   const Suite("spelling_test_not_src", spelling_not_src.createContext,
       "../testing.json"),
   const Suite(
@@ -300,6 +302,9 @@
   String name = suite.prefix;
   String fullSuiteName = "$suiteNamePrefix/$name";
   Uri suiteUri = Platform.script.resolve(suite.path ?? "${name}_suite.dart");
+  if (!new File.fromUri(suiteUri).existsSync()) {
+    throw "File doesn't exist: $suiteUri";
+  }
   ResultLogger logger = ResultLogger(
       fullSuiteName,
       configuration.resultsPort,
diff --git a/pkg/front_end/testcases/static_field_lowering/folder.options b/pkg/front_end/testcases/static_field_lowering/folder.options
new file mode 100644
index 0000000..c55c0d4
--- /dev/null
+++ b/pkg/front_end/testcases/static_field_lowering/folder.options
@@ -0,0 +1,2 @@
+--enable-experiment=non-nullable
+--force-static-field-lowering
diff --git a/pkg/front_end/testcases/static_field_lowering/opt_in.dart b/pkg/front_end/testcases/static_field_lowering/opt_in.dart
new file mode 100644
index 0000000..6d9235d
--- /dev/null
+++ b/pkg/front_end/testcases/static_field_lowering/opt_in.dart
@@ -0,0 +1,133 @@
+// 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.
+
+dynamic lastInit;
+
+T init<T>(T value) {
+  lastInit = value;
+  return value;
+}
+
+int? topLevelFieldWithoutInitializer;
+
+int nonNullableTopLevelFieldWithInitializer1 = init(42);
+int? nullableTopLevelFieldWithInitializer = init(123);
+
+int nonNullableTopLevelFieldWithInitializer2 = init(42);
+int? nullableTopLevelFieldWithInitializer2 = init(123);
+
+final int nonNullableFinalTopLevelFieldWithInitializer1 = init(87);
+final int? nullableFinalTopLevelFieldWithInitializer1 = init(32);
+
+int nonNullableFinalTopLevelFieldWithInitializer2Init = 0;
+final int nonNullableFinalTopLevelFieldWithInitializer2 =
+    nonNullableFinalTopLevelFieldWithInitializer2Init++ == 0
+        ? nonNullableFinalTopLevelFieldWithInitializer2 + 1
+        : 87;
+int nullableFinalTopLevelFieldWithInitializer2Init = 0;
+final int? nullableFinalTopLevelFieldWithInitializer2 =
+    nullableFinalTopLevelFieldWithInitializer2Init++ == 0
+        ? nullableFinalTopLevelFieldWithInitializer2! + 1
+        : 32;
+
+class Class {
+  static int? staticFieldWithoutInitializer;
+
+  static int nonNullableStaticFieldWithInitializer1 = init(55);
+  static int? nullableStaticFieldWithInitializer1 = init(17);
+
+  static int nonNullableStaticFieldWithInitializer2 = init(55);
+  static int? nullableStaticFieldWithInitializer2 = init(17);
+
+  static final int nonNullableStaticFinalFieldWithInitializer1 = init(73);
+  static final int? nullableStaticFinalFieldWithInitializer1 = init(19);
+
+  static int nonNullableStaticFinalFieldWithInitializer2Init = 0;
+  static final int nonNullableStaticFinalFieldWithInitializer2 =
+      nonNullableStaticFinalFieldWithInitializer2Init++ == 0
+          ? nonNullableStaticFinalFieldWithInitializer2 + 1
+          : 87;
+  static int nullableStaticFinalFieldWithInitializer2Init = 0;
+  static final int? nullableStaticFinalFieldWithInitializer2 =
+      nullableStaticFinalFieldWithInitializer2Init++ == 0
+          ? nullableStaticFinalFieldWithInitializer2! + 1
+          : 32;
+}
+
+main() {
+  expect(null, lastInit);
+  expect(null, topLevelFieldWithoutInitializer);
+  expect(null, Class.staticFieldWithoutInitializer);
+
+  expect(42, nonNullableTopLevelFieldWithInitializer1);
+  expect(42, lastInit);
+
+  expect(123, nullableTopLevelFieldWithInitializer);
+  expect(123, lastInit);
+
+  nonNullableTopLevelFieldWithInitializer2 = 56;
+  expect(123, lastInit);
+  expect(56, nonNullableTopLevelFieldWithInitializer2);
+  expect(123, lastInit);
+
+  nullableTopLevelFieldWithInitializer2 = 7;
+  expect(123, lastInit);
+  expect(7, nullableTopLevelFieldWithInitializer2);
+  expect(123, lastInit);
+
+  expect(87, nonNullableFinalTopLevelFieldWithInitializer1);
+  expect(87, lastInit);
+
+  expect(32, nullableFinalTopLevelFieldWithInitializer1);
+  expect(32, lastInit);
+
+  throws(() => nonNullableFinalTopLevelFieldWithInitializer2,
+      'Read nonNullableFinalTopLevelFieldWithInitializer2');
+
+  throws(() => nullableFinalTopLevelFieldWithInitializer2,
+      'Read nullableFinalTopLevelFieldWithInitializer2');
+
+  expect(55, Class.nonNullableStaticFieldWithInitializer1);
+  expect(55, lastInit);
+
+  expect(17, Class.nullableStaticFieldWithInitializer1);
+  expect(17, lastInit);
+
+  Class.nonNullableStaticFieldWithInitializer2 = 63;
+  expect(17, lastInit);
+  expect(63, Class.nonNullableStaticFieldWithInitializer2);
+  expect(17, lastInit);
+
+  Class.nullableStaticFieldWithInitializer2 = 89;
+  expect(17, lastInit);
+  expect(89, Class.nullableStaticFieldWithInitializer2);
+  expect(17, lastInit);
+
+  expect(73, Class.nonNullableStaticFinalFieldWithInitializer1);
+  expect(73, lastInit);
+
+  expect(19, Class.nullableStaticFinalFieldWithInitializer1);
+  expect(19, lastInit);
+
+  throws(() => Class.nonNullableStaticFinalFieldWithInitializer2,
+      'Read nonNullableStaticFinalFieldWithInitializer2');
+
+  throws(() => Class.nullableStaticFinalFieldWithInitializer2,
+      'Read nullableStaticFinalFieldWithInitializer2');
+}
+
+expect(expected, actual) {
+  if (expected != actual) throw 'Expected $expected, actual $actual';
+}
+
+throws(f(), String message) {
+  dynamic value;
+  try {
+    value = f();
+  } on LateInitializationError catch (e) {
+    print(e);
+    return;
+  }
+  throw '$message: $value';
+}
diff --git a/pkg/front_end/testcases/static_field_lowering/opt_in.dart.textual_outline.expect b/pkg/front_end/testcases/static_field_lowering/opt_in.dart.textual_outline.expect
new file mode 100644
index 0000000..93e4a3c
--- /dev/null
+++ b/pkg/front_end/testcases/static_field_lowering/opt_in.dart.textual_outline.expect
@@ -0,0 +1,43 @@
+dynamic lastInit;
+T init<T>(T value) {}
+int? topLevelFieldWithoutInitializer;
+int nonNullableTopLevelFieldWithInitializer1 = init(42);
+int? nullableTopLevelFieldWithInitializer = init(123);
+int nonNullableTopLevelFieldWithInitializer2 = init(42);
+int? nullableTopLevelFieldWithInitializer2 = init(123);
+final int nonNullableFinalTopLevelFieldWithInitializer1 = init(87);
+final int? nullableFinalTopLevelFieldWithInitializer1 = init(32);
+int nonNullableFinalTopLevelFieldWithInitializer2Init = 0;
+final int nonNullableFinalTopLevelFieldWithInitializer2 =
+    nonNullableFinalTopLevelFieldWithInitializer2Init++ == 0
+        ? nonNullableFinalTopLevelFieldWithInitializer2 + 1
+        : 87;
+int nullableFinalTopLevelFieldWithInitializer2Init = 0;
+final int? nullableFinalTopLevelFieldWithInitializer2 =
+    nullableFinalTopLevelFieldWithInitializer2Init++ == 0
+        ? nullableFinalTopLevelFieldWithInitializer2! + 1
+        : 32;
+
+class Class {
+  static int? staticFieldWithoutInitializer;
+  static int nonNullableStaticFieldWithInitializer1 = init(55);
+  static int? nullableStaticFieldWithInitializer1 = init(17);
+  static int nonNullableStaticFieldWithInitializer2 = init(55);
+  static int? nullableStaticFieldWithInitializer2 = init(17);
+  static final int nonNullableStaticFinalFieldWithInitializer1 = init(73);
+  static final int? nullableStaticFinalFieldWithInitializer1 = init(19);
+  static int nonNullableStaticFinalFieldWithInitializer2Init = 0;
+  static final int nonNullableStaticFinalFieldWithInitializer2 =
+      nonNullableStaticFinalFieldWithInitializer2Init++ == 0
+          ? nonNullableStaticFinalFieldWithInitializer2 + 1
+          : 87;
+  static int nullableStaticFinalFieldWithInitializer2Init = 0;
+  static final int? nullableStaticFinalFieldWithInitializer2 =
+      nullableStaticFinalFieldWithInitializer2Init++ == 0
+          ? nullableStaticFinalFieldWithInitializer2! + 1
+          : 32;
+}
+
+main() {}
+expect(expected, actual) {}
+throws(f(), String message) {}
diff --git a/pkg/front_end/testcases/static_field_lowering/opt_in.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/static_field_lowering/opt_in.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..a9b7d4d
--- /dev/null
+++ b/pkg/front_end/testcases/static_field_lowering/opt_in.dart.textual_outline_modelled.expect
@@ -0,0 +1,43 @@
+T init<T>(T value) {}
+
+class Class {
+  static final int? nullableStaticFinalFieldWithInitializer1 = init(19);
+  static final int? nullableStaticFinalFieldWithInitializer2 =
+      nullableStaticFinalFieldWithInitializer2Init++ == 0
+          ? nullableStaticFinalFieldWithInitializer2! + 1
+          : 32;
+  static final int nonNullableStaticFinalFieldWithInitializer1 = init(73);
+  static final int nonNullableStaticFinalFieldWithInitializer2 =
+      nonNullableStaticFinalFieldWithInitializer2Init++ == 0
+          ? nonNullableStaticFinalFieldWithInitializer2 + 1
+          : 87;
+  static int? nullableStaticFieldWithInitializer1 = init(17);
+  static int? nullableStaticFieldWithInitializer2 = init(17);
+  static int? staticFieldWithoutInitializer;
+  static int nonNullableStaticFieldWithInitializer1 = init(55);
+  static int nonNullableStaticFieldWithInitializer2 = init(55);
+  static int nonNullableStaticFinalFieldWithInitializer2Init = 0;
+  static int nullableStaticFinalFieldWithInitializer2Init = 0;
+}
+
+dynamic lastInit;
+expect(expected, actual) {}
+final int? nullableFinalTopLevelFieldWithInitializer1 = init(32);
+final int? nullableFinalTopLevelFieldWithInitializer2 =
+    nullableFinalTopLevelFieldWithInitializer2Init++ == 0
+        ? nullableFinalTopLevelFieldWithInitializer2! + 1
+        : 32;
+final int nonNullableFinalTopLevelFieldWithInitializer1 = init(87);
+final int nonNullableFinalTopLevelFieldWithInitializer2 =
+    nonNullableFinalTopLevelFieldWithInitializer2Init++ == 0
+        ? nonNullableFinalTopLevelFieldWithInitializer2 + 1
+        : 87;
+int? nullableTopLevelFieldWithInitializer = init(123);
+int? nullableTopLevelFieldWithInitializer2 = init(123);
+int? topLevelFieldWithoutInitializer;
+int nonNullableFinalTopLevelFieldWithInitializer2Init = 0;
+int nonNullableTopLevelFieldWithInitializer1 = init(42);
+int nonNullableTopLevelFieldWithInitializer2 = init(42);
+int nullableFinalTopLevelFieldWithInitializer2Init = 0;
+main() {}
+throws(f(), String message) {}
diff --git a/pkg/front_end/testcases/static_field_lowering/opt_in.dart.weak.expect b/pkg/front_end/testcases/static_field_lowering/opt_in.dart.weak.expect
new file mode 100644
index 0000000..b11f2bb
--- /dev/null
+++ b/pkg/front_end/testcases/static_field_lowering/opt_in.dart.weak.expect
@@ -0,0 +1,225 @@
+library /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+import "dart:_internal" as _in;
+
+class Class extends core::Object {
+  static field core::int? staticFieldWithoutInitializer = null;
+  static field core::int? _#nonNullableStaticFieldWithInitializer1 = null;
+  static field core::int? _#nullableStaticFieldWithInitializer1 = null;
+  static field core::bool _#nullableStaticFieldWithInitializer1#isSet = false;
+  static field core::int? _#nonNullableStaticFieldWithInitializer2 = null;
+  static field core::int? _#nullableStaticFieldWithInitializer2 = null;
+  static field core::bool _#nullableStaticFieldWithInitializer2#isSet = false;
+  static field core::int? _#nonNullableStaticFinalFieldWithInitializer1 = null;
+  static field core::int? _#nullableStaticFinalFieldWithInitializer1 = null;
+  static field core::bool _#nullableStaticFinalFieldWithInitializer1#isSet = false;
+  static field core::int? _#nonNullableStaticFinalFieldWithInitializer2Init = null;
+  static field core::int? _#nonNullableStaticFinalFieldWithInitializer2 = null;
+  static field core::int? _#nullableStaticFinalFieldWithInitializer2Init = null;
+  static field core::int? _#nullableStaticFinalFieldWithInitializer2 = null;
+  static field core::bool _#nullableStaticFinalFieldWithInitializer2#isSet = false;
+  synthetic constructor •() → self::Class
+    : super core::Object::•()
+    ;
+  static get nonNullableStaticFieldWithInitializer1() → core::int
+    return let final core::int? #t1 = self::Class::_#nonNullableStaticFieldWithInitializer1 in #t1.==(null) ?{core::int} self::Class::_#nonNullableStaticFieldWithInitializer1 = self::init<core::int>(55) : #t1{core::int};
+  static set nonNullableStaticFieldWithInitializer1(core::int #t2) → void
+    self::Class::_#nonNullableStaticFieldWithInitializer1 = #t2;
+  static get nullableStaticFieldWithInitializer1() → core::int? {
+    if(!self::Class::_#nullableStaticFieldWithInitializer1#isSet) {
+      self::Class::_#nullableStaticFieldWithInitializer1 = self::init<core::int?>(17);
+      self::Class::_#nullableStaticFieldWithInitializer1#isSet = true;
+    }
+    return self::Class::_#nullableStaticFieldWithInitializer1;
+  }
+  static set nullableStaticFieldWithInitializer1(core::int? #t3) → void {
+    self::Class::_#nullableStaticFieldWithInitializer1#isSet = true;
+    self::Class::_#nullableStaticFieldWithInitializer1 = #t3;
+  }
+  static get nonNullableStaticFieldWithInitializer2() → core::int
+    return let final core::int? #t4 = self::Class::_#nonNullableStaticFieldWithInitializer2 in #t4.==(null) ?{core::int} self::Class::_#nonNullableStaticFieldWithInitializer2 = self::init<core::int>(55) : #t4{core::int};
+  static set nonNullableStaticFieldWithInitializer2(core::int #t5) → void
+    self::Class::_#nonNullableStaticFieldWithInitializer2 = #t5;
+  static get nullableStaticFieldWithInitializer2() → core::int? {
+    if(!self::Class::_#nullableStaticFieldWithInitializer2#isSet) {
+      self::Class::_#nullableStaticFieldWithInitializer2 = self::init<core::int?>(17);
+      self::Class::_#nullableStaticFieldWithInitializer2#isSet = true;
+    }
+    return self::Class::_#nullableStaticFieldWithInitializer2;
+  }
+  static set nullableStaticFieldWithInitializer2(core::int? #t6) → void {
+    self::Class::_#nullableStaticFieldWithInitializer2#isSet = true;
+    self::Class::_#nullableStaticFieldWithInitializer2 = #t6;
+  }
+  static get nonNullableStaticFinalFieldWithInitializer1() → core::int
+    return let final core::int? #t7 = self::Class::_#nonNullableStaticFinalFieldWithInitializer1 in #t7.==(null) ?{core::int} let final core::int #t8 = self::init<core::int>(73) in self::Class::_#nonNullableStaticFinalFieldWithInitializer1.==(null) ?{core::int} self::Class::_#nonNullableStaticFinalFieldWithInitializer1 = #t8 : throw new _in::LateInitializationErrorImpl::•("Field 'nonNullableStaticFinalFieldWithInitializer1' has been assigned during initialization.") : #t7{core::int};
+  static get nullableStaticFinalFieldWithInitializer1() → core::int? {
+    if(!self::Class::_#nullableStaticFinalFieldWithInitializer1#isSet) {
+      final core::int? #t9 = self::init<core::int?>(19);
+      if(self::Class::_#nullableStaticFinalFieldWithInitializer1#isSet)
+        throw new _in::LateInitializationErrorImpl::•("Field 'nullableStaticFinalFieldWithInitializer1' has been assigned during initialization.");
+      self::Class::_#nullableStaticFinalFieldWithInitializer1 = #t9;
+      self::Class::_#nullableStaticFinalFieldWithInitializer1#isSet = true;
+    }
+    return self::Class::_#nullableStaticFinalFieldWithInitializer1;
+  }
+  static get nonNullableStaticFinalFieldWithInitializer2Init() → core::int
+    return let final core::int? #t10 = self::Class::_#nonNullableStaticFinalFieldWithInitializer2Init in #t10.==(null) ?{core::int} self::Class::_#nonNullableStaticFinalFieldWithInitializer2Init = 0 : #t10{core::int};
+  static set nonNullableStaticFinalFieldWithInitializer2Init(core::int #t11) → void
+    self::Class::_#nonNullableStaticFinalFieldWithInitializer2Init = #t11;
+  static get nonNullableStaticFinalFieldWithInitializer2() → core::int
+    return let final core::int? #t12 = self::Class::_#nonNullableStaticFinalFieldWithInitializer2 in #t12.==(null) ?{core::int} let final core::int #t13 = (let final core::int #t14 = self::Class::nonNullableStaticFinalFieldWithInitializer2Init in let final core::int #t15 = self::Class::nonNullableStaticFinalFieldWithInitializer2Init = #t14.{core::num::+}(1) in #t14).{core::num::==}(0) ?{core::int} self::Class::nonNullableStaticFinalFieldWithInitializer2.{core::num::+}(1) : 87 in self::Class::_#nonNullableStaticFinalFieldWithInitializer2.==(null) ?{core::int} self::Class::_#nonNullableStaticFinalFieldWithInitializer2 = #t13 : throw new _in::LateInitializationErrorImpl::•("Field 'nonNullableStaticFinalFieldWithInitializer2' has been assigned during initialization.") : #t12{core::int};
+  static get nullableStaticFinalFieldWithInitializer2Init() → core::int
+    return let final core::int? #t16 = self::Class::_#nullableStaticFinalFieldWithInitializer2Init in #t16.==(null) ?{core::int} self::Class::_#nullableStaticFinalFieldWithInitializer2Init = 0 : #t16{core::int};
+  static set nullableStaticFinalFieldWithInitializer2Init(core::int #t17) → void
+    self::Class::_#nullableStaticFinalFieldWithInitializer2Init = #t17;
+  static get nullableStaticFinalFieldWithInitializer2() → core::int? {
+    if(!self::Class::_#nullableStaticFinalFieldWithInitializer2#isSet) {
+      final core::int? #t18 = (let final core::int #t19 = self::Class::nullableStaticFinalFieldWithInitializer2Init in let final core::int #t20 = self::Class::nullableStaticFinalFieldWithInitializer2Init = #t19.{core::num::+}(1) in #t19).{core::num::==}(0) ?{core::int} self::Class::nullableStaticFinalFieldWithInitializer2!.{core::num::+}(1) : 32;
+      if(self::Class::_#nullableStaticFinalFieldWithInitializer2#isSet)
+        throw new _in::LateInitializationErrorImpl::•("Field 'nullableStaticFinalFieldWithInitializer2' has been assigned during initialization.");
+      self::Class::_#nullableStaticFinalFieldWithInitializer2 = #t18;
+      self::Class::_#nullableStaticFinalFieldWithInitializer2#isSet = true;
+    }
+    return self::Class::_#nullableStaticFinalFieldWithInitializer2;
+  }
+}
+static field dynamic lastInit;
+static field core::int? topLevelFieldWithoutInitializer;
+static field core::int? _#nonNullableTopLevelFieldWithInitializer1 = null;
+static field core::int? _#nullableTopLevelFieldWithInitializer = null;
+static field core::bool _#nullableTopLevelFieldWithInitializer#isSet = false;
+static field core::int? _#nonNullableTopLevelFieldWithInitializer2 = null;
+static field core::int? _#nullableTopLevelFieldWithInitializer2 = null;
+static field core::bool _#nullableTopLevelFieldWithInitializer2#isSet = false;
+static field core::int? _#nonNullableFinalTopLevelFieldWithInitializer1 = null;
+static field core::int? _#nullableFinalTopLevelFieldWithInitializer1 = null;
+static field core::bool _#nullableFinalTopLevelFieldWithInitializer1#isSet = false;
+static field core::int? _#nonNullableFinalTopLevelFieldWithInitializer2Init = null;
+static field core::int? _#nonNullableFinalTopLevelFieldWithInitializer2 = null;
+static field core::int? _#nullableFinalTopLevelFieldWithInitializer2Init = null;
+static field core::int? _#nullableFinalTopLevelFieldWithInitializer2 = null;
+static field core::bool _#nullableFinalTopLevelFieldWithInitializer2#isSet = false;
+static method init<T extends core::Object? = dynamic>(self::init::T% value) → self::init::T% {
+  self::lastInit = value;
+  return value;
+}
+static get nonNullableTopLevelFieldWithInitializer1() → core::int
+  return let final core::int? #t21 = self::_#nonNullableTopLevelFieldWithInitializer1 in #t21.==(null) ?{core::int} self::_#nonNullableTopLevelFieldWithInitializer1 = self::init<core::int>(42) : #t21{core::int};
+static set nonNullableTopLevelFieldWithInitializer1(core::int #t22) → void
+  self::_#nonNullableTopLevelFieldWithInitializer1 = #t22;
+static get nullableTopLevelFieldWithInitializer() → core::int? {
+  if(!self::_#nullableTopLevelFieldWithInitializer#isSet) {
+    self::_#nullableTopLevelFieldWithInitializer = self::init<core::int?>(123);
+    self::_#nullableTopLevelFieldWithInitializer#isSet = true;
+  }
+  return self::_#nullableTopLevelFieldWithInitializer;
+}
+static set nullableTopLevelFieldWithInitializer(core::int? #t23) → void {
+  self::_#nullableTopLevelFieldWithInitializer#isSet = true;
+  self::_#nullableTopLevelFieldWithInitializer = #t23;
+}
+static get nonNullableTopLevelFieldWithInitializer2() → core::int
+  return let final core::int? #t24 = self::_#nonNullableTopLevelFieldWithInitializer2 in #t24.==(null) ?{core::int} self::_#nonNullableTopLevelFieldWithInitializer2 = self::init<core::int>(42) : #t24{core::int};
+static set nonNullableTopLevelFieldWithInitializer2(core::int #t25) → void
+  self::_#nonNullableTopLevelFieldWithInitializer2 = #t25;
+static get nullableTopLevelFieldWithInitializer2() → core::int? {
+  if(!self::_#nullableTopLevelFieldWithInitializer2#isSet) {
+    self::_#nullableTopLevelFieldWithInitializer2 = self::init<core::int?>(123);
+    self::_#nullableTopLevelFieldWithInitializer2#isSet = true;
+  }
+  return self::_#nullableTopLevelFieldWithInitializer2;
+}
+static set nullableTopLevelFieldWithInitializer2(core::int? #t26) → void {
+  self::_#nullableTopLevelFieldWithInitializer2#isSet = true;
+  self::_#nullableTopLevelFieldWithInitializer2 = #t26;
+}
+static get nonNullableFinalTopLevelFieldWithInitializer1() → core::int
+  return let final core::int? #t27 = self::_#nonNullableFinalTopLevelFieldWithInitializer1 in #t27.==(null) ?{core::int} let final core::int #t28 = self::init<core::int>(87) in self::_#nonNullableFinalTopLevelFieldWithInitializer1.==(null) ?{core::int} self::_#nonNullableFinalTopLevelFieldWithInitializer1 = #t28 : throw new _in::LateInitializationErrorImpl::•("Field 'nonNullableFinalTopLevelFieldWithInitializer1' has been assigned during initialization.") : #t27{core::int};
+static get nullableFinalTopLevelFieldWithInitializer1() → core::int? {
+  if(!self::_#nullableFinalTopLevelFieldWithInitializer1#isSet) {
+    final core::int? #t29 = self::init<core::int?>(32);
+    if(self::_#nullableFinalTopLevelFieldWithInitializer1#isSet)
+      throw new _in::LateInitializationErrorImpl::•("Field 'nullableFinalTopLevelFieldWithInitializer1' has been assigned during initialization.");
+    self::_#nullableFinalTopLevelFieldWithInitializer1 = #t29;
+    self::_#nullableFinalTopLevelFieldWithInitializer1#isSet = true;
+  }
+  return self::_#nullableFinalTopLevelFieldWithInitializer1;
+}
+static get nonNullableFinalTopLevelFieldWithInitializer2Init() → core::int
+  return let final core::int? #t30 = self::_#nonNullableFinalTopLevelFieldWithInitializer2Init in #t30.==(null) ?{core::int} self::_#nonNullableFinalTopLevelFieldWithInitializer2Init = 0 : #t30{core::int};
+static set nonNullableFinalTopLevelFieldWithInitializer2Init(core::int #t31) → void
+  self::_#nonNullableFinalTopLevelFieldWithInitializer2Init = #t31;
+static get nonNullableFinalTopLevelFieldWithInitializer2() → core::int
+  return let final core::int? #t32 = self::_#nonNullableFinalTopLevelFieldWithInitializer2 in #t32.==(null) ?{core::int} let final core::int #t33 = (let final core::int #t34 = self::nonNullableFinalTopLevelFieldWithInitializer2Init in let final core::int #t35 = self::nonNullableFinalTopLevelFieldWithInitializer2Init = #t34.{core::num::+}(1) in #t34).{core::num::==}(0) ?{core::int} self::nonNullableFinalTopLevelFieldWithInitializer2.{core::num::+}(1) : 87 in self::_#nonNullableFinalTopLevelFieldWithInitializer2.==(null) ?{core::int} self::_#nonNullableFinalTopLevelFieldWithInitializer2 = #t33 : throw new _in::LateInitializationErrorImpl::•("Field 'nonNullableFinalTopLevelFieldWithInitializer2' has been assigned during initialization.") : #t32{core::int};
+static get nullableFinalTopLevelFieldWithInitializer2Init() → core::int
+  return let final core::int? #t36 = self::_#nullableFinalTopLevelFieldWithInitializer2Init in #t36.==(null) ?{core::int} self::_#nullableFinalTopLevelFieldWithInitializer2Init = 0 : #t36{core::int};
+static set nullableFinalTopLevelFieldWithInitializer2Init(core::int #t37) → void
+  self::_#nullableFinalTopLevelFieldWithInitializer2Init = #t37;
+static get nullableFinalTopLevelFieldWithInitializer2() → core::int? {
+  if(!self::_#nullableFinalTopLevelFieldWithInitializer2#isSet) {
+    final core::int? #t38 = (let final core::int #t39 = self::nullableFinalTopLevelFieldWithInitializer2Init in let final core::int #t40 = self::nullableFinalTopLevelFieldWithInitializer2Init = #t39.{core::num::+}(1) in #t39).{core::num::==}(0) ?{core::int} self::nullableFinalTopLevelFieldWithInitializer2!.{core::num::+}(1) : 32;
+    if(self::_#nullableFinalTopLevelFieldWithInitializer2#isSet)
+      throw new _in::LateInitializationErrorImpl::•("Field 'nullableFinalTopLevelFieldWithInitializer2' has been assigned during initialization.");
+    self::_#nullableFinalTopLevelFieldWithInitializer2 = #t38;
+    self::_#nullableFinalTopLevelFieldWithInitializer2#isSet = true;
+  }
+  return self::_#nullableFinalTopLevelFieldWithInitializer2;
+}
+static method main() → dynamic {
+  self::expect(null, self::lastInit);
+  self::expect(null, self::topLevelFieldWithoutInitializer);
+  self::expect(null, self::Class::staticFieldWithoutInitializer);
+  self::expect(42, self::nonNullableTopLevelFieldWithInitializer1);
+  self::expect(42, self::lastInit);
+  self::expect(123, self::nullableTopLevelFieldWithInitializer);
+  self::expect(123, self::lastInit);
+  self::nonNullableTopLevelFieldWithInitializer2 = 56;
+  self::expect(123, self::lastInit);
+  self::expect(56, self::nonNullableTopLevelFieldWithInitializer2);
+  self::expect(123, self::lastInit);
+  self::nullableTopLevelFieldWithInitializer2 = 7;
+  self::expect(123, self::lastInit);
+  self::expect(7, self::nullableTopLevelFieldWithInitializer2);
+  self::expect(123, self::lastInit);
+  self::expect(87, self::nonNullableFinalTopLevelFieldWithInitializer1);
+  self::expect(87, self::lastInit);
+  self::expect(32, self::nullableFinalTopLevelFieldWithInitializer1);
+  self::expect(32, self::lastInit);
+  self::throws(() → core::int => self::nonNullableFinalTopLevelFieldWithInitializer2, "Read nonNullableFinalTopLevelFieldWithInitializer2");
+  self::throws(() → core::int? => self::nullableFinalTopLevelFieldWithInitializer2, "Read nullableFinalTopLevelFieldWithInitializer2");
+  self::expect(55, self::Class::nonNullableStaticFieldWithInitializer1);
+  self::expect(55, self::lastInit);
+  self::expect(17, self::Class::nullableStaticFieldWithInitializer1);
+  self::expect(17, self::lastInit);
+  self::Class::nonNullableStaticFieldWithInitializer2 = 63;
+  self::expect(17, self::lastInit);
+  self::expect(63, self::Class::nonNullableStaticFieldWithInitializer2);
+  self::expect(17, self::lastInit);
+  self::Class::nullableStaticFieldWithInitializer2 = 89;
+  self::expect(17, self::lastInit);
+  self::expect(89, self::Class::nullableStaticFieldWithInitializer2);
+  self::expect(17, self::lastInit);
+  self::expect(73, self::Class::nonNullableStaticFinalFieldWithInitializer1);
+  self::expect(73, self::lastInit);
+  self::expect(19, self::Class::nullableStaticFinalFieldWithInitializer1);
+  self::expect(19, self::lastInit);
+  self::throws(() → core::int => self::Class::nonNullableStaticFinalFieldWithInitializer2, "Read nonNullableStaticFinalFieldWithInitializer2");
+  self::throws(() → core::int? => self::Class::nullableStaticFinalFieldWithInitializer2, "Read nullableStaticFinalFieldWithInitializer2");
+}
+static method expect(dynamic expected, dynamic actual) → dynamic {
+  if(!expected.{core::Object::==}(actual))
+    throw "Expected ${expected}, actual ${actual}";
+}
+static method throws(() → dynamic f, core::String message) → dynamic {
+  dynamic value;
+  try {
+    value = f.call();
+  }
+  on core::LateInitializationError catch(final core::LateInitializationError e) {
+    core::print(e);
+    return;
+  }
+  throw "${message}: ${value}";
+}
diff --git a/pkg/front_end/testcases/static_field_lowering/opt_in.dart.weak.transformed.expect b/pkg/front_end/testcases/static_field_lowering/opt_in.dart.weak.transformed.expect
new file mode 100644
index 0000000..b11f2bb
--- /dev/null
+++ b/pkg/front_end/testcases/static_field_lowering/opt_in.dart.weak.transformed.expect
@@ -0,0 +1,225 @@
+library /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+import "dart:_internal" as _in;
+
+class Class extends core::Object {
+  static field core::int? staticFieldWithoutInitializer = null;
+  static field core::int? _#nonNullableStaticFieldWithInitializer1 = null;
+  static field core::int? _#nullableStaticFieldWithInitializer1 = null;
+  static field core::bool _#nullableStaticFieldWithInitializer1#isSet = false;
+  static field core::int? _#nonNullableStaticFieldWithInitializer2 = null;
+  static field core::int? _#nullableStaticFieldWithInitializer2 = null;
+  static field core::bool _#nullableStaticFieldWithInitializer2#isSet = false;
+  static field core::int? _#nonNullableStaticFinalFieldWithInitializer1 = null;
+  static field core::int? _#nullableStaticFinalFieldWithInitializer1 = null;
+  static field core::bool _#nullableStaticFinalFieldWithInitializer1#isSet = false;
+  static field core::int? _#nonNullableStaticFinalFieldWithInitializer2Init = null;
+  static field core::int? _#nonNullableStaticFinalFieldWithInitializer2 = null;
+  static field core::int? _#nullableStaticFinalFieldWithInitializer2Init = null;
+  static field core::int? _#nullableStaticFinalFieldWithInitializer2 = null;
+  static field core::bool _#nullableStaticFinalFieldWithInitializer2#isSet = false;
+  synthetic constructor •() → self::Class
+    : super core::Object::•()
+    ;
+  static get nonNullableStaticFieldWithInitializer1() → core::int
+    return let final core::int? #t1 = self::Class::_#nonNullableStaticFieldWithInitializer1 in #t1.==(null) ?{core::int} self::Class::_#nonNullableStaticFieldWithInitializer1 = self::init<core::int>(55) : #t1{core::int};
+  static set nonNullableStaticFieldWithInitializer1(core::int #t2) → void
+    self::Class::_#nonNullableStaticFieldWithInitializer1 = #t2;
+  static get nullableStaticFieldWithInitializer1() → core::int? {
+    if(!self::Class::_#nullableStaticFieldWithInitializer1#isSet) {
+      self::Class::_#nullableStaticFieldWithInitializer1 = self::init<core::int?>(17);
+      self::Class::_#nullableStaticFieldWithInitializer1#isSet = true;
+    }
+    return self::Class::_#nullableStaticFieldWithInitializer1;
+  }
+  static set nullableStaticFieldWithInitializer1(core::int? #t3) → void {
+    self::Class::_#nullableStaticFieldWithInitializer1#isSet = true;
+    self::Class::_#nullableStaticFieldWithInitializer1 = #t3;
+  }
+  static get nonNullableStaticFieldWithInitializer2() → core::int
+    return let final core::int? #t4 = self::Class::_#nonNullableStaticFieldWithInitializer2 in #t4.==(null) ?{core::int} self::Class::_#nonNullableStaticFieldWithInitializer2 = self::init<core::int>(55) : #t4{core::int};
+  static set nonNullableStaticFieldWithInitializer2(core::int #t5) → void
+    self::Class::_#nonNullableStaticFieldWithInitializer2 = #t5;
+  static get nullableStaticFieldWithInitializer2() → core::int? {
+    if(!self::Class::_#nullableStaticFieldWithInitializer2#isSet) {
+      self::Class::_#nullableStaticFieldWithInitializer2 = self::init<core::int?>(17);
+      self::Class::_#nullableStaticFieldWithInitializer2#isSet = true;
+    }
+    return self::Class::_#nullableStaticFieldWithInitializer2;
+  }
+  static set nullableStaticFieldWithInitializer2(core::int? #t6) → void {
+    self::Class::_#nullableStaticFieldWithInitializer2#isSet = true;
+    self::Class::_#nullableStaticFieldWithInitializer2 = #t6;
+  }
+  static get nonNullableStaticFinalFieldWithInitializer1() → core::int
+    return let final core::int? #t7 = self::Class::_#nonNullableStaticFinalFieldWithInitializer1 in #t7.==(null) ?{core::int} let final core::int #t8 = self::init<core::int>(73) in self::Class::_#nonNullableStaticFinalFieldWithInitializer1.==(null) ?{core::int} self::Class::_#nonNullableStaticFinalFieldWithInitializer1 = #t8 : throw new _in::LateInitializationErrorImpl::•("Field 'nonNullableStaticFinalFieldWithInitializer1' has been assigned during initialization.") : #t7{core::int};
+  static get nullableStaticFinalFieldWithInitializer1() → core::int? {
+    if(!self::Class::_#nullableStaticFinalFieldWithInitializer1#isSet) {
+      final core::int? #t9 = self::init<core::int?>(19);
+      if(self::Class::_#nullableStaticFinalFieldWithInitializer1#isSet)
+        throw new _in::LateInitializationErrorImpl::•("Field 'nullableStaticFinalFieldWithInitializer1' has been assigned during initialization.");
+      self::Class::_#nullableStaticFinalFieldWithInitializer1 = #t9;
+      self::Class::_#nullableStaticFinalFieldWithInitializer1#isSet = true;
+    }
+    return self::Class::_#nullableStaticFinalFieldWithInitializer1;
+  }
+  static get nonNullableStaticFinalFieldWithInitializer2Init() → core::int
+    return let final core::int? #t10 = self::Class::_#nonNullableStaticFinalFieldWithInitializer2Init in #t10.==(null) ?{core::int} self::Class::_#nonNullableStaticFinalFieldWithInitializer2Init = 0 : #t10{core::int};
+  static set nonNullableStaticFinalFieldWithInitializer2Init(core::int #t11) → void
+    self::Class::_#nonNullableStaticFinalFieldWithInitializer2Init = #t11;
+  static get nonNullableStaticFinalFieldWithInitializer2() → core::int
+    return let final core::int? #t12 = self::Class::_#nonNullableStaticFinalFieldWithInitializer2 in #t12.==(null) ?{core::int} let final core::int #t13 = (let final core::int #t14 = self::Class::nonNullableStaticFinalFieldWithInitializer2Init in let final core::int #t15 = self::Class::nonNullableStaticFinalFieldWithInitializer2Init = #t14.{core::num::+}(1) in #t14).{core::num::==}(0) ?{core::int} self::Class::nonNullableStaticFinalFieldWithInitializer2.{core::num::+}(1) : 87 in self::Class::_#nonNullableStaticFinalFieldWithInitializer2.==(null) ?{core::int} self::Class::_#nonNullableStaticFinalFieldWithInitializer2 = #t13 : throw new _in::LateInitializationErrorImpl::•("Field 'nonNullableStaticFinalFieldWithInitializer2' has been assigned during initialization.") : #t12{core::int};
+  static get nullableStaticFinalFieldWithInitializer2Init() → core::int
+    return let final core::int? #t16 = self::Class::_#nullableStaticFinalFieldWithInitializer2Init in #t16.==(null) ?{core::int} self::Class::_#nullableStaticFinalFieldWithInitializer2Init = 0 : #t16{core::int};
+  static set nullableStaticFinalFieldWithInitializer2Init(core::int #t17) → void
+    self::Class::_#nullableStaticFinalFieldWithInitializer2Init = #t17;
+  static get nullableStaticFinalFieldWithInitializer2() → core::int? {
+    if(!self::Class::_#nullableStaticFinalFieldWithInitializer2#isSet) {
+      final core::int? #t18 = (let final core::int #t19 = self::Class::nullableStaticFinalFieldWithInitializer2Init in let final core::int #t20 = self::Class::nullableStaticFinalFieldWithInitializer2Init = #t19.{core::num::+}(1) in #t19).{core::num::==}(0) ?{core::int} self::Class::nullableStaticFinalFieldWithInitializer2!.{core::num::+}(1) : 32;
+      if(self::Class::_#nullableStaticFinalFieldWithInitializer2#isSet)
+        throw new _in::LateInitializationErrorImpl::•("Field 'nullableStaticFinalFieldWithInitializer2' has been assigned during initialization.");
+      self::Class::_#nullableStaticFinalFieldWithInitializer2 = #t18;
+      self::Class::_#nullableStaticFinalFieldWithInitializer2#isSet = true;
+    }
+    return self::Class::_#nullableStaticFinalFieldWithInitializer2;
+  }
+}
+static field dynamic lastInit;
+static field core::int? topLevelFieldWithoutInitializer;
+static field core::int? _#nonNullableTopLevelFieldWithInitializer1 = null;
+static field core::int? _#nullableTopLevelFieldWithInitializer = null;
+static field core::bool _#nullableTopLevelFieldWithInitializer#isSet = false;
+static field core::int? _#nonNullableTopLevelFieldWithInitializer2 = null;
+static field core::int? _#nullableTopLevelFieldWithInitializer2 = null;
+static field core::bool _#nullableTopLevelFieldWithInitializer2#isSet = false;
+static field core::int? _#nonNullableFinalTopLevelFieldWithInitializer1 = null;
+static field core::int? _#nullableFinalTopLevelFieldWithInitializer1 = null;
+static field core::bool _#nullableFinalTopLevelFieldWithInitializer1#isSet = false;
+static field core::int? _#nonNullableFinalTopLevelFieldWithInitializer2Init = null;
+static field core::int? _#nonNullableFinalTopLevelFieldWithInitializer2 = null;
+static field core::int? _#nullableFinalTopLevelFieldWithInitializer2Init = null;
+static field core::int? _#nullableFinalTopLevelFieldWithInitializer2 = null;
+static field core::bool _#nullableFinalTopLevelFieldWithInitializer2#isSet = false;
+static method init<T extends core::Object? = dynamic>(self::init::T% value) → self::init::T% {
+  self::lastInit = value;
+  return value;
+}
+static get nonNullableTopLevelFieldWithInitializer1() → core::int
+  return let final core::int? #t21 = self::_#nonNullableTopLevelFieldWithInitializer1 in #t21.==(null) ?{core::int} self::_#nonNullableTopLevelFieldWithInitializer1 = self::init<core::int>(42) : #t21{core::int};
+static set nonNullableTopLevelFieldWithInitializer1(core::int #t22) → void
+  self::_#nonNullableTopLevelFieldWithInitializer1 = #t22;
+static get nullableTopLevelFieldWithInitializer() → core::int? {
+  if(!self::_#nullableTopLevelFieldWithInitializer#isSet) {
+    self::_#nullableTopLevelFieldWithInitializer = self::init<core::int?>(123);
+    self::_#nullableTopLevelFieldWithInitializer#isSet = true;
+  }
+  return self::_#nullableTopLevelFieldWithInitializer;
+}
+static set nullableTopLevelFieldWithInitializer(core::int? #t23) → void {
+  self::_#nullableTopLevelFieldWithInitializer#isSet = true;
+  self::_#nullableTopLevelFieldWithInitializer = #t23;
+}
+static get nonNullableTopLevelFieldWithInitializer2() → core::int
+  return let final core::int? #t24 = self::_#nonNullableTopLevelFieldWithInitializer2 in #t24.==(null) ?{core::int} self::_#nonNullableTopLevelFieldWithInitializer2 = self::init<core::int>(42) : #t24{core::int};
+static set nonNullableTopLevelFieldWithInitializer2(core::int #t25) → void
+  self::_#nonNullableTopLevelFieldWithInitializer2 = #t25;
+static get nullableTopLevelFieldWithInitializer2() → core::int? {
+  if(!self::_#nullableTopLevelFieldWithInitializer2#isSet) {
+    self::_#nullableTopLevelFieldWithInitializer2 = self::init<core::int?>(123);
+    self::_#nullableTopLevelFieldWithInitializer2#isSet = true;
+  }
+  return self::_#nullableTopLevelFieldWithInitializer2;
+}
+static set nullableTopLevelFieldWithInitializer2(core::int? #t26) → void {
+  self::_#nullableTopLevelFieldWithInitializer2#isSet = true;
+  self::_#nullableTopLevelFieldWithInitializer2 = #t26;
+}
+static get nonNullableFinalTopLevelFieldWithInitializer1() → core::int
+  return let final core::int? #t27 = self::_#nonNullableFinalTopLevelFieldWithInitializer1 in #t27.==(null) ?{core::int} let final core::int #t28 = self::init<core::int>(87) in self::_#nonNullableFinalTopLevelFieldWithInitializer1.==(null) ?{core::int} self::_#nonNullableFinalTopLevelFieldWithInitializer1 = #t28 : throw new _in::LateInitializationErrorImpl::•("Field 'nonNullableFinalTopLevelFieldWithInitializer1' has been assigned during initialization.") : #t27{core::int};
+static get nullableFinalTopLevelFieldWithInitializer1() → core::int? {
+  if(!self::_#nullableFinalTopLevelFieldWithInitializer1#isSet) {
+    final core::int? #t29 = self::init<core::int?>(32);
+    if(self::_#nullableFinalTopLevelFieldWithInitializer1#isSet)
+      throw new _in::LateInitializationErrorImpl::•("Field 'nullableFinalTopLevelFieldWithInitializer1' has been assigned during initialization.");
+    self::_#nullableFinalTopLevelFieldWithInitializer1 = #t29;
+    self::_#nullableFinalTopLevelFieldWithInitializer1#isSet = true;
+  }
+  return self::_#nullableFinalTopLevelFieldWithInitializer1;
+}
+static get nonNullableFinalTopLevelFieldWithInitializer2Init() → core::int
+  return let final core::int? #t30 = self::_#nonNullableFinalTopLevelFieldWithInitializer2Init in #t30.==(null) ?{core::int} self::_#nonNullableFinalTopLevelFieldWithInitializer2Init = 0 : #t30{core::int};
+static set nonNullableFinalTopLevelFieldWithInitializer2Init(core::int #t31) → void
+  self::_#nonNullableFinalTopLevelFieldWithInitializer2Init = #t31;
+static get nonNullableFinalTopLevelFieldWithInitializer2() → core::int
+  return let final core::int? #t32 = self::_#nonNullableFinalTopLevelFieldWithInitializer2 in #t32.==(null) ?{core::int} let final core::int #t33 = (let final core::int #t34 = self::nonNullableFinalTopLevelFieldWithInitializer2Init in let final core::int #t35 = self::nonNullableFinalTopLevelFieldWithInitializer2Init = #t34.{core::num::+}(1) in #t34).{core::num::==}(0) ?{core::int} self::nonNullableFinalTopLevelFieldWithInitializer2.{core::num::+}(1) : 87 in self::_#nonNullableFinalTopLevelFieldWithInitializer2.==(null) ?{core::int} self::_#nonNullableFinalTopLevelFieldWithInitializer2 = #t33 : throw new _in::LateInitializationErrorImpl::•("Field 'nonNullableFinalTopLevelFieldWithInitializer2' has been assigned during initialization.") : #t32{core::int};
+static get nullableFinalTopLevelFieldWithInitializer2Init() → core::int
+  return let final core::int? #t36 = self::_#nullableFinalTopLevelFieldWithInitializer2Init in #t36.==(null) ?{core::int} self::_#nullableFinalTopLevelFieldWithInitializer2Init = 0 : #t36{core::int};
+static set nullableFinalTopLevelFieldWithInitializer2Init(core::int #t37) → void
+  self::_#nullableFinalTopLevelFieldWithInitializer2Init = #t37;
+static get nullableFinalTopLevelFieldWithInitializer2() → core::int? {
+  if(!self::_#nullableFinalTopLevelFieldWithInitializer2#isSet) {
+    final core::int? #t38 = (let final core::int #t39 = self::nullableFinalTopLevelFieldWithInitializer2Init in let final core::int #t40 = self::nullableFinalTopLevelFieldWithInitializer2Init = #t39.{core::num::+}(1) in #t39).{core::num::==}(0) ?{core::int} self::nullableFinalTopLevelFieldWithInitializer2!.{core::num::+}(1) : 32;
+    if(self::_#nullableFinalTopLevelFieldWithInitializer2#isSet)
+      throw new _in::LateInitializationErrorImpl::•("Field 'nullableFinalTopLevelFieldWithInitializer2' has been assigned during initialization.");
+    self::_#nullableFinalTopLevelFieldWithInitializer2 = #t38;
+    self::_#nullableFinalTopLevelFieldWithInitializer2#isSet = true;
+  }
+  return self::_#nullableFinalTopLevelFieldWithInitializer2;
+}
+static method main() → dynamic {
+  self::expect(null, self::lastInit);
+  self::expect(null, self::topLevelFieldWithoutInitializer);
+  self::expect(null, self::Class::staticFieldWithoutInitializer);
+  self::expect(42, self::nonNullableTopLevelFieldWithInitializer1);
+  self::expect(42, self::lastInit);
+  self::expect(123, self::nullableTopLevelFieldWithInitializer);
+  self::expect(123, self::lastInit);
+  self::nonNullableTopLevelFieldWithInitializer2 = 56;
+  self::expect(123, self::lastInit);
+  self::expect(56, self::nonNullableTopLevelFieldWithInitializer2);
+  self::expect(123, self::lastInit);
+  self::nullableTopLevelFieldWithInitializer2 = 7;
+  self::expect(123, self::lastInit);
+  self::expect(7, self::nullableTopLevelFieldWithInitializer2);
+  self::expect(123, self::lastInit);
+  self::expect(87, self::nonNullableFinalTopLevelFieldWithInitializer1);
+  self::expect(87, self::lastInit);
+  self::expect(32, self::nullableFinalTopLevelFieldWithInitializer1);
+  self::expect(32, self::lastInit);
+  self::throws(() → core::int => self::nonNullableFinalTopLevelFieldWithInitializer2, "Read nonNullableFinalTopLevelFieldWithInitializer2");
+  self::throws(() → core::int? => self::nullableFinalTopLevelFieldWithInitializer2, "Read nullableFinalTopLevelFieldWithInitializer2");
+  self::expect(55, self::Class::nonNullableStaticFieldWithInitializer1);
+  self::expect(55, self::lastInit);
+  self::expect(17, self::Class::nullableStaticFieldWithInitializer1);
+  self::expect(17, self::lastInit);
+  self::Class::nonNullableStaticFieldWithInitializer2 = 63;
+  self::expect(17, self::lastInit);
+  self::expect(63, self::Class::nonNullableStaticFieldWithInitializer2);
+  self::expect(17, self::lastInit);
+  self::Class::nullableStaticFieldWithInitializer2 = 89;
+  self::expect(17, self::lastInit);
+  self::expect(89, self::Class::nullableStaticFieldWithInitializer2);
+  self::expect(17, self::lastInit);
+  self::expect(73, self::Class::nonNullableStaticFinalFieldWithInitializer1);
+  self::expect(73, self::lastInit);
+  self::expect(19, self::Class::nullableStaticFinalFieldWithInitializer1);
+  self::expect(19, self::lastInit);
+  self::throws(() → core::int => self::Class::nonNullableStaticFinalFieldWithInitializer2, "Read nonNullableStaticFinalFieldWithInitializer2");
+  self::throws(() → core::int? => self::Class::nullableStaticFinalFieldWithInitializer2, "Read nullableStaticFinalFieldWithInitializer2");
+}
+static method expect(dynamic expected, dynamic actual) → dynamic {
+  if(!expected.{core::Object::==}(actual))
+    throw "Expected ${expected}, actual ${actual}";
+}
+static method throws(() → dynamic f, core::String message) → dynamic {
+  dynamic value;
+  try {
+    value = f.call();
+  }
+  on core::LateInitializationError catch(final core::LateInitializationError e) {
+    core::print(e);
+    return;
+  }
+  throw "${message}: ${value}";
+}
diff --git a/pkg/front_end/testcases/static_field_lowering/opt_out.dart b/pkg/front_end/testcases/static_field_lowering/opt_out.dart
new file mode 100644
index 0000000..10bc21d
--- /dev/null
+++ b/pkg/front_end/testcases/static_field_lowering/opt_out.dart
@@ -0,0 +1,93 @@
+// 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.
+
+// @dart=2.8
+
+dynamic lastInit;
+
+T init<T>(T value) {
+  lastInit = value;
+  return value;
+}
+
+int topLevelFieldWithoutInitializer;
+
+int topLevelFieldWithInitializer1 = init(42);
+
+int topLevelFieldWithInitializer2 = init(42);
+
+final int finalTopLevelFieldWithInitializer1 = init(87);
+
+int finalTopLevelFieldWithInitializer2Init = 0;
+final int finalTopLevelFieldWithInitializer2 =
+    finalTopLevelFieldWithInitializer2Init++ == 0
+        ? finalTopLevelFieldWithInitializer2 + 1
+        : 87;
+
+class Class {
+  static int staticFieldWithoutInitializer;
+
+  static int staticFieldWithInitializer1 = init(55);
+
+  static int staticFieldWithInitializer2 = init(55);
+
+  static final int staticFinalFieldWithInitializer1 = init(73);
+
+  static int staticFinalFieldWithInitializer2Init = 0;
+  static final int staticFinalFieldWithInitializer2 =
+      staticFinalFieldWithInitializer2Init++ == 0
+          ? staticFinalFieldWithInitializer2 + 1
+          : 87;
+}
+
+main() {
+  expect(null, lastInit);
+  expect(null, topLevelFieldWithoutInitializer);
+  expect(null, Class.staticFieldWithoutInitializer);
+
+  expect(42, topLevelFieldWithInitializer1);
+  expect(42, lastInit);
+
+  topLevelFieldWithInitializer2 = 56;
+  expect(42, lastInit);
+  expect(56, topLevelFieldWithInitializer2);
+  expect(42, lastInit);
+
+  expect(87, finalTopLevelFieldWithInitializer1);
+  expect(87, lastInit);
+
+  throws(() => finalTopLevelFieldWithInitializer2,
+      'Read finalTopLevelFieldWithInitializer2');
+
+  expect(55, Class.staticFieldWithInitializer1);
+  expect(55, lastInit);
+
+  Class.staticFieldWithInitializer2 = 63;
+  expect(55, lastInit);
+  expect(63, Class.staticFieldWithInitializer2);
+  expect(55, lastInit);
+
+  expect(73, Class.staticFinalFieldWithInitializer1);
+  expect(73, lastInit);
+
+  throws(() => Class.staticFinalFieldWithInitializer2,
+      'Read staticFinalFieldWithInitializer2');
+}
+
+expect(expected, actual) {
+  if (expected != actual) throw 'Expected $expected, actual $actual';
+}
+
+throws(f(), String message) {
+  dynamic value;
+  try {
+    value = f();
+  } on LateInitializationError catch (e) {
+    throw '$message: Unexpected LateInitializationError: $e';
+  } catch (e) {
+    print(e);
+    return;
+  }
+  throw '$message: $value';
+}
diff --git a/pkg/front_end/testcases/static_field_lowering/opt_out.dart.textual_outline.expect b/pkg/front_end/testcases/static_field_lowering/opt_out.dart.textual_outline.expect
new file mode 100644
index 0000000..3e7aff7
--- /dev/null
+++ b/pkg/front_end/testcases/static_field_lowering/opt_out.dart.textual_outline.expect
@@ -0,0 +1,28 @@
+// @dart = 2.8
+dynamic lastInit;
+T init<T>(T value) {}
+int topLevelFieldWithoutInitializer;
+int topLevelFieldWithInitializer1 = init(42);
+int topLevelFieldWithInitializer2 = init(42);
+final int finalTopLevelFieldWithInitializer1 = init(87);
+int finalTopLevelFieldWithInitializer2Init = 0;
+final int finalTopLevelFieldWithInitializer2 =
+    finalTopLevelFieldWithInitializer2Init++ == 0
+        ? finalTopLevelFieldWithInitializer2 + 1
+        : 87;
+
+class Class {
+  static int staticFieldWithoutInitializer;
+  static int staticFieldWithInitializer1 = init(55);
+  static int staticFieldWithInitializer2 = init(55);
+  static final int staticFinalFieldWithInitializer1 = init(73);
+  static int staticFinalFieldWithInitializer2Init = 0;
+  static final int staticFinalFieldWithInitializer2 =
+      staticFinalFieldWithInitializer2Init++ == 0
+          ? staticFinalFieldWithInitializer2 + 1
+          : 87;
+}
+
+main() {}
+expect(expected, actual) {}
+throws(f(), String message) {}
diff --git a/pkg/front_end/testcases/static_field_lowering/opt_out.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/static_field_lowering/opt_out.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..494c66e8
--- /dev/null
+++ b/pkg/front_end/testcases/static_field_lowering/opt_out.dart.textual_outline_modelled.expect
@@ -0,0 +1,28 @@
+// @dart = 2.8
+T init<T>(T value) {}
+
+class Class {
+  static final int staticFinalFieldWithInitializer1 = init(73);
+  static final int staticFinalFieldWithInitializer2 =
+      staticFinalFieldWithInitializer2Init++ == 0
+          ? staticFinalFieldWithInitializer2 + 1
+          : 87;
+  static int staticFieldWithInitializer1 = init(55);
+  static int staticFieldWithInitializer2 = init(55);
+  static int staticFieldWithoutInitializer;
+  static int staticFinalFieldWithInitializer2Init = 0;
+}
+
+dynamic lastInit;
+expect(expected, actual) {}
+final int finalTopLevelFieldWithInitializer1 = init(87);
+final int finalTopLevelFieldWithInitializer2 =
+    finalTopLevelFieldWithInitializer2Init++ == 0
+        ? finalTopLevelFieldWithInitializer2 + 1
+        : 87;
+int finalTopLevelFieldWithInitializer2Init = 0;
+int topLevelFieldWithInitializer1 = init(42);
+int topLevelFieldWithInitializer2 = init(42);
+int topLevelFieldWithoutInitializer;
+main() {}
+throws(f(), String message) {}
diff --git a/pkg/front_end/testcases/static_field_lowering/opt_out.dart.weak.expect b/pkg/front_end/testcases/static_field_lowering/opt_out.dart.weak.expect
new file mode 100644
index 0000000..9f52494
--- /dev/null
+++ b/pkg/front_end/testcases/static_field_lowering/opt_out.dart.weak.expect
@@ -0,0 +1,77 @@
+library;
+import self as self;
+import "dart:core" as core;
+
+class Class extends core::Object {
+  static field core::int* staticFieldWithoutInitializer = null;
+  static field core::int* staticFieldWithInitializer1 = self::init<core::int*>(55);
+  static field core::int* staticFieldWithInitializer2 = self::init<core::int*>(55);
+  static final field core::int* staticFinalFieldWithInitializer1 = self::init<core::int*>(73);
+  static field core::int* staticFinalFieldWithInitializer2Init = 0;
+  static final field core::int* staticFinalFieldWithInitializer2 = (let final core::int* #t1 = self::Class::staticFinalFieldWithInitializer2Init in let final core::int* #t2 = self::Class::staticFinalFieldWithInitializer2Init = #t1.{core::num::+}(1) in #t1).{core::num::==}(0) ?{core::int*} self::Class::staticFinalFieldWithInitializer2.{core::num::+}(1) : 87;
+  synthetic constructor •() → self::Class*
+    : super core::Object::•()
+    ;
+  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
+  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
+  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
+  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
+  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
+  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
+  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
+  abstract member-signature method toString() → core::String*; -> core::Object::toString
+  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
+  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+}
+static field dynamic lastInit;
+static field core::int* topLevelFieldWithoutInitializer;
+static field core::int* topLevelFieldWithInitializer1 = self::init<core::int*>(42);
+static field core::int* topLevelFieldWithInitializer2 = self::init<core::int*>(42);
+static final field core::int* finalTopLevelFieldWithInitializer1 = self::init<core::int*>(87);
+static field core::int* finalTopLevelFieldWithInitializer2Init = 0;
+static final field core::int* finalTopLevelFieldWithInitializer2 = (let final core::int* #t3 = self::finalTopLevelFieldWithInitializer2Init in let final core::int* #t4 = self::finalTopLevelFieldWithInitializer2Init = #t3.{core::num::+}(1) in #t3).{core::num::==}(0) ?{core::int*} self::finalTopLevelFieldWithInitializer2.{core::num::+}(1) : 87;
+static method init<T extends core::Object* = dynamic>(self::init::T* value) → self::init::T* {
+  self::lastInit = value;
+  return value;
+}
+static method main() → dynamic {
+  self::expect(null, self::lastInit);
+  self::expect(null, self::topLevelFieldWithoutInitializer);
+  self::expect(null, self::Class::staticFieldWithoutInitializer);
+  self::expect(42, self::topLevelFieldWithInitializer1);
+  self::expect(42, self::lastInit);
+  self::topLevelFieldWithInitializer2 = 56;
+  self::expect(42, self::lastInit);
+  self::expect(56, self::topLevelFieldWithInitializer2);
+  self::expect(42, self::lastInit);
+  self::expect(87, self::finalTopLevelFieldWithInitializer1);
+  self::expect(87, self::lastInit);
+  self::throws(() → core::int* => self::finalTopLevelFieldWithInitializer2, "Read finalTopLevelFieldWithInitializer2");
+  self::expect(55, self::Class::staticFieldWithInitializer1);
+  self::expect(55, self::lastInit);
+  self::Class::staticFieldWithInitializer2 = 63;
+  self::expect(55, self::lastInit);
+  self::expect(63, self::Class::staticFieldWithInitializer2);
+  self::expect(55, self::lastInit);
+  self::expect(73, self::Class::staticFinalFieldWithInitializer1);
+  self::expect(73, self::lastInit);
+  self::throws(() → core::int* => self::Class::staticFinalFieldWithInitializer2, "Read staticFinalFieldWithInitializer2");
+}
+static method expect(dynamic expected, dynamic actual) → dynamic {
+  if(!expected.{core::Object::==}(actual))
+    throw "Expected ${expected}, actual ${actual}";
+}
+static method throws(() →* dynamic f, core::String* message) → dynamic {
+  dynamic value;
+  try {
+    value = f.call();
+  }
+  on core::LateInitializationError* catch(final core::LateInitializationError* e) {
+    throw "${message}: Unexpected LateInitializationError: ${e}";
+  }
+  on dynamic catch(final dynamic e) {
+    core::print(e);
+    return;
+  }
+  throw "${message}: ${value}";
+}
diff --git a/pkg/front_end/testcases/static_field_lowering/opt_out.dart.weak.transformed.expect b/pkg/front_end/testcases/static_field_lowering/opt_out.dart.weak.transformed.expect
new file mode 100644
index 0000000..9f52494
--- /dev/null
+++ b/pkg/front_end/testcases/static_field_lowering/opt_out.dart.weak.transformed.expect
@@ -0,0 +1,77 @@
+library;
+import self as self;
+import "dart:core" as core;
+
+class Class extends core::Object {
+  static field core::int* staticFieldWithoutInitializer = null;
+  static field core::int* staticFieldWithInitializer1 = self::init<core::int*>(55);
+  static field core::int* staticFieldWithInitializer2 = self::init<core::int*>(55);
+  static final field core::int* staticFinalFieldWithInitializer1 = self::init<core::int*>(73);
+  static field core::int* staticFinalFieldWithInitializer2Init = 0;
+  static final field core::int* staticFinalFieldWithInitializer2 = (let final core::int* #t1 = self::Class::staticFinalFieldWithInitializer2Init in let final core::int* #t2 = self::Class::staticFinalFieldWithInitializer2Init = #t1.{core::num::+}(1) in #t1).{core::num::==}(0) ?{core::int*} self::Class::staticFinalFieldWithInitializer2.{core::num::+}(1) : 87;
+  synthetic constructor •() → self::Class*
+    : super core::Object::•()
+    ;
+  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
+  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
+  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
+  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
+  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
+  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
+  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
+  abstract member-signature method toString() → core::String*; -> core::Object::toString
+  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
+  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+}
+static field dynamic lastInit;
+static field core::int* topLevelFieldWithoutInitializer;
+static field core::int* topLevelFieldWithInitializer1 = self::init<core::int*>(42);
+static field core::int* topLevelFieldWithInitializer2 = self::init<core::int*>(42);
+static final field core::int* finalTopLevelFieldWithInitializer1 = self::init<core::int*>(87);
+static field core::int* finalTopLevelFieldWithInitializer2Init = 0;
+static final field core::int* finalTopLevelFieldWithInitializer2 = (let final core::int* #t3 = self::finalTopLevelFieldWithInitializer2Init in let final core::int* #t4 = self::finalTopLevelFieldWithInitializer2Init = #t3.{core::num::+}(1) in #t3).{core::num::==}(0) ?{core::int*} self::finalTopLevelFieldWithInitializer2.{core::num::+}(1) : 87;
+static method init<T extends core::Object* = dynamic>(self::init::T* value) → self::init::T* {
+  self::lastInit = value;
+  return value;
+}
+static method main() → dynamic {
+  self::expect(null, self::lastInit);
+  self::expect(null, self::topLevelFieldWithoutInitializer);
+  self::expect(null, self::Class::staticFieldWithoutInitializer);
+  self::expect(42, self::topLevelFieldWithInitializer1);
+  self::expect(42, self::lastInit);
+  self::topLevelFieldWithInitializer2 = 56;
+  self::expect(42, self::lastInit);
+  self::expect(56, self::topLevelFieldWithInitializer2);
+  self::expect(42, self::lastInit);
+  self::expect(87, self::finalTopLevelFieldWithInitializer1);
+  self::expect(87, self::lastInit);
+  self::throws(() → core::int* => self::finalTopLevelFieldWithInitializer2, "Read finalTopLevelFieldWithInitializer2");
+  self::expect(55, self::Class::staticFieldWithInitializer1);
+  self::expect(55, self::lastInit);
+  self::Class::staticFieldWithInitializer2 = 63;
+  self::expect(55, self::lastInit);
+  self::expect(63, self::Class::staticFieldWithInitializer2);
+  self::expect(55, self::lastInit);
+  self::expect(73, self::Class::staticFinalFieldWithInitializer1);
+  self::expect(73, self::lastInit);
+  self::throws(() → core::int* => self::Class::staticFinalFieldWithInitializer2, "Read staticFinalFieldWithInitializer2");
+}
+static method expect(dynamic expected, dynamic actual) → dynamic {
+  if(!expected.{core::Object::==}(actual))
+    throw "Expected ${expected}, actual ${actual}";
+}
+static method throws(() →* dynamic f, core::String* message) → dynamic {
+  dynamic value;
+  try {
+    value = f.call();
+  }
+  on core::LateInitializationError* catch(final core::LateInitializationError* e) {
+    throw "${message}: Unexpected LateInitializationError: ${e}";
+  }
+  on dynamic catch(final dynamic e) {
+    core::print(e);
+    return;
+  }
+  throw "${message}: ${value}";
+}
diff --git a/pkg/front_end/testing.json b/pkg/front_end/testing.json
index 5551b0d..418cb27 100644
--- a/pkg/front_end/testing.json
+++ b/pkg/front_end/testing.json
@@ -78,7 +78,8 @@
         "/testcases/expression/",
         "/testcases/general_nnbd_opt_out/",
         "/testcases/nnbd_mixed/",
-        "/testcases/nonfunction_type_aliases/"
+        "/testcases/nonfunction_type_aliases/",
+        "/testcases/static_field_lowering/"
       ]
     },
     {
@@ -99,7 +100,8 @@
         "/testcases/expression/",
         "/testcases/general_nnbd_opt_out/",
         "/testcases/nnbd_mixed/",
-        "/testcases/nonfunction_type_aliases/"
+        "/testcases/nonfunction_type_aliases/",
+        "/testcases/static_field_lowering/"
       ]
     },
     {
@@ -120,7 +122,8 @@
         "/testcases/expression/",
         "/testcases/general_nnbd_opt_out/",
         "/testcases/nnbd_mixed/",
-        "/testcases/nonfunction_type_aliases/"
+        "/testcases/nonfunction_type_aliases/",
+        "/testcases/static_field_lowering/"
       ]
     },
     {
@@ -141,7 +144,8 @@
         "/testcases/expression/",
         "/testcases/general_nnbd_opt_out/",
         "/testcases/nnbd_mixed/",
-        "/testcases/nonfunction_type_aliases/"
+        "/testcases/nonfunction_type_aliases/",
+        "/testcases/static_field_lowering/"
       ]
     },
     {
@@ -271,6 +275,19 @@
       "exclude": []
     },
     {
+      "name": "parser_all",
+      "kind": "Chain",
+      "source": "test/parser_all_suite.dart",
+      "path": "../../",
+      "status": "parser_testcases/parser_all.status",
+      "pattern": [
+        "pkg/front_end/.*\\.dart$",
+        "pkg/front_end/.*\\.crash_dart$",
+        "tests/.*\\.dart$"
+      ],
+      "exclude": []
+    },
+    {
       "name": "lint",
       "kind": "Chain",
       "source": "test/lint_suite.dart",
diff --git a/pkg/front_end/tool/_fasta/command_line.dart b/pkg/front_end/tool/_fasta/command_line.dart
index ca1e771..fd864cf 100644
--- a/pkg/front_end/tool/_fasta/command_line.dart
+++ b/pkg/front_end/tool/_fasta/command_line.dart
@@ -180,6 +180,7 @@
   Flags.fatal: const StringListValue(),
   Flags.fatalSkip: const StringValue(),
   Flags.forceLateLowering: const BoolValue(false),
+  Flags.forceStaticFieldLowering: const BoolValue(false),
   Flags.forceNoExplicitGetterCalls: const BoolValue(false),
   Flags.help: const BoolValue(false),
   Flags.librariesJson: const UriValue(),
@@ -242,6 +243,8 @@
 
   final TargetFlags flags = new TargetFlags(
       forceLateLoweringForTesting: options[Flags.forceLateLowering],
+      forceStaticFieldLoweringForTesting:
+          options[Flags.forceStaticFieldLowering],
       forceNoExplicitGetterCallsForTesting:
           options[Flags.forceNoExplicitGetterCalls],
       enableNullSafety:
diff --git a/pkg/front_end/tool/_fasta/direct_parser_ast_helper_creator.dart b/pkg/front_end/tool/_fasta/direct_parser_ast_helper_creator.dart
new file mode 100644
index 0000000..2153705
--- /dev/null
+++ b/pkg/front_end/tool/_fasta/direct_parser_ast_helper_creator.dart
@@ -0,0 +1,213 @@
+// 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.
+
+import 'dart:io';
+import 'dart:typed_data';
+
+import 'package:_fe_analyzer_shared/src/parser/parser.dart';
+import 'package:_fe_analyzer_shared/src/parser/formal_parameter_kind.dart';
+import 'package:_fe_analyzer_shared/src/parser/listener.dart';
+import 'package:_fe_analyzer_shared/src/parser/member_kind.dart';
+import 'package:_fe_analyzer_shared/src/scanner/utf8_bytes_scanner.dart';
+import 'package:_fe_analyzer_shared/src/scanner/token.dart';
+import 'package:dart_style/dart_style.dart' show DartFormatter;
+
+StringSink out;
+
+main(List<String> args) {
+  if (args.contains("--stdout")) {
+    out = stdout;
+  } else {
+    out = new StringBuffer();
+  }
+
+  File f = new File.fromUri(Platform.script
+      .resolve("../../../_fe_analyzer_shared/lib/src/parser/listener.dart"));
+  List<int> rawBytes = f.readAsBytesSync();
+
+  Uint8List bytes = new Uint8List(rawBytes.length + 1);
+  bytes.setRange(0, rawBytes.length, rawBytes);
+
+  Utf8BytesScanner scanner = new Utf8BytesScanner(bytes, includeComments: true);
+  Token firstToken = scanner.tokenize();
+
+  out.write(r"""
+// 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.
+
+import 'package:_fe_analyzer_shared/src/parser/assert.dart';
+import 'package:_fe_analyzer_shared/src/parser/block_kind.dart';
+import 'package:_fe_analyzer_shared/src/parser/declaration_kind.dart';
+import 'package:_fe_analyzer_shared/src/parser/formal_parameter_kind.dart';
+import 'package:_fe_analyzer_shared/src/parser/identifier_context.dart';
+import 'package:_fe_analyzer_shared/src/parser/listener.dart';
+import 'package:_fe_analyzer_shared/src/parser/member_kind.dart';
+import 'package:_fe_analyzer_shared/src/scanner/error_token.dart';
+import 'package:_fe_analyzer_shared/src/scanner/token.dart';
+import 'package:front_end/src/fasta/messages.dart';
+
+// THIS FILE IS AUTO GENERATED BY
+// 'tool/_fasta/direct_parser_ast_helper_creator.dart'
+// Run e.g.
+/*
+   out/ReleaseX64/dart \
+     pkg/front_end/tool/_fasta/direct_parser_ast_helper_creator.dart \
+      > pkg/front_end/lib/src/fasta/util/direct_parser_ast_helper.dart
+*/
+
+class DirectParserASTContent {
+  final String what;
+  final DirectParserASTType type;
+  final Map<String, Object> arguments;
+  List<DirectParserASTContent> content;
+
+  DirectParserASTContent(this.what, this.type, this.arguments);
+
+  // TODO(jensj): Compare two ASTs.
+}
+
+enum DirectParserASTType { BEGIN, END, HANDLE, DONE }
+
+abstract class AbstractDirectParserASTListener implements Listener {
+  List<DirectParserASTContent> data = [];
+
+  void seen(String what, DirectParserASTType type, Map<String, Object> arguments);
+
+""");
+
+  ParserCreatorListener listener = new ParserCreatorListener();
+  ClassMemberParser parser = new ClassMemberParser(listener);
+  parser.parseUnit(firstToken);
+
+  out.writeln("}");
+
+  if (out is StringBuffer) {
+    String text = new DartFormatter().format("$out");
+    if (args.isNotEmpty) {
+      new File(args.first).writeAsStringSync(text);
+    } else {
+      stdout.write(text);
+    }
+  }
+}
+
+class ParserCreatorListener extends Listener {
+  bool insideListenerClass = false;
+  String currentMethodName;
+  String latestSeenParameterTypeToken;
+  List<String> parameters = <String>[];
+  List<String> parameterTypes = <String>[];
+
+  void beginClassDeclaration(Token begin, Token abstractToken, Token name) {
+    if (name.lexeme == "Listener") insideListenerClass = true;
+  }
+
+  void endClassDeclaration(Token beginToken, Token endToken) {
+    insideListenerClass = false;
+  }
+
+  void beginMethod(Token externalToken, Token staticToken, Token covariantToken,
+      Token varFinalOrConst, Token getOrSet, Token name) {
+    currentMethodName = name.lexeme;
+  }
+
+  void endClassMethod(Token getOrSet, Token beginToken, Token beginParam,
+      Token beginInitializers, Token endToken) {
+    void end() {
+      parameters.clear();
+      parameterTypes.clear();
+      currentMethodName = null;
+    }
+
+    if (insideListenerClass &&
+        (currentMethodName.startsWith("begin") ||
+            currentMethodName.startsWith("end") ||
+            currentMethodName.startsWith("handle"))) {
+      StringBuffer sb = new StringBuffer();
+      sb.write("  ");
+      Token token = beginToken;
+      Token latestToken;
+      while (true) {
+        if (latestToken != null && latestToken.charEnd < token.charOffset) {
+          sb.write(" ");
+        }
+        sb.write(token.lexeme);
+        if ((token is BeginToken &&
+                token.type == TokenType.OPEN_CURLY_BRACKET) ||
+            token is SimpleToken && token.type == TokenType.FUNCTION) {
+          break;
+        }
+        if (token == endToken) {
+          throw token.runtimeType;
+        }
+        latestToken = token;
+        token = token.next;
+      }
+
+      if (token is SimpleToken && token.type == TokenType.FUNCTION) {
+        return end();
+      } else {
+        sb.write("\n    ");
+        sb.write('seen("');
+        String typeString;
+        String name;
+        if (currentMethodName.startsWith("begin")) {
+          typeString = "BEGIN";
+          name = currentMethodName.substring("begin".length);
+        } else if (currentMethodName.startsWith("end")) {
+          typeString = "END";
+          name = currentMethodName.substring("end".length);
+        } else if (currentMethodName.startsWith("handle")) {
+          typeString = "HANDLE";
+          name = currentMethodName.substring("handle".length);
+        } else {
+          throw "Unexpected.";
+        }
+        sb.write(name);
+        sb.write('", DirectParserASTType.');
+        sb.write(typeString);
+        sb.write(", {");
+        String separator = "";
+        for (int i = 0; i < parameters.length; i++) {
+          sb.write(separator);
+          sb.write('"');
+          sb.write(parameters[i]);
+          sb.write('": ');
+          sb.write(parameters[i]);
+          separator = ", ";
+        }
+
+        sb.write("});\n  ");
+
+        sb.write("}");
+      }
+      sb.write("\n\n");
+
+      out.write(sb.toString());
+    }
+    end();
+  }
+
+  @override
+  void handleNoType(Token lastConsumed) {
+    latestSeenParameterTypeToken = null;
+  }
+
+  void handleType(Token beginToken, Token questionMark) {
+    latestSeenParameterTypeToken = beginToken.lexeme;
+  }
+
+  void endFormalParameter(
+      Token thisKeyword,
+      Token periodAfterThis,
+      Token nameToken,
+      Token initializerStart,
+      Token initializerEnd,
+      FormalParameterKind kind,
+      MemberKind memberKind) {
+    parameters.add(nameToken.lexeme);
+    parameterTypes.add(latestSeenParameterTypeToken);
+  }
+}
diff --git a/pkg/front_end/tool/parser_direct_ast/console_helper.dart b/pkg/front_end/tool/parser_direct_ast/console_helper.dart
new file mode 100644
index 0000000..e41eac3
--- /dev/null
+++ b/pkg/front_end/tool/parser_direct_ast/console_helper.dart
@@ -0,0 +1,296 @@
+// 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.
+
+import "dart:async";
+import "dart:io";
+import "dart:isolate";
+
+class Application {
+  int lastKnownTerminalColumns;
+  int lastKnownTerminalLines;
+  RawReceivePort preventClose;
+  StreamSubscription<List<int>> stdinListen;
+  StreamSubscription<ProcessSignal> sigintListen;
+  StreamSubscription<ProcessSignal> sigwinchListen;
+  Timer timer;
+  final Widget widget;
+  bool started = false;
+
+  Application(this.widget) {
+    lastKnownTerminalColumns = stdout.terminalColumns;
+    lastKnownTerminalLines = stdout.terminalLines;
+    preventClose = new RawReceivePort();
+    stdin.echoMode = false;
+    stdin.lineMode = false;
+
+    stdinListen = stdin.listen(stdinListener);
+    sigintListen = ProcessSignal.sigint.watch().listen((ProcessSignal signal) {
+      quit();
+      exit(0);
+    });
+    if (!Platform.isWindows) {
+      sigwinchListen =
+          ProcessSignal.sigwinch.watch().listen((ProcessSignal signal) {
+        lastKnownTerminalColumns = stdout.terminalColumns;
+        lastKnownTerminalLines = stdout.terminalLines;
+        clearScreenAlt();
+        widget.print(this);
+      });
+    }
+  }
+
+  void stdinListener(List<int> data) {
+    try {
+      widget.input(this, data);
+    } catch (e) {
+      quit();
+      rethrow;
+    }
+  }
+
+  void quit() {
+    gotoMainScreenBuffer();
+    showCursor();
+    // clearScreenAlt();
+    timer.cancel();
+    preventClose.close();
+    stdinListen.cancel();
+    sigintListen.cancel();
+    sigwinchListen?.cancel();
+  }
+
+  void start() {
+    if (started) throw "Already started!";
+    started = true;
+
+    gotoAlternativeScreenBuffer();
+    hideCursor();
+    // clearScreen();
+    widget.print(this);
+    timer = new Timer.periodic(new Duration(milliseconds: 100), (t) {
+      var x = stdout.terminalColumns;
+      bool changed = false;
+      if (x != lastKnownTerminalColumns) {
+        lastKnownTerminalColumns = x;
+        changed = true;
+      }
+      x = stdout.terminalLines;
+      if (x != lastKnownTerminalLines) {
+        lastKnownTerminalLines = x;
+        changed = true;
+      }
+
+      if (changed) {
+        clearScreenAlt();
+        widget.print(this);
+      }
+    });
+  }
+}
+
+abstract class Widget {
+  void print(Application app);
+
+  void input(Application app, List<int> data) {}
+}
+
+// "ESC [" is "Control Sequence Introducer" (CSI) according to Wikipedia
+// (https://en.wikipedia.org/wiki/ANSI_escape_code#Escape_sequences).
+const String CSI = "\x1b[";
+
+void setCursorPosition(int row, int column) {
+  // "CSI n ; m H": Cursor Position.
+  stdout.write("${CSI}${row};${column}H");
+}
+
+void gotoAlternativeScreenBuffer() {
+  // "CSI ? 1049 h": Enable alternative screen buffer.
+  stdout.write("${CSI}?1049h");
+}
+
+void gotoMainScreenBuffer() {
+  // "CSI ? 1049 l": Disable alternative screen buffer.
+  stdout.write("${CSI}?1049l");
+}
+
+void clearScreen() {
+  // "CSI n J": Erase in Display. Clears part of the screen.
+  // If n is 2, clear entire screen [...].
+  stdout.write("${CSI}2J");
+  setCursorPosition(0, 0);
+}
+
+void clearScreenAlt() {
+  setCursorPosition(0, 0);
+  // "CSI n J": Erase in Display. Clears part of the screen.
+  // If n is 0 (or missing), clear from cursor to end of screen.
+  stdout.write("${CSI}0J");
+  setCursorPosition(0, 0);
+}
+
+void hideCursor() {
+  // "CSI ? 25 l": DECTCEM Hides the cursor.
+  stdout.write("${CSI}?25l");
+}
+
+void showCursor() {
+  // "CSI ? 25 h": DECTCEM Shows the cursor, from the VT320.
+  stdout.write("${CSI}?25h");
+}
+
+void printAt(int row, int column, String s) {
+  setCursorPosition(row, column);
+  stdout.write(s);
+  setCursorPosition(stdout.terminalLines, stdout.terminalColumns);
+}
+
+String colorStringBlack(String s) {
+  // "CSI n m": Select Graphic Rendition.
+  // m = 0 = Reset / Normal.
+  // In in range [30, 37]: Set foreground color.
+  // m = 30 = black.
+  // In total => start black; print string; reset colors.
+  return "${CSI}30m${s}${CSI}0m";
+}
+
+String colorStringRed(String s) {
+  // See above.
+  // m = 31 = red.
+  return "${CSI}31m${s}${CSI}0m";
+}
+
+String colorStringGreen(String s) {
+  // See above.
+  // m = 32 = green.
+  return "${CSI}32m${s}${CSI}0m";
+}
+
+String colorStringYellow(String s) {
+  // See above.
+  // m = 33 = yellow.
+  return "${CSI}33m${s}${CSI}0m";
+}
+
+String colorStringBlue(String s) {
+  // See above.
+  // m = 34 = blue.
+  return "${CSI}34m${s}${CSI}0m";
+}
+
+String colorStringMagenta(String s) {
+  // See above.
+  // m = 35 = magenta.
+  return "${CSI}35m${s}${CSI}0m";
+}
+
+String colorStringCyan(String s) {
+  // See above.
+  // m = 36 = cyan.
+  return "${CSI}36m${s}${CSI}0m";
+}
+
+String colorStringWhite(String s) {
+  // m = 37 = white.
+  return "${CSI}37m${s}${CSI}0m";
+}
+
+String colorBackgroundBlack(String s) {
+  // "CSI n m": Select Graphic Rendition.
+  // m = 0 = Reset / Normal.
+  // In in range [40, 47]: Set background color.
+  // m = 40 = black.
+  // In total => start black; print string; reset colors.
+  return "${CSI}40m${s}${CSI}0m";
+}
+
+String colorBackgroundRed(String s) {
+  // See above.
+  // m = 41 = red.
+  return "${CSI}41m${s}${CSI}0m";
+}
+
+String colorBackgroundGreen(String s) {
+  // See above.
+  // m = 42 = green.
+  return "${CSI}42m${s}${CSI}0m";
+}
+
+String colorBackgroundYellow(String s) {
+  // See above.
+  // m = 43 = yellow.
+  return "${CSI}43m${s}${CSI}0m";
+}
+
+String colorBackgroundBlue(String s) {
+  // See above.
+  // m = 44 = blue.
+  return "${CSI}44m${s}${CSI}0m";
+}
+
+String colorBackgroundMagenta(String s) {
+  // See above.
+  // m = 45 = magenta.
+  return "${CSI}45m${s}${CSI}0m";
+}
+
+String colorBackgroundCyan(String s) {
+  // See above.
+  // m = 46 = cyan.
+  return "${CSI}46m${s}${CSI}0m";
+}
+
+String colorBackgroundWhite(String s) {
+  // See above.
+  // m = 47 = white.
+  return "${CSI}47m${s}${CSI}0m";
+}
+
+String boldString(String s) {
+  // "CSI n m": Select Graphic Rendition.
+  // m = 0 = Reset / Normal.
+  // m = 1 = bold.
+  return "${CSI}1m${s}${CSI}0m";
+}
+
+String italicString(String s) {
+  // "CSI n m": Select Graphic Rendition.
+  // m = 0 = Reset / Normal.
+  // m = 3 = italic.
+  return "${CSI}3m${s}${CSI}0m";
+}
+
+/// Note that this doesn't really seem to work.
+/// Wikipedia says "Style extensions exist for Kitty, VTE, mintty and iTerm2."
+String underlineString(String s) {
+  // "CSI n m": Select Graphic Rendition.
+  // m = 0 = Reset / Normal.
+  // m = 4 = italic.
+  return "${CSI}4m${s}${CSI}0m";
+}
+
+void drawBox(int row, int column, int length, int height) {
+  // Top line
+  setCursorPosition(row, column);
+  stdout.write("\u250c");
+  stdout.write("".padLeft(length - 2, "\u2500"));
+  stdout.write("\u2510");
+
+  // Left line
+  for (int i = 1; i < height - 1; i++) {
+    setCursorPosition(row + i, column);
+    stdout.write("\u2502");
+  }
+
+  // Right line
+  for (int i = 1; i < height - 1; i++) {
+    setCursorPosition(row + i, column + length - 1);
+    stdout.write("\u2502");
+  }
+
+  // Bottom line
+  setCursorPosition(row + height - 1, column);
+  stdout.write("\u2514");
+  stdout.write("".padLeft(length - 2, "\u2500"));
+  stdout.write("\u2518");
+}
diff --git a/pkg/front_end/tool/parser_direct_ast/viewer.dart b/pkg/front_end/tool/parser_direct_ast/viewer.dart
new file mode 100644
index 0000000..8dd3675
--- /dev/null
+++ b/pkg/front_end/tool/parser_direct_ast/viewer.dart
@@ -0,0 +1,223 @@
+// 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.
+
+import "dart:io";
+import 'dart:typed_data';
+import "package:front_end/src/fasta/util/direct_parser_ast.dart";
+import "package:front_end/src/fasta/util/direct_parser_ast_helper.dart";
+
+import "console_helper.dart";
+
+void main(List<String> args) {
+  Uri uri = Platform.script;
+  if (args.isNotEmpty) {
+    uri = Uri.base.resolve(args.first);
+  }
+  Uint8List bytes = new File.fromUri(uri).readAsBytesSync();
+  DirectParserASTContent ast = getAST(bytes);
+
+  Widget widget = new PairWidget(new AstWidget(ast), new StatusBar());
+  Application app = new Application(widget);
+  app.start();
+}
+
+class PairWidget extends Widget {
+  Widget first;
+  Widget second;
+
+  PairWidget(this.first, this.second);
+
+  @override
+  void print(Application app) {
+    first.print(app);
+    second.print(app);
+  }
+
+  @override
+  void input(Application app, List<int> data) {
+    if (data.length == 1 && String.fromCharCode(data[0]) == 'q') {
+      app.quit();
+      return;
+    }
+    first.input(app, data);
+    second.input(app, data);
+  }
+}
+
+class PrintedLine {
+  final String text;
+  final DirectParserASTContent ast;
+  final List<PrintedLine> parentShown;
+  final int selected;
+
+  PrintedLine.parent(this.parentShown, this.selected)
+      : text = "..",
+        ast = null;
+
+  PrintedLine.parentWithText(this.parentShown, this.text, this.selected)
+      : ast = null;
+
+  PrintedLine.ast(this.ast, this.text)
+      : parentShown = null,
+        selected = null;
+}
+
+class AstWidget extends Widget {
+  List<PrintedLine> shown;
+  int selected = 0;
+  int _latestSelected;
+  List<PrintedLine> _latestShown;
+
+  AstWidget(DirectParserASTContent ast) {
+    shown = [new PrintedLine.ast(ast, textualize(ast))];
+    _latestSelected = selected;
+    _latestShown = shown;
+  }
+
+  String textualize(DirectParserASTContent element,
+      {bool indent: false, bool withEndHeader: false}) {
+    String header;
+    switch (element.type) {
+      case DirectParserASTType.BEGIN:
+        header = "begin";
+        break;
+      case DirectParserASTType.END:
+        throw "Unexpected";
+      case DirectParserASTType.HANDLE:
+        header = "handle";
+        break;
+      case DirectParserASTType.DONE:
+        header = withEndHeader ? "end" : "";
+        break;
+    }
+    String extra = " ";
+    if (element.content != null) {
+      extra += element.content.first.arguments.toString();
+    }
+    return "${indent ? "  " : ""}"
+        "${header}${element.what} "
+        "${element.arguments.toString()}${extra}";
+  }
+
+  void clear(Application app) {
+    int realSelected = selected;
+    selected = -1;
+    for (int i = 0; i < app.lastKnownTerminalLines - 2; i++) {
+      printLineText(app, "", i);
+    }
+    selected = realSelected;
+  }
+
+  @override
+  void print(Application app, {bool totalRepaint: true}) {
+    if (!totalRepaint && _latestShown != shown) {
+      totalRepaint = true;
+    }
+    if (!totalRepaint && selected == _latestSelected) {
+      return;
+    }
+
+    if (totalRepaint) {
+      clear(app);
+      drawBox(
+          1, 1, app.lastKnownTerminalColumns, app.lastKnownTerminalLines - 1);
+      for (int i = 0; i < shown.length; i++) {
+        if (3 + i >= app.lastKnownTerminalLines) break;
+        printLine(app, i);
+      }
+    } else {
+      printLine(app, _latestSelected);
+      printLine(app, selected);
+    }
+    _latestShown = shown;
+    _latestSelected = selected;
+  }
+
+  void enter() {
+    // Enter selected line.
+    PrintedLine selectedElement = shown[selected];
+    if (selectedElement.parentShown != null) {
+      shown = selectedElement.parentShown;
+      selected = selectedElement.selected;
+    } else {
+      shown = [new PrintedLine.parent(shown, selected)];
+      List<DirectParserASTContent> children = selectedElement.ast.content;
+      if (children != null) {
+        for (int i = 0; i < children.length; i++) {
+          shown.add(new PrintedLine.ast(
+              children[i], textualize(children[i], indent: i > 0)));
+        }
+      }
+      shown.add(new PrintedLine.parentWithText(shown,
+          textualize(selectedElement.ast, withEndHeader: true), shown.length));
+      selected = 0;
+    }
+  }
+
+  void printLine(Application app, int lineNum) {
+    PrintedLine element = shown[lineNum];
+    String line = element.text;
+    printLineText(app, line, lineNum);
+  }
+
+  void printLineText(Application app, String line, int lineNum) {
+    if (line.length > app.lastKnownTerminalColumns - 2) {
+      line = line.substring(0, app.lastKnownTerminalColumns - 2);
+    } else {
+      line = line.padRight(app.lastKnownTerminalColumns - 2);
+    }
+    printAt(2 + lineNum, 2, ifSelected(line, selected == lineNum));
+  }
+
+  String ifSelected(String s, bool isSelected) {
+    if (isSelected) return colorBackgroundBlue(s);
+    return s;
+  }
+
+  @override
+  void input(Application app, List<int> data) {
+    if (data.length > 2 &&
+        data[0] == CSI.codeUnitAt(0) &&
+        data[1] == CSI.codeUnitAt(1)) {
+      // ANSI codes --- at least on my machine.
+      if (data[2] == 65 /* A */) {
+        // CSI _n_ A: Cursor Up (where n is optional defaulting to 1).
+        // Up arrow.
+        if (selected > 0) {
+          selected--;
+        }
+      } else if (data[2] == 66 /* B */) {
+        // CSI _n_ B: Cursor Down (where n is optional defaulting to 1).
+        // Down arrow.
+        if (selected < shown.length - 1) {
+          selected++;
+        }
+      }
+    } else if (data.length == 1 && data[0] == 10) {
+      // <Return>.
+      enter();
+    }
+    print(app, totalRepaint: false);
+  }
+}
+
+class StatusBar extends Widget {
+  List<int> latestInput;
+
+  @override
+  void print(Application app) {
+    String leftString = "> ${latestInput ?? ""}";
+    String rightString = "Press q or Ctrl-C to quit";
+    int padding =
+        app.lastKnownTerminalColumns - leftString.length - rightString.length;
+    printAt(app.lastKnownTerminalLines, 1,
+        colorBackgroundRed("$leftString${" " * padding}${rightString}"));
+  }
+
+  @override
+  void input(Application app, List<int> data) {
+    latestInput = data;
+    print(app);
+  }
+}
diff --git a/pkg/kernel/lib/target/targets.dart b/pkg/kernel/lib/target/targets.dart
index 1253b7d..1aa2f44 100644
--- a/pkg/kernel/lib/target/targets.dart
+++ b/pkg/kernel/lib/target/targets.dart
@@ -14,28 +14,27 @@
 class TargetFlags {
   final bool trackWidgetCreation;
   final bool forceLateLoweringForTesting;
+  final bool forceStaticFieldLoweringForTesting;
   final bool forceNoExplicitGetterCallsForTesting;
   final bool enableNullSafety;
 
   const TargetFlags(
       {this.trackWidgetCreation = false,
       this.forceLateLoweringForTesting = false,
+      this.forceStaticFieldLoweringForTesting = false,
       this.forceNoExplicitGetterCallsForTesting = false,
       this.enableNullSafety = false});
 
   bool operator ==(other) {
-    if (other is! TargetFlags) return false;
-    TargetFlags o = other;
-    if (trackWidgetCreation != o.trackWidgetCreation) return false;
-    if (forceLateLoweringForTesting != o.forceLateLoweringForTesting) {
-      return false;
-    }
-    if (forceNoExplicitGetterCallsForTesting !=
-        o.forceNoExplicitGetterCallsForTesting) {
-      return false;
-    }
-    if (enableNullSafety != o.enableNullSafety) return false;
-    return true;
+    if (identical(this, other)) return true;
+    return other is TargetFlags &&
+        trackWidgetCreation == other.trackWidgetCreation &&
+        forceLateLoweringForTesting == other.forceLateLoweringForTesting &&
+        forceStaticFieldLoweringForTesting ==
+            other.forceStaticFieldLoweringForTesting &&
+        forceNoExplicitGetterCallsForTesting ==
+            other.forceNoExplicitGetterCallsForTesting &&
+        enableNullSafety == other.enableNullSafety;
   }
 
   int get hashCode {
@@ -44,6 +43,8 @@
     hash = 0x3fffffff &
         (hash * 31 + (hash ^ forceLateLoweringForTesting.hashCode));
     hash = 0x3fffffff &
+        (hash * 31 + (hash ^ forceStaticFieldLoweringForTesting.hashCode));
+    hash = 0x3fffffff &
         (hash * 31 + (hash ^ forceNoExplicitGetterCallsForTesting.hashCode));
     hash = 0x3fffffff & (hash * 31 + (hash ^ enableNullSafety.hashCode));
     return hash;
@@ -281,6 +282,10 @@
   /// details.
   bool get supportsLateFields;
 
+  /// Whether static fields with initializers in nnbd libraries should be
+  /// encoded using the late field lowering.
+  bool get useStaticFieldLowering;
+
   /// Whether calls to getters and fields should be encoded as a .call
   /// invocation on a property get.
   ///
@@ -344,6 +349,9 @@
   bool get supportsLateFields => !flags.forceLateLoweringForTesting;
 
   @override
+  bool get useStaticFieldLowering => flags.forceStaticFieldLoweringForTesting;
+
+  @override
   bool get supportsExplicitGetterCalls =>
       !flags.forceNoExplicitGetterCallsForTesting;
 
diff --git a/pkg/vm/lib/target/vm.dart b/pkg/vm/lib/target/vm.dart
index 82af071..4920fce 100644
--- a/pkg/vm/lib/target/vm.dart
+++ b/pkg/vm/lib/target/vm.dart
@@ -54,6 +54,9 @@
   bool get supportsLateFields => !flags.forceLateLoweringForTesting;
 
   @override
+  bool get useStaticFieldLowering => flags.forceStaticFieldLoweringForTesting;
+
+  @override
   bool get supportsExplicitGetterCalls =>
       !flags.forceNoExplicitGetterCallsForTesting;
 
diff --git a/tools/VERSION b/tools/VERSION
index 08f1ccc..3d05ed3 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
 MAJOR 2
 MINOR 10
 PATCH 0
-PRERELEASE 81
+PRERELEASE 82
 PRERELEASE_PATCH 0
\ No newline at end of file