Version 2.10.0-18.0.dev

Merge commit '3b6aeb43fa722df34ae652ba4f2672a09a649225' into 'dev'
diff --git a/pkg/analysis_server/lib/src/computer/computer_highlights.dart b/pkg/analysis_server/lib/src/computer/computer_highlights.dart
index e69016d..c2b13cc 100644
--- a/pkg/analysis_server/lib/src/computer/computer_highlights.dart
+++ b/pkg/analysis_server/lib/src/computer/computer_highlights.dart
@@ -756,6 +756,13 @@
   }
 
   @override
+  void visitTopLevelVariableDeclaration(TopLevelVariableDeclaration node) {
+    computer._addRegion_token(
+        node.externalKeyword, HighlightRegionType.BUILT_IN);
+    super.visitTopLevelVariableDeclaration(node);
+  }
+
+  @override
   void visitTryStatement(TryStatement node) {
     computer._addRegion_token(node.tryKeyword, HighlightRegionType.KEYWORD);
     computer._addRegion_token(node.finallyKeyword, HighlightRegionType.KEYWORD);
diff --git a/pkg/analysis_server/lib/src/computer/computer_highlights2.dart b/pkg/analysis_server/lib/src/computer/computer_highlights2.dart
index 6b72a3e..6f59807 100644
--- a/pkg/analysis_server/lib/src/computer/computer_highlights2.dart
+++ b/pkg/analysis_server/lib/src/computer/computer_highlights2.dart
@@ -865,6 +865,13 @@
   }
 
   @override
+  void visitTopLevelVariableDeclaration(TopLevelVariableDeclaration node) {
+    computer._addRegion_token(
+        node.externalKeyword, HighlightRegionType.BUILT_IN);
+    super.visitTopLevelVariableDeclaration(node);
+  }
+
+  @override
   void visitTryStatement(TryStatement node) {
     computer._addRegion_token(node.tryKeyword, HighlightRegionType.KEYWORD);
     computer._addRegion_token(node.finallyKeyword, HighlightRegionType.KEYWORD);
diff --git a/pkg/analysis_server/lib/src/services/completion/dart/keyword_contributor.dart b/pkg/analysis_server/lib/src/services/completion/dart/keyword_contributor.dart
index e71a230..443caa9 100644
--- a/pkg/analysis_server/lib/src/services/completion/dart/keyword_contributor.dart
+++ b/pkg/analysis_server/lib/src/services/completion/dart/keyword_contributor.dart
@@ -677,6 +677,29 @@
   }
 
   @override
+  void visitTopLevelVariableDeclaration(TopLevelVariableDeclaration node) {
+    var variableDeclarationList = node.variables;
+    if (entity != variableDeclarationList) return;
+    var variables = variableDeclarationList.variables;
+    if (variables.isEmpty || request.offset > variables.first.beginToken.end) {
+      return;
+    }
+    if (node.externalKeyword == null) {
+      _addSuggestion(Keyword.EXTERNAL);
+    }
+    if (variableDeclarationList.lateKeyword == null &&
+        request.featureSet.isEnabled(Feature.non_nullable)) {
+      _addSuggestion(Keyword.LATE);
+    }
+    if (!variables.first.isConst) {
+      _addSuggestion(Keyword.CONST);
+    }
+    if (!variables.first.isFinal) {
+      _addSuggestion(Keyword.FINAL);
+    }
+  }
+
+  @override
   void visitTryStatement(TryStatement node) {
     var obj = entity;
     if (obj is CatchClause ||
diff --git a/pkg/analysis_server/tool/completion_metrics/code_metrics.dart b/pkg/analysis_server/tool/completion_metrics/code_metrics.dart
index ec01128..fec950b 100644
--- a/pkg/analysis_server/tool/completion_metrics/code_metrics.dart
+++ b/pkg/analysis_server/tool/completion_metrics/code_metrics.dart
@@ -1196,6 +1196,7 @@
     _visitChildren(node, {
       'documentationComment': node.documentationComment,
       'metadata': node.metadata,
+      'externalKeyword': node.externalKeyword,
       'variables': node.variables,
     });
     super.visitTopLevelVariableDeclaration(node);
diff --git a/pkg/analysis_server/tool/completion_metrics/visitors.dart b/pkg/analysis_server/tool/completion_metrics/visitors.dart
index eab5c66..b234a9b 100644
--- a/pkg/analysis_server/tool/completion_metrics/visitors.dart
+++ b/pkg/analysis_server/tool/completion_metrics/visitors.dart
@@ -666,6 +666,12 @@
   }
 
   @override
+  void visitTopLevelVariableDeclaration(TopLevelVariableDeclaration node) {
+    safelyRecordKeywordCompletion(node.externalKeyword);
+    return super.visitTopLevelVariableDeclaration(node);
+  }
+
+  @override
   void visitTryStatement(TryStatement node) {
     safelyRecordKeywordCompletion(node.tryKeyword);
     safelyRecordKeywordCompletion(node.finallyKeyword);
diff --git a/pkg/analyzer/lib/dart/ast/ast.dart b/pkg/analyzer/lib/dart/ast/ast.dart
index a566079..2e621bc 100644
--- a/pkg/analyzer/lib/dart/ast/ast.dart
+++ b/pkg/analyzer/lib/dart/ast/ast.dart
@@ -4959,11 +4959,21 @@
 /// The declaration of one or more top-level variables of the same type.
 ///
 ///    topLevelVariableDeclaration ::=
-///        ('final' | 'const') type? staticFinalDeclarationList ';'
-///      | variableDeclaration ';'
+///        ('final' | 'const') <type>? <staticFinalDeclarationList> ';'
+///      | 'late' 'final' <type>? <initializedIdentifierList> ';'
+///      | 'late'? <varOrType> <initializedIdentifierList> ';'
+///      | 'external' <finalVarOrType> <identifierList> ';'
+///
+/// (Note: there is no <topLevelVariableDeclaration> production in the grammar;
+/// this is a subset of the grammar production <topLevelDeclaration>, which
+/// encompasses everything that can appear inside a Dart file after part
+/// directives).
 ///
 /// Clients may not extend, implement or mix-in this class.
 abstract class TopLevelVariableDeclaration implements CompilationUnitMember {
+  /// The `external` keyword, or `null` if the keyword was not used.
+  Token get externalKeyword;
+
   /// Return the semicolon terminating the declaration.
   Token get semicolon;
 
diff --git a/pkg/analyzer/lib/dart/ast/ast_factory.dart b/pkg/analyzer/lib/dart/ast/ast_factory.dart
index e58279d..632484c 100644
--- a/pkg/analyzer/lib/dart/ast/ast_factory.dart
+++ b/pkg/analyzer/lib/dart/ast/ast_factory.dart
@@ -909,7 +909,8 @@
       Comment comment,
       List<Annotation> metadata,
       VariableDeclarationList variableList,
-      Token semicolon);
+      Token semicolon,
+      {Token externalKeyword});
 
   /// Returns a newly created try statement. The list of [catchClauses] can be
   /// `null` if there are no catch clauses. The [finallyKeyword] and
diff --git a/pkg/analyzer/lib/dart/element/element.dart b/pkg/analyzer/lib/dart/element/element.dart
index efce469..a2e9d64 100644
--- a/pkg/analyzer/lib/dart/element/element.dart
+++ b/pkg/analyzer/lib/dart/element/element.dart
@@ -1694,6 +1694,9 @@
 abstract class TopLevelVariableElement implements PropertyInducingElement {
   @override
   TopLevelVariableElement get declaration;
+
+  /// Return `true` if this field was explicitly marked as being external.
+  bool get isExternal;
 }
 
 /// An element that defines a type.
diff --git a/pkg/analyzer/lib/src/dart/ast/ast.dart b/pkg/analyzer/lib/src/dart/ast/ast.dart
index 7307fca..5033a79 100644
--- a/pkg/analyzer/lib/src/dart/ast/ast.dart
+++ b/pkg/analyzer/lib/src/dart/ast/ast.dart
@@ -9796,6 +9796,9 @@
   /// The top-level variables being declared.
   VariableDeclarationListImpl _variableList;
 
+  @override
+  Token externalKeyword;
+
   /// The semicolon terminating the declaration.
   @override
   Token semicolon;
@@ -9806,6 +9809,7 @@
   TopLevelVariableDeclarationImpl(
       CommentImpl comment,
       List<Annotation> metadata,
+      this.externalKeyword,
       VariableDeclarationListImpl variableList,
       this.semicolon)
       : super(comment, metadata) {
@@ -9823,7 +9827,8 @@
   Token get endToken => semicolon;
 
   @override
-  Token get firstTokenAfterCommentAndMetadata => _variableList.beginToken;
+  Token get firstTokenAfterCommentAndMetadata =>
+      externalKeyword ?? _variableList.beginToken;
 
   @override
   VariableDeclarationList get variables => _variableList;
diff --git a/pkg/analyzer/lib/src/dart/ast/ast_factory.dart b/pkg/analyzer/lib/src/dart/ast/ast_factory.dart
index aca1cb1..c51e550 100644
--- a/pkg/analyzer/lib/src/dart/ast/ast_factory.dart
+++ b/pkg/analyzer/lib/src/dart/ast/ast_factory.dart
@@ -1020,9 +1020,10 @@
           Comment comment,
           List<Annotation> metadata,
           VariableDeclarationList variableList,
-          Token semicolon) =>
+          Token semicolon,
+          {Token externalKeyword}) =>
       TopLevelVariableDeclarationImpl(
-          comment, metadata, variableList, semicolon);
+          comment, metadata, externalKeyword, variableList, semicolon);
 
   @override
   TryStatement tryStatement(
diff --git a/pkg/analyzer/lib/src/dart/ast/to_source_visitor.dart b/pkg/analyzer/lib/src/dart/ast/to_source_visitor.dart
index 7261b61..5f5e191 100644
--- a/pkg/analyzer/lib/src/dart/ast/to_source_visitor.dart
+++ b/pkg/analyzer/lib/src/dart/ast/to_source_visitor.dart
@@ -1075,6 +1075,7 @@
 
   @override
   void visitTopLevelVariableDeclaration(TopLevelVariableDeclaration node) {
+    safelyVisitTokenWithSuffix(node.externalKeyword, " ");
     safelyVisitNodeWithSuffix(node.variables, ";");
   }
 
diff --git a/pkg/analyzer/lib/src/dart/ast/utilities.dart b/pkg/analyzer/lib/src/dart/ast/utilities.dart
index e4f39b1..d407077 100644
--- a/pkg/analyzer/lib/src/dart/ast/utilities.dart
+++ b/pkg/analyzer/lib/src/dart/ast/utilities.dart
@@ -975,7 +975,8 @@
           cloneNode(node.documentationComment),
           cloneNodeList(node.metadata),
           cloneNode(node.variables),
-          cloneToken(node.semicolon));
+          cloneToken(node.semicolon),
+          externalKeyword: cloneToken(node.externalKeyword));
 
   @override
   TryStatement visitTryStatement(TryStatement node) => astFactory.tryStatement(
@@ -2193,6 +2194,7 @@
     return isEqualNodes(
             node.documentationComment, other.documentationComment) &&
         _isEqualNodeLists(node.metadata, other.metadata) &&
+        isEqualTokens(node.externalKeyword, other.externalKeyword) &&
         isEqualNodes(node.variables, other.variables) &&
         isEqualTokens(node.semicolon, other.semicolon);
   }
@@ -5266,6 +5268,7 @@
     return _and(
         _isEqualNodes(node.documentationComment, toNode.documentationComment),
         _isEqualNodeLists(node.metadata, toNode.metadata),
+        _isEqualTokens(node.externalKeyword, toNode.externalKeyword),
         _isEqualNodes(node.variables, toNode.variables),
         _isEqualTokens(node.semicolon, toNode.semicolon));
   }
diff --git a/pkg/analyzer/lib/src/dart/element/element.dart b/pkg/analyzer/lib/src/dart/element/element.dart
index 0c7c239..2456a92 100644
--- a/pkg/analyzer/lib/src/dart/element/element.dart
+++ b/pkg/analyzer/lib/src/dart/element/element.dart
@@ -7473,6 +7473,14 @@
   TopLevelVariableElement get declaration => this;
 
   @override
+  bool get isExternal {
+    if (linkedNode != null) {
+      return enclosingUnit.linkedContext.isExternal(linkedNode);
+    }
+    return hasModifier(Modifier.EXTERNAL);
+  }
+
+  @override
   bool get isStatic => true;
 
   @override
diff --git a/pkg/analyzer/lib/src/dart/element/member.dart b/pkg/analyzer/lib/src/dart/element/member.dart
index b62f341..c699cd0 100644
--- a/pkg/analyzer/lib/src/dart/element/member.dart
+++ b/pkg/analyzer/lib/src/dart/element/member.dart
@@ -955,6 +955,9 @@
   }
 
   @override
+  bool get isExternal => declaration.isExternal;
+
+  @override
   PropertyAccessorElement get setter {
     var baseSetter = declaration.setter;
     if (baseSetter == null) {
diff --git a/pkg/analyzer/lib/src/fasta/ast_builder.dart b/pkg/analyzer/lib/src/fasta/ast_builder.dart
index 1f2383c..8ababeb 100644
--- a/pkg/analyzer/lib/src/fasta/ast_builder.dart
+++ b/pkg/analyzer/lib/src/fasta/ast_builder.dart
@@ -2153,7 +2153,7 @@
     assert(optional(';', semicolon));
     debugEvent("TopLevelFields");
 
-    if (externalToken != null) {
+    if (externalToken != null && !enableNonNullable) {
       handleRecoverableError(
           messageExternalField, externalToken, externalToken);
     }
@@ -2169,7 +2169,8 @@
     List<Annotation> metadata = pop();
     Comment comment = _findComment(metadata, beginToken);
     declarations.add(ast.topLevelVariableDeclaration(
-        comment, metadata, variableList, semicolon));
+        comment, metadata, variableList, semicolon,
+        externalKeyword: externalToken));
   }
 
   @override
diff --git a/pkg/analyzer/lib/src/generated/testing/ast_test_factory.dart b/pkg/analyzer/lib/src/generated/testing/ast_test_factory.dart
index fc24212..81d60f6 100644
--- a/pkg/analyzer/lib/src/generated/testing/ast_test_factory.dart
+++ b/pkg/analyzer/lib/src/generated/testing/ast_test_factory.dart
@@ -1296,12 +1296,16 @@
           TokenFactory.tokenFromType(TokenType.SEMICOLON));
 
   static TopLevelVariableDeclaration topLevelVariableDeclaration2(
-          Keyword keyword, List<VariableDeclaration> variables) =>
+          Keyword keyword, List<VariableDeclaration> variables,
+          {bool isExternal = false}) =>
       astFactory.topLevelVariableDeclaration(
           null,
           null,
           variableDeclarationList(keyword, null, variables),
-          TokenFactory.tokenFromType(TokenType.SEMICOLON));
+          TokenFactory.tokenFromType(TokenType.SEMICOLON),
+          externalKeyword: isExternal
+              ? TokenFactory.tokenFromKeyword(Keyword.EXTERNAL)
+              : null);
 
   static TryStatement tryStatement(Block body, Block finallyClause) =>
       tryStatement3(body, <CatchClause>[], finallyClause);
diff --git a/pkg/analyzer/lib/src/summary2/ast_binary_reader.dart b/pkg/analyzer/lib/src/summary2/ast_binary_reader.dart
index d77bb19..f79f45d 100644
--- a/pkg/analyzer/lib/src/summary2/ast_binary_reader.dart
+++ b/pkg/analyzer/lib/src/summary2/ast_binary_reader.dart
@@ -1548,6 +1548,8 @@
         _readNodeListLazy(data.annotatedNode_metadata),
         _readNode(data.topLevelVariableDeclaration_variableList),
         _Tokens.SEMICOLON,
+        externalKeyword:
+            AstBinaryFlags.isExternal(data.flags) ? _Tokens.EXTERNAL : null,
       );
       LazyTopLevelVariableDeclaration.setData(node, data);
       return node;
diff --git a/pkg/analyzer/lib/src/summary2/ast_binary_writer.dart b/pkg/analyzer/lib/src/summary2/ast_binary_writer.dart
index e1401dd..7a71a14 100644
--- a/pkg/analyzer/lib/src/summary2/ast_binary_writer.dart
+++ b/pkg/analyzer/lib/src/summary2/ast_binary_writer.dart
@@ -1328,6 +1328,9 @@
         informativeId: getInformativeId(node),
         topLevelVariableDeclaration_variableList: node.variables?.accept(this),
       );
+      builder.flags = AstBinaryFlags.encode(
+        isExternal: node.externalKeyword != null,
+      );
       _storeCompilationUnitMember(builder, node);
 
       return builder;
diff --git a/pkg/analyzer/lib/src/summary2/ast_text_printer.dart b/pkg/analyzer/lib/src/summary2/ast_text_printer.dart
index ca115cc..995916b 100644
--- a/pkg/analyzer/lib/src/summary2/ast_text_printer.dart
+++ b/pkg/analyzer/lib/src/summary2/ast_text_printer.dart
@@ -906,6 +906,7 @@
   @override
   void visitTopLevelVariableDeclaration(TopLevelVariableDeclaration node) {
     _compilationUnitMember(node);
+    _token(node.externalKeyword);
     node.variables.accept(this);
     _token(node.semicolon);
   }
diff --git a/pkg/analyzer/lib/src/summary2/linked_unit_context.dart b/pkg/analyzer/lib/src/summary2/linked_unit_context.dart
index 740d4ff..527c5de 100644
--- a/pkg/analyzer/lib/src/summary2/linked_unit_context.dart
+++ b/pkg/analyzer/lib/src/summary2/linked_unit_context.dart
@@ -841,6 +841,8 @@
         var grandParent = parent.parent;
         if (grandParent is FieldDeclaration) {
           return grandParent.externalKeyword != null;
+        } else if (grandParent is TopLevelVariableDeclaration) {
+          return grandParent.externalKeyword != null;
         } else {
           throw UnimplementedError('${grandParent.runtimeType}');
         }
diff --git a/pkg/analyzer/test/generated/parser_fasta_test.dart b/pkg/analyzer/test/generated/parser_fasta_test.dart
index ff14226..7a398a2 100644
--- a/pkg/analyzer/test/generated/parser_fasta_test.dart
+++ b/pkg/analyzer/test/generated/parser_fasta_test.dart
@@ -4621,6 +4621,12 @@
     expectCommentText(declaration.documentationComment, '/// Doc');
   }
 
+  void test_parseTopLevelVariable_external() {
+    var unit = parseCompilationUnit('external int i;', featureSet: nonNullable);
+    var declaration = unit.declarations[0] as TopLevelVariableDeclaration;
+    expect(declaration.externalKeyword, isNotNull);
+  }
+
   void test_parseTopLevelVariable_final_late() {
     var unit = parseCompilationUnit('final late a;',
         featureSet: nonNullable,
@@ -4676,6 +4682,12 @@
     expect(declarationList.type, isNotNull);
     expect(declarationList.variables, hasLength(1));
   }
+
+  void test_parseTopLevelVariable_non_external() {
+    var unit = parseCompilationUnit('int i;', featureSet: nonNullable);
+    var declaration = unit.declarations[0] as TopLevelVariableDeclaration;
+    expect(declaration.externalKeyword, isNull);
+  }
 }
 
 @reflectiveTest
diff --git a/pkg/analyzer/test/src/dart/ast/to_source_visitor_test.dart b/pkg/analyzer/test/src/dart/ast/to_source_visitor_test.dart
index 6218912..4fe02d3 100644
--- a/pkg/analyzer/test/src/dart/ast/to_source_visitor_test.dart
+++ b/pkg/analyzer/test/src/dart/ast/to_source_visitor_test.dart
@@ -2616,6 +2616,14 @@
         AstTestFactory.throwExpression2(AstTestFactory.identifier3("e")));
   }
 
+  void test_visitTopLevelVariableDeclaration_external() {
+    _assertSource(
+        "external var a;",
+        AstTestFactory.topLevelVariableDeclaration2(
+            Keyword.VAR, [AstTestFactory.variableDeclaration("a")],
+            isExternal: true));
+  }
+
   void test_visitTopLevelVariableDeclaration_multiple() {
     _assertSource(
         "var a;",
diff --git a/pkg/analyzer/test/src/dart/ast/utilities_test.dart b/pkg/analyzer/test/src/dart/ast/utilities_test.dart
index f08bb30..311e888 100644
--- a/pkg/analyzer/test/src/dart/ast/utilities_test.dart
+++ b/pkg/analyzer/test/src/dart/ast/utilities_test.dart
@@ -132,6 +132,29 @@
   @override
   final TypeProvider typeProvider = TestTypeProvider();
 
+  void test_topLevelVariableDeclaration_external() {
+    TopLevelVariableDeclaration fromNode =
+        AstTestFactory.topLevelVariableDeclaration2(
+            Keyword.VAR, [AstTestFactory.variableDeclaration('x')],
+            isExternal: false);
+    TopLevelVariableElement element = TopLevelVariableElementImpl('x', -1);
+    fromNode.variables.variables[0].name.staticElement = element;
+    TopLevelVariableDeclaration toNode1 =
+        AstTestFactory.topLevelVariableDeclaration2(
+            Keyword.VAR, [AstTestFactory.variableDeclaration('x')],
+            isExternal: false);
+    ResolutionCopier.copyResolutionData(fromNode, toNode1);
+    // Nodes matched so resolution data should have been copied.
+    expect(toNode1.variables.variables[0].declaredElement, same(element));
+    TopLevelVariableDeclaration toNode2 =
+        AstTestFactory.topLevelVariableDeclaration2(
+            Keyword.VAR, [AstTestFactory.variableDeclaration('x')],
+            isExternal: true);
+    ResolutionCopier.copyResolutionData(fromNode, toNode1);
+    // Nodes didn't match so resolution data should not have been copied.
+    expect(toNode2.variables.variables[0].declaredElement, isNull);
+  }
+
   void test_visitAdjacentStrings() {
     AdjacentStrings createNode() => astFactory.adjacentStrings([
           astFactory.simpleStringLiteral(null, 'hello'),
diff --git a/pkg/analyzer/test/src/summary/element_text.dart b/pkg/analyzer/test/src/summary/element_text.dart
index cfdb167..6d6be56 100644
--- a/pkg/analyzer/test/src/summary/element_text.dart
+++ b/pkg/analyzer/test/src/summary/element_text.dart
@@ -971,6 +971,7 @@
     } else {
       writeDocumentation(e);
       writeMetadata(e, '', '\n');
+      writeIf(e is TopLevelVariableElementImpl && e.isExternal, 'external ');
     }
 
     writeIf(e.isLate, 'late ');
diff --git a/pkg/analyzer/test/src/summary/resolved_ast_printer.dart b/pkg/analyzer/test/src/summary/resolved_ast_printer.dart
index ae2c9b6..365aac0 100644
--- a/pkg/analyzer/test/src/summary/resolved_ast_printer.dart
+++ b/pkg/analyzer/test/src/summary/resolved_ast_printer.dart
@@ -1269,6 +1269,7 @@
     _writeln('TopLevelVariableDeclaration');
     _withIndent(() {
       var properties = _Properties();
+      properties.addToken('externalKeyword', node.externalKeyword);
       properties.addToken('semicolon', node.semicolon);
       properties.addNode('variables', node.variables);
       _addCompilationUnitMember(properties, node);
diff --git a/pkg/analyzer/test/src/summary/resynthesize_common.dart b/pkg/analyzer/test/src/summary/resynthesize_common.dart
index e3ee762..83bfa1f 100644
--- a/pkg/analyzer/test/src/summary/resynthesize_common.dart
+++ b/pkg/analyzer/test/src/summary/resynthesize_common.dart
@@ -10261,6 +10261,16 @@
 ''');
   }
 
+  test_top_level_variable_external() async {
+    featureSet = enableNnbd;
+    var library = await checkLibrary('''
+external int i;
+''');
+    checkElementText(library, '''
+external int i;
+''');
+  }
+
   test_type_arguments_explicit_dynamic_dynamic() async {
     var library = await checkLibrary('Map<dynamic, dynamic> m;');
     checkElementText(library, r'''
diff --git a/pkg/dds/CHANGELOG.md b/pkg/dds/CHANGELOG.md
index 77142a4..52b7282 100644
--- a/pkg/dds/CHANGELOG.md
+++ b/pkg/dds/CHANGELOG.md
@@ -1,3 +1,7 @@
+# 1.3.2-dev
+
+- Fix handling of requests that are outstanding when a client channel is closed.
+
 # 1.3.1
 
 - Fixed issue where an exception could be thrown during startup if the target
diff --git a/pkg/dds/lib/src/client.dart b/pkg/dds/lib/src/client.dart
index 3d796fc..79e4233 100644
--- a/pkg/dds/lib/src/client.dart
+++ b/pkg/dds/lib/src/client.dart
@@ -215,7 +215,11 @@
         return await Future.any(
           [
             // Forward the request to the service client or...
-            serviceClient.sendRequest(method, parameters.asMap),
+            serviceClient.sendRequest(method, parameters.asMap).catchError((_) {
+              throw _RpcErrorCodes.buildRpcException(
+                _RpcErrorCodes.kServiceDisappeared,
+              );
+            }, test: (error) => error is StateError),
             // if the service client closes, return an error response.
             serviceClient._clientPeer.done.then(
               (_) => throw _RpcErrorCodes.buildRpcException(
diff --git a/pkg/dds/pubspec.yaml b/pkg/dds/pubspec.yaml
index a4bccc8..3a8364c 100644
--- a/pkg/dds/pubspec.yaml
+++ b/pkg/dds/pubspec.yaml
@@ -3,7 +3,7 @@
   A library used to spawn the Dart Developer Service, used to communicate with
   a Dart VM Service instance.
 
-version: 1.3.1
+version: 1.3.2-dev
 
 homepage: https://github.com/dart-lang/sdk/tree/master/pkg/dds
 
diff --git a/pkg/front_end/lib/src/fasta/builder/procedure_builder.dart b/pkg/front_end/lib/src/fasta/builder/procedure_builder.dart
index 1e90de3..75c8ba1 100644
--- a/pkg/front_end/lib/src/fasta/builder/procedure_builder.dart
+++ b/pkg/front_end/lib/src/fasta/builder/procedure_builder.dart
@@ -565,13 +565,16 @@
     return null;
   }
 
+  List<ClassMember> _localMembers;
+  List<ClassMember> _localSetters;
+
   @override
-  List<ClassMember> get localMembers => isSetter
+  List<ClassMember> get localMembers => _localMembers ??= isSetter
       ? const <ClassMember>[]
       : <ClassMember>[new SourceProcedureMember(this)];
 
   @override
-  List<ClassMember> get localSetters => isSetter
+  List<ClassMember> get localSetters => _localSetters ??= isSetter
       ? <ClassMember>[new SourceProcedureMember(this)]
       : const <ClassMember>[];
 }
diff --git a/pkg/front_end/lib/src/fasta/dill/dill_member_builder.dart b/pkg/front_end/lib/src/fasta/dill/dill_member_builder.dart
index 93becfc..2426266 100644
--- a/pkg/front_end/lib/src/fasta/dill/dill_member_builder.dart
+++ b/pkg/front_end/lib/src/fasta/dill/dill_member_builder.dart
@@ -130,14 +130,17 @@
     throw new UnsupportedError('DillMemberBuilder.buildMembers');
   }
 
+  List<ClassMember> _localMembers;
+  List<ClassMember> _localSetters;
+
   @override
-  List<ClassMember> get localMembers => isSetter
+  List<ClassMember> get localMembers => _localMembers ??= isSetter
       ? const <ClassMember>[]
       : <ClassMember>[new DillClassMember(this, forSetter: false)];
 
   @override
   List<ClassMember> get localSetters =>
-      isSetter || member is Field && member.hasSetter
+      _localSetters ??= isSetter || member is Field && member.hasSetter
           ? <ClassMember>[new DillClassMember(this, forSetter: true)]
           : const <ClassMember>[];
 }
diff --git a/pkg/front_end/lib/src/fasta/kernel/class_hierarchy_builder.dart b/pkg/front_end/lib/src/fasta/kernel/class_hierarchy_builder.dart
index e6a04b2..76b47a0 100644
--- a/pkg/front_end/lib/src/fasta/kernel/class_hierarchy_builder.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/class_hierarchy_builder.dart
@@ -2056,6 +2056,30 @@
         checkMemberVsSetter(classSetter, interfaceMember);
       }
 
+      if (classMember != null &&
+          interfaceMember != null &&
+          classMember != interfaceMember) {
+        if (classMember.isAbstract == interfaceMember.isAbstract) {
+          // TODO(johnniwinther): Ensure that we don't have both class and
+          //  interface members that can give rise to a forwarding stub in
+          //  the current class. We might already have registered a delayed
+          //  member computation for the [classMember] that we're replacing
+          //  and therefore create two stubs for this member.
+          classMember = interfaceMember;
+        }
+      }
+      if (classSetter != null &&
+          interfaceSetter != null &&
+          classSetter != interfaceSetter) {
+        if (classSetter.isAbstract == interfaceSetter.isAbstract) {
+          // TODO(johnniwinther): Ensure that we don't have both class and
+          //  interface members that can give rise to a forwarding stub in
+          //  the current class. We might already have registered a delayed
+          //  member computation for the [classMember] that we're replacing
+          //  and therefore create two stubs for this member.
+          classSetter = interfaceSetter;
+        }
+      }
       if (classMember != null) {
         classMemberMap[name] = classMember;
       }
@@ -2767,12 +2791,14 @@
 /// implementation is the first element of [declarations].
 class InheritedImplementationInterfaceConflict extends DelayedMember {
   Member combinedMemberSignatureResult;
+  final ClassMember concreteMember;
 
   @override
   final bool isInheritableConflict;
 
   InheritedImplementationInterfaceConflict(
       ClassBuilder parent,
+      this.concreteMember,
       List<ClassMember> declarations,
       bool isProperty,
       bool isSetter,
@@ -2780,29 +2806,34 @@
       bool isAbstract,
       Name name,
       {this.isInheritableConflict = true})
-      : super(parent, declarations, isProperty, isSetter, modifyKernel,
+      : assert(!concreteMember.isAbstract),
+        super(parent, declarations, isProperty, isSetter, modifyKernel,
             isAbstract, name);
 
   @override
   bool isObjectMember(ClassBuilder objectClass) {
-    return declarations.first.isObjectMember(objectClass);
+    return concreteMember.isObjectMember(objectClass);
   }
 
   @override
   String toString() {
     return "InheritedImplementationInterfaceConflict("
-        "${classBuilder.fullNameForErrors}, "
+        "${classBuilder.fullNameForErrors}, $concreteMember, "
         "[${declarations.join(', ')}])";
   }
 
   @override
-  int get hashCode => super.hashCode + isInheritableConflict.hashCode * 11;
+  int get hashCode =>
+      super.hashCode +
+      concreteMember.hashCode * 11 +
+      isInheritableConflict.hashCode * 13;
 
   @override
   bool operator ==(Object other) {
     if (identical(this, other)) return true;
     return super == other &&
         other is InheritedImplementationInterfaceConflict &&
+        concreteMember == other.concreteMember &&
         isInheritableConflict == other.isInheritableConflict;
   }
 
@@ -2812,11 +2843,12 @@
       return combinedMemberSignatureResult;
     }
     if (!classBuilder.isAbstract) {
-      ClassMember concreteImplementation = declarations.first;
-      for (int i = 1; i < declarations.length; i++) {
-        new DelayedOverrideCheck(
-                classBuilder, concreteImplementation, declarations[i])
-            .check(hierarchy);
+      for (int i = 0; i < declarations.length; i++) {
+        if (concreteMember != declarations[i]) {
+          new DelayedOverrideCheck(
+                  classBuilder, concreteMember, declarations[i])
+              .check(hierarchy);
+        }
       }
     }
     return combinedMemberSignatureResult = new InterfaceConflict(classBuilder,
@@ -2828,14 +2860,8 @@
   DelayedMember withParent(ClassBuilder parent) {
     return parent == this.classBuilder
         ? this
-        : new InheritedImplementationInterfaceConflict(
-            parent,
-            declarations.toList(),
-            isProperty,
-            isSetter,
-            modifyKernel,
-            isAbstract,
-            name);
+        : new InheritedImplementationInterfaceConflict(parent, concreteMember,
+            [this], isProperty, isSetter, modifyKernel, isAbstract, name);
   }
 
   static ClassMember combined(
@@ -2864,6 +2890,7 @@
     } else {
       return new InheritedImplementationInterfaceConflict(
           parent,
+          concreteImplementation.concrete,
           declarations,
           concreteImplementation.isProperty,
           isSetter,
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 7bcc233..6a0a8a9 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
@@ -533,7 +533,7 @@
           handleIdentifier(Foo, fieldDeclaration)
           handleRecoverableError(MemberWithSameNameAsClass, Foo, Foo)
           handleNoFieldInitializer(;)
-        endClassFields(null, null, null, null, 1, int, ;)
+        endClassFields(null, null, null, null, null, null, 1, int, ;)
       endMember()
       beginMetadataStar(int)
       endMetadataStar(0)
@@ -548,7 +548,7 @@
         handleNoFieldInitializer(,)
         handleIdentifier(B, fieldDeclaration)
         handleNoFieldInitializer(;)
-      endClassFields(null, null, null, null, 3, int, ;)
+      endClassFields(null, null, null, null, null, null, 3, int, ;)
     endMember()
   endClassOrMixinBody(DeclarationKind.Class, 19, {, })
 endClassDeclaration(class, })
diff --git a/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_bad_name_general.crash_dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_bad_name_general.crash_dart.intertwined.expect
index a6f2bc7..f3d8756 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
@@ -1000,7 +1000,7 @@
                   reportRecoverableError(Foo, MemberWithSameNameAsClass)
                     listener: handleRecoverableError(MemberWithSameNameAsClass, Foo, Foo)
                   listener: handleNoFieldInitializer(;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, Foo)
@@ -1026,7 +1026,7 @@
                   listener: handleIdentifier(B, fieldDeclaration)
                 parseFieldInitializerOpt(B, B, null, null, null, null, DeclarationKind.Class, Foo)
                   listener: handleNoFieldInitializer(;)
-                listener: endClassFields(null, null, null, null, 3, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 3, int, ;)
               listener: endMember()
             notEofOrValue(}, })
             listener: endClassOrMixinBody(DeclarationKind.Class, 19, {, })
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 1f51f02..f33c1aa 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
@@ -75,6 +75,6 @@
     handleIdentifier(, topLevelVariableDeclaration)
     handleNoFieldInitializer()
     handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], , )
-  endTopLevelFields(null, null, null, null, 1, b, ;)
+  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 7bc6caa..8ae34cca 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
@@ -98,7 +98,7 @@
           reportRecoverableError(, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
             listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], , )
           rewriter()
-        listener: endTopLevelFields(null, null, null, null, 1, b, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, b, ;)
   listener: endTopLevelDeclaration()
   reportAllErrorTokens(()
   listener: endCompilationUnit(4, )
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 3b46efd..c905844 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
@@ -155,7 +155,7 @@
           beginFieldInitializer(=)
             handleLiteralInt(42)
           endFieldInitializer(=, ;)
-        endClassFields(null, null, null, null, 1, int, ;)
+        endClassFields(null, null, null, null, null, null, 1, int, ;)
       endMember()
       beginMetadataStar(int)
       endMetadataStar(0)
@@ -167,7 +167,7 @@
         beginFieldInitializer(=)
           handleLiteralInt(42)
         endFieldInitializer(=, ;)
-      endClassFields(null, null, null, null, 1, int, ;)
+      endClassFields(null, null, null, null, null, null, 1, int, ;)
     endMember()
     beginMetadataStar(int)
     endMetadataStar(0)
@@ -180,7 +180,7 @@
       beginFieldInitializer(=)
         handleLiteralInt(42)
       endFieldInitializer(=, ;)
-    endClassFields(null, null, null, null, 1, int, ;)
+    endClassFields(null, null, null, null, null, null, 1, int, ;)
   endMember()
   beginMetadataStar(int)
   endMetadataStar(0)
@@ -192,7 +192,7 @@
     beginFieldInitializer(=)
       handleLiteralInt(42)
     endFieldInitializer(=, ;)
-  endClassFields(null, null, null, null, 1, int, ;)
+  endClassFields(null, null, null, null, null, null, 1, int, ;)
 endMember()
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -204,7 +204,7 @@
   beginFieldInitializer(=)
     handleLiteralInt(42)
   endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, 1, int, ;)
+endClassFields(null, null, null, null, null, null, 1, int, ;)
 endMember()
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -217,7 +217,7 @@
 beginFieldInitializer(=)
   handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, 1, int, ;)
+endClassFields(null, null, null, null, null, null, 1, int, ;)
 endMember()
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -230,7 +230,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, 1, int, ;)
+endClassFields(null, null, null, null, null, null, 1, int, ;)
 endMember()
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -243,7 +243,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, 1, int, ;)
+endClassFields(null, null, null, null, null, null, 1, int, ;)
 endMember()
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -256,7 +256,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, 1, int, ;)
+endClassFields(null, null, null, null, null, null, 1, int, ;)
 endMember()
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -269,7 +269,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, 1, int, ;)
+endClassFields(null, null, null, null, null, null, 1, int, ;)
 endMember()
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -282,7 +282,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, 1, int, ;)
+endClassFields(null, null, null, null, null, null, 1, int, ;)
 endMember()
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -294,7 +294,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, 1, int, ;)
+endClassFields(null, null, null, null, null, null, 1, int, ;)
 endMember()
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -307,7 +307,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, 1, int, ;)
+endClassFields(null, null, null, null, null, null, 1, int, ;)
 endMember()
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -319,7 +319,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, 1, int, ;)
+endClassFields(null, null, null, null, null, null, 1, int, ;)
 endMember()
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -332,7 +332,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, 1, int, ;)
+endClassFields(null, null, null, null, null, null, 1, int, ;)
 endMember()
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -344,7 +344,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, 1, int, ;)
+endClassFields(null, null, null, null, null, null, 1, int, ;)
 endMember()
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -357,7 +357,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, 1, int, ;)
+endClassFields(null, null, null, null, null, null, 1, int, ;)
 endMember()
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -370,7 +370,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, 1, int, ;)
+endClassFields(null, null, null, null, null, null, 1, int, ;)
 endMember()
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -382,7 +382,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, 1, int, ;)
+endClassFields(null, null, null, null, null, null, 1, int, ;)
 endMember()
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -395,7 +395,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, 1, int, ;)
+endClassFields(null, null, null, null, null, null, 1, int, ;)
 endMember()
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -407,7 +407,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, 1, int, ;)
+endClassFields(null, null, null, null, null, null, 1, int, ;)
 endMember()
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -419,7 +419,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, 1, int, ;)
+endClassFields(null, null, null, null, null, null, 1, int, ;)
 endMember()
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -431,7 +431,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, 1, int, ;)
+endClassFields(null, null, null, null, null, null, 1, int, ;)
 endMember()
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -444,7 +444,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, 1, int, ;)
+endClassFields(null, null, null, null, null, null, 1, int, ;)
 endMember()
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -457,7 +457,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, 1, int, ;)
+endClassFields(null, null, null, null, null, null, 1, int, ;)
 endMember()
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -470,7 +470,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, 1, int, ;)
+endClassFields(null, null, null, null, null, null, 1, int, ;)
 endMember()
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -483,7 +483,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, 1, int, ;)
+endClassFields(null, null, null, null, null, null, 1, int, ;)
 endMember()
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -495,7 +495,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, 1, int, ;)
+endClassFields(null, null, null, null, null, null, 1, int, ;)
 endMember()
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -507,7 +507,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, 1, int, ;)
+endClassFields(null, null, null, null, null, null, 1, int, ;)
 endMember()
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -519,7 +519,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, 1, int, ;)
+endClassFields(null, null, null, null, null, null, 1, int, ;)
 endMember()
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -532,7 +532,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, 1, int, ;)
+endClassFields(null, null, null, null, null, null, 1, int, ;)
 endMember()
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -544,7 +544,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, 1, int, ;)
+endClassFields(null, null, null, null, null, null, 1, int, ;)
 endMember()
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -556,7 +556,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, 1, int, ;)
+endClassFields(null, null, null, null, null, null, 1, int, ;)
 endMember()
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -569,7 +569,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, 1, int, ;)
+endClassFields(null, null, null, null, null, null, 1, int, ;)
 endMember()
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -581,7 +581,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, 1, int, ;)
+endClassFields(null, null, null, null, null, null, 1, int, ;)
 endMember()
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -593,7 +593,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, 1, int, ;)
+endClassFields(null, null, null, null, null, null, 1, int, ;)
 endMember()
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -606,7 +606,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, 1, int, ;)
+endClassFields(null, null, null, null, null, null, 1, int, ;)
 endMember()
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -618,7 +618,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, 1, int, ;)
+endClassFields(null, null, null, null, null, null, 1, int, ;)
 endMember()
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -630,7 +630,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, 1, int, ;)
+endClassFields(null, null, null, null, null, null, 1, int, ;)
 endMember()
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -642,7 +642,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, 1, int, ;)
+endClassFields(null, null, null, null, null, null, 1, int, ;)
 endMember()
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -654,7 +654,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, 1, int, ;)
+endClassFields(null, null, null, null, null, null, 1, int, ;)
 endMember()
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -667,7 +667,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, 1, int, ;)
+endClassFields(null, null, null, null, null, null, 1, int, ;)
 endMember()
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -680,7 +680,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, 1, int, ;)
+endClassFields(null, null, null, null, null, null, 1, int, ;)
 endMember()
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -692,7 +692,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, 1, int, ;)
+endClassFields(null, null, null, null, null, null, 1, int, ;)
 endMember()
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -704,7 +704,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, 1, int, ;)
+endClassFields(null, null, null, null, null, null, 1, int, ;)
 endMember()
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -716,7 +716,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, 1, int, ;)
+endClassFields(null, null, null, null, null, null, 1, int, ;)
 endMember()
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -728,7 +728,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, 1, int, ;)
+endClassFields(null, null, null, null, null, null, 1, int, ;)
 endMember()
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -740,7 +740,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, 1, int, ;)
+endClassFields(null, null, null, null, null, null, 1, int, ;)
 endMember()
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -752,7 +752,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, 1, int, ;)
+endClassFields(null, null, null, null, null, null, 1, int, ;)
 endMember()
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -764,7 +764,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, 1, int, ;)
+endClassFields(null, null, null, null, null, null, 1, int, ;)
 endMember()
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -777,7 +777,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, 1, int, ;)
+endClassFields(null, null, null, null, null, null, 1, int, ;)
 endMember()
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -790,7 +790,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, 1, int, ;)
+endClassFields(null, null, null, null, null, null, 1, int, ;)
 endMember()
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -802,7 +802,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, 1, int, ;)
+endClassFields(null, null, null, null, null, null, 1, int, ;)
 endMember()
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -814,7 +814,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, 1, int, ;)
+endClassFields(null, null, null, null, null, null, 1, int, ;)
 endMember()
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -826,7 +826,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, 1, int, ;)
+endClassFields(null, null, null, null, null, null, 1, int, ;)
 endMember()
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -838,7 +838,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, 1, int, ;)
+endClassFields(null, null, null, null, null, null, 1, int, ;)
 endMember()
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -851,7 +851,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, 1, int, ;)
+endClassFields(null, null, null, null, null, null, 1, int, ;)
 endMember()
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -864,7 +864,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, 1, int, ;)
+endClassFields(null, null, null, null, null, null, 1, int, ;)
 endMember()
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -876,7 +876,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, 1, int, ;)
+endClassFields(null, null, null, null, null, null, 1, int, ;)
 endMember()
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -889,7 +889,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, 1, int, ;)
+endClassFields(null, null, null, null, null, null, 1, int, ;)
 endMember()
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -902,7 +902,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, 1, int, ;)
+endClassFields(null, null, null, null, null, null, 1, int, ;)
 endMember()
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -915,7 +915,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, 1, int, ;)
+endClassFields(null, null, null, null, null, null, 1, int, ;)
 endMember()
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -928,7 +928,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, 1, int, ;)
+endClassFields(null, null, null, null, null, null, 1, int, ;)
 endMember()
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -940,7 +940,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, 1, int, ;)
+endClassFields(null, null, null, null, null, null, 1, int, ;)
 endMember()
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -953,7 +953,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, 1, int, ;)
+endClassFields(null, null, null, null, null, null, 1, int, ;)
 endMember()
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -966,7 +966,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, 1, int, ;)
+endClassFields(null, null, null, null, null, null, 1, int, ;)
 endMember()
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -979,7 +979,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, 1, int, ;)
+endClassFields(null, null, null, null, null, null, 1, int, ;)
 endMember()
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -992,7 +992,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, 1, int, ;)
+endClassFields(null, null, null, null, null, null, 1, int, ;)
 endMember()
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -1004,7 +1004,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, 1, int, ;)
+endClassFields(null, null, null, null, null, null, 1, int, ;)
 endMember()
 endClassOrMixinBody(DeclarationKind.Class, 69, {, })
 endClassDeclaration(class, })
diff --git a/pkg/front_end/parser_testcases/error_recovery/keyword_named_class_fields.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/keyword_named_class_fields.dart.intertwined.expect
index 71e5c0c..8235cd1 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
@@ -47,7 +47,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -70,7 +70,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -97,7 +97,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -120,7 +120,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -143,7 +143,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -170,7 +170,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -197,7 +197,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -224,7 +224,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -251,7 +251,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -278,7 +278,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -305,7 +305,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -328,7 +328,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -355,7 +355,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -378,7 +378,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -405,7 +405,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -428,7 +428,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -455,7 +455,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -482,7 +482,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -505,7 +505,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -532,7 +532,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -555,7 +555,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -578,7 +578,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -601,7 +601,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -628,7 +628,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -655,7 +655,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -682,7 +682,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -709,7 +709,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -732,7 +732,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -756,7 +756,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -779,7 +779,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -806,7 +806,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -829,7 +829,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -852,7 +852,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -879,7 +879,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -902,7 +902,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -925,7 +925,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -952,7 +952,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -975,7 +975,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -998,7 +998,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -1021,7 +1021,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -1044,7 +1044,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -1071,7 +1071,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -1098,7 +1098,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -1121,7 +1121,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -1144,7 +1144,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -1168,7 +1168,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -1191,7 +1191,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -1214,7 +1214,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -1237,7 +1237,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -1260,7 +1260,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -1287,7 +1287,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -1314,7 +1314,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -1338,7 +1338,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -1361,7 +1361,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -1384,7 +1384,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -1407,7 +1407,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -1434,7 +1434,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -1461,7 +1461,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -1484,7 +1484,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -1510,7 +1510,7 @@
                             parseLiteralInt(=)
                               listener: handleLiteralInt(42)
                     listener: endFieldInitializer(=, ;)
-                  listener: endClassFields(null, null, null, null, 1, int, ;)
+                  listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
                 listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -1537,7 +1537,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -1564,7 +1564,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -1591,7 +1591,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -1614,7 +1614,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -1641,7 +1641,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -1668,7 +1668,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -1695,7 +1695,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -1722,7 +1722,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -1745,7 +1745,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, })
             listener: endClassOrMixinBody(DeclarationKind.Class, 69, {, })
diff --git a/pkg/front_end/parser_testcases/error_recovery/keyword_named_class_methods.dart.expect b/pkg/front_end/parser_testcases/error_recovery/keyword_named_class_methods.dart.expect
index d64400c..c19c42d 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
@@ -4079,7 +4079,7 @@
           handleIdentifier(this, fieldDeclaration)
           handleNoFieldInitializer(()
           handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], this, this)
-        endClassFields(null, null, null, null, 1, int, ;)
+        endClassFields(null, null, null, null, null, null, 1, int, ;)
       endMember()
       beginMetadataStar(()
       endMetadataStar(0)
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 eccfc71..561f3c5 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
@@ -8875,7 +8875,7 @@
                     reportRecoverableError(this, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
                       listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], this, this)
                     rewriter()
-                  listener: endClassFields(null, null, null, null, 1, int, ;)
+                  listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
                 listener: endMember()
             notEofOrValue(}, ()
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
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 2d7d7f0..544e865 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
@@ -143,7 +143,7 @@
     beginFieldInitializer(=)
       handleLiteralInt(42)
     endFieldInitializer(=, ;)
-  endTopLevelFields(null, null, null, null, 1, int, ;)
+  endTopLevelFields(null, null, null, null, null, 1, int, ;)
 endTopLevelDeclaration(int)
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -155,7 +155,7 @@
   beginFieldInitializer(=)
     handleLiteralInt(42)
   endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelFields(null, null, null, null, null, 1, int, ;)
 endTopLevelDeclaration(int)
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -168,7 +168,7 @@
 beginFieldInitializer(=)
   handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelFields(null, null, null, null, null, 1, int, ;)
 endTopLevelDeclaration(int)
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -180,7 +180,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelFields(null, null, null, null, null, 1, int, ;)
 endTopLevelDeclaration(int)
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -192,7 +192,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelFields(null, null, null, null, null, 1, int, ;)
 endTopLevelDeclaration(int)
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -205,7 +205,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelFields(null, null, null, null, null, 1, int, ;)
 endTopLevelDeclaration(int)
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -218,7 +218,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelFields(null, null, null, null, null, 1, int, ;)
 endTopLevelDeclaration(int)
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -231,7 +231,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelFields(null, null, null, null, null, 1, int, ;)
 endTopLevelDeclaration(int)
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -244,7 +244,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelFields(null, null, null, null, null, 1, int, ;)
 endTopLevelDeclaration(int)
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -257,7 +257,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelFields(null, null, null, null, null, 1, int, ;)
 endTopLevelDeclaration(int)
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -270,7 +270,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelFields(null, null, null, null, null, 1, int, ;)
 endTopLevelDeclaration(int)
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -282,7 +282,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelFields(null, null, null, null, null, 1, int, ;)
 endTopLevelDeclaration(int)
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -295,7 +295,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelFields(null, null, null, null, null, 1, int, ;)
 endTopLevelDeclaration(int)
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -307,7 +307,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelFields(null, null, null, null, null, 1, int, ;)
 endTopLevelDeclaration(int)
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -320,7 +320,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelFields(null, null, null, null, null, 1, int, ;)
 endTopLevelDeclaration(int)
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -332,7 +332,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelFields(null, null, null, null, null, 1, int, ;)
 endTopLevelDeclaration(int)
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -345,7 +345,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelFields(null, null, null, null, null, 1, int, ;)
 endTopLevelDeclaration(int)
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -358,7 +358,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelFields(null, null, null, null, null, 1, int, ;)
 endTopLevelDeclaration(int)
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -370,7 +370,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelFields(null, null, null, null, null, 1, int, ;)
 endTopLevelDeclaration(int)
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -383,7 +383,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelFields(null, null, null, null, null, 1, int, ;)
 endTopLevelDeclaration(int)
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -395,7 +395,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelFields(null, null, null, null, null, 1, int, ;)
 endTopLevelDeclaration(int)
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -407,7 +407,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelFields(null, null, null, null, null, 1, int, ;)
 endTopLevelDeclaration(int)
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -419,7 +419,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelFields(null, null, null, null, null, 1, int, ;)
 endTopLevelDeclaration(int)
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -432,7 +432,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelFields(null, null, null, null, null, 1, int, ;)
 endTopLevelDeclaration(int)
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -445,7 +445,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelFields(null, null, null, null, null, 1, int, ;)
 endTopLevelDeclaration(int)
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -458,7 +458,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelFields(null, null, null, null, null, 1, int, ;)
 endTopLevelDeclaration(int)
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -471,7 +471,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelFields(null, null, null, null, null, 1, int, ;)
 endTopLevelDeclaration(int)
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -483,7 +483,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelFields(null, null, null, null, null, 1, int, ;)
 endTopLevelDeclaration(int)
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -495,7 +495,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelFields(null, null, null, null, null, 1, int, ;)
 endTopLevelDeclaration(int)
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -507,7 +507,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelFields(null, null, null, null, null, 1, int, ;)
 endTopLevelDeclaration(int)
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -520,7 +520,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelFields(null, null, null, null, null, 1, int, ;)
 endTopLevelDeclaration(int)
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -532,7 +532,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelFields(null, null, null, null, null, 1, int, ;)
 endTopLevelDeclaration(int)
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -544,7 +544,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelFields(null, null, null, null, null, 1, int, ;)
 endTopLevelDeclaration(int)
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -557,7 +557,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelFields(null, null, null, null, null, 1, int, ;)
 endTopLevelDeclaration(int)
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -569,7 +569,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelFields(null, null, null, null, null, 1, int, ;)
 endTopLevelDeclaration(int)
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -581,7 +581,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelFields(null, null, null, null, null, 1, int, ;)
 endTopLevelDeclaration(int)
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -594,7 +594,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelFields(null, null, null, null, null, 1, int, ;)
 endTopLevelDeclaration(int)
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -606,7 +606,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelFields(null, null, null, null, null, 1, int, ;)
 endTopLevelDeclaration(int)
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -618,7 +618,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelFields(null, null, null, null, null, 1, int, ;)
 endTopLevelDeclaration(int)
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -630,7 +630,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelFields(null, null, null, null, null, 1, int, ;)
 endTopLevelDeclaration(int)
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -642,7 +642,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelFields(null, null, null, null, null, 1, int, ;)
 endTopLevelDeclaration(int)
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -655,7 +655,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelFields(null, null, null, null, null, 1, int, ;)
 endTopLevelDeclaration(int)
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -668,7 +668,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelFields(null, null, null, null, null, 1, int, ;)
 endTopLevelDeclaration(int)
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -680,7 +680,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelFields(null, null, null, null, null, 1, int, ;)
 endTopLevelDeclaration(int)
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -692,7 +692,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelFields(null, null, null, null, null, 1, int, ;)
 endTopLevelDeclaration(int)
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -704,7 +704,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelFields(null, null, null, null, null, 1, int, ;)
 endTopLevelDeclaration(int)
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -716,7 +716,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelFields(null, null, null, null, null, 1, int, ;)
 endTopLevelDeclaration(int)
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -728,7 +728,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelFields(null, null, null, null, null, 1, int, ;)
 endTopLevelDeclaration(int)
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -740,7 +740,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelFields(null, null, null, null, null, 1, int, ;)
 endTopLevelDeclaration(int)
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -752,7 +752,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelFields(null, null, null, null, null, 1, int, ;)
 endTopLevelDeclaration(int)
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -765,7 +765,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelFields(null, null, null, null, null, 1, int, ;)
 endTopLevelDeclaration(int)
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -778,7 +778,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelFields(null, null, null, null, null, 1, int, ;)
 endTopLevelDeclaration(int)
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -790,7 +790,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelFields(null, null, null, null, null, 1, int, ;)
 endTopLevelDeclaration(int)
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -802,7 +802,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelFields(null, null, null, null, null, 1, int, ;)
 endTopLevelDeclaration(int)
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -814,7 +814,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelFields(null, null, null, null, null, 1, int, ;)
 endTopLevelDeclaration(int)
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -826,7 +826,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelFields(null, null, null, null, null, 1, int, ;)
 endTopLevelDeclaration(int)
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -839,7 +839,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelFields(null, null, null, null, null, 1, int, ;)
 endTopLevelDeclaration(int)
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -852,7 +852,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelFields(null, null, null, null, null, 1, int, ;)
 endTopLevelDeclaration(int)
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -864,7 +864,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelFields(null, null, null, null, null, 1, int, ;)
 endTopLevelDeclaration(int)
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -877,7 +877,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelFields(null, null, null, null, null, 1, int, ;)
 endTopLevelDeclaration(int)
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -890,7 +890,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelFields(null, null, null, null, null, 1, int, ;)
 endTopLevelDeclaration(int)
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -903,7 +903,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelFields(null, null, null, null, null, 1, int, ;)
 endTopLevelDeclaration(int)
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -916,7 +916,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelFields(null, null, null, null, null, 1, int, ;)
 endTopLevelDeclaration(int)
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -928,7 +928,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelFields(null, null, null, null, null, 1, int, ;)
 endTopLevelDeclaration(int)
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -941,7 +941,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelFields(null, null, null, null, null, 1, int, ;)
 endTopLevelDeclaration(int)
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -954,7 +954,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelFields(null, null, null, null, null, 1, int, ;)
 endTopLevelDeclaration(int)
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -967,7 +967,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelFields(null, null, null, null, null, 1, int, ;)
 endTopLevelDeclaration(int)
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -980,7 +980,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelFields(null, null, null, null, null, 1, int, ;)
 endTopLevelDeclaration(int)
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -992,6 +992,6 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, 1, int, ;)
+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 cf78306..0c129c8 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
@@ -23,7 +23,7 @@
                   parseLiteralInt(=)
                     listener: handleLiteralInt(42)
           listener: endFieldInitializer(=, ;)
-        listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, int, ;)
   listener: endTopLevelDeclaration(int)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -46,7 +46,7 @@
                   parseLiteralInt(=)
                     listener: handleLiteralInt(42)
           listener: endFieldInitializer(=, ;)
-        listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, int, ;)
   listener: endTopLevelDeclaration(int)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -73,7 +73,7 @@
                   parseLiteralInt(=)
                     listener: handleLiteralInt(42)
           listener: endFieldInitializer(=, ;)
-        listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, int, ;)
   listener: endTopLevelDeclaration(int)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -96,7 +96,7 @@
                   parseLiteralInt(=)
                     listener: handleLiteralInt(42)
           listener: endFieldInitializer(=, ;)
-        listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, int, ;)
   listener: endTopLevelDeclaration(int)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -119,7 +119,7 @@
                   parseLiteralInt(=)
                     listener: handleLiteralInt(42)
           listener: endFieldInitializer(=, ;)
-        listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, int, ;)
   listener: endTopLevelDeclaration(int)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -146,7 +146,7 @@
                   parseLiteralInt(=)
                     listener: handleLiteralInt(42)
           listener: endFieldInitializer(=, ;)
-        listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, int, ;)
   listener: endTopLevelDeclaration(int)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -173,7 +173,7 @@
                   parseLiteralInt(=)
                     listener: handleLiteralInt(42)
           listener: endFieldInitializer(=, ;)
-        listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, int, ;)
   listener: endTopLevelDeclaration(int)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -200,7 +200,7 @@
                   parseLiteralInt(=)
                     listener: handleLiteralInt(42)
           listener: endFieldInitializer(=, ;)
-        listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, int, ;)
   listener: endTopLevelDeclaration(int)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -227,7 +227,7 @@
                   parseLiteralInt(=)
                     listener: handleLiteralInt(42)
           listener: endFieldInitializer(=, ;)
-        listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, int, ;)
   listener: endTopLevelDeclaration(int)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -254,7 +254,7 @@
                   parseLiteralInt(=)
                     listener: handleLiteralInt(42)
           listener: endFieldInitializer(=, ;)
-        listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, int, ;)
   listener: endTopLevelDeclaration(int)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -281,7 +281,7 @@
                   parseLiteralInt(=)
                     listener: handleLiteralInt(42)
           listener: endFieldInitializer(=, ;)
-        listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, int, ;)
   listener: endTopLevelDeclaration(int)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -304,7 +304,7 @@
                   parseLiteralInt(=)
                     listener: handleLiteralInt(42)
           listener: endFieldInitializer(=, ;)
-        listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, int, ;)
   listener: endTopLevelDeclaration(int)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -331,7 +331,7 @@
                   parseLiteralInt(=)
                     listener: handleLiteralInt(42)
           listener: endFieldInitializer(=, ;)
-        listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, int, ;)
   listener: endTopLevelDeclaration(int)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -354,7 +354,7 @@
                   parseLiteralInt(=)
                     listener: handleLiteralInt(42)
           listener: endFieldInitializer(=, ;)
-        listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, int, ;)
   listener: endTopLevelDeclaration(int)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -381,7 +381,7 @@
                   parseLiteralInt(=)
                     listener: handleLiteralInt(42)
           listener: endFieldInitializer(=, ;)
-        listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, int, ;)
   listener: endTopLevelDeclaration(int)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -404,7 +404,7 @@
                   parseLiteralInt(=)
                     listener: handleLiteralInt(42)
           listener: endFieldInitializer(=, ;)
-        listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, int, ;)
   listener: endTopLevelDeclaration(int)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -431,7 +431,7 @@
                   parseLiteralInt(=)
                     listener: handleLiteralInt(42)
           listener: endFieldInitializer(=, ;)
-        listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, int, ;)
   listener: endTopLevelDeclaration(int)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -458,7 +458,7 @@
                   parseLiteralInt(=)
                     listener: handleLiteralInt(42)
           listener: endFieldInitializer(=, ;)
-        listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, int, ;)
   listener: endTopLevelDeclaration(int)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -481,7 +481,7 @@
                   parseLiteralInt(=)
                     listener: handleLiteralInt(42)
           listener: endFieldInitializer(=, ;)
-        listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, int, ;)
   listener: endTopLevelDeclaration(int)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -508,7 +508,7 @@
                   parseLiteralInt(=)
                     listener: handleLiteralInt(42)
           listener: endFieldInitializer(=, ;)
-        listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, int, ;)
   listener: endTopLevelDeclaration(int)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -531,7 +531,7 @@
                   parseLiteralInt(=)
                     listener: handleLiteralInt(42)
           listener: endFieldInitializer(=, ;)
-        listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, int, ;)
   listener: endTopLevelDeclaration(int)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -554,7 +554,7 @@
                   parseLiteralInt(=)
                     listener: handleLiteralInt(42)
           listener: endFieldInitializer(=, ;)
-        listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, int, ;)
   listener: endTopLevelDeclaration(int)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -577,7 +577,7 @@
                   parseLiteralInt(=)
                     listener: handleLiteralInt(42)
           listener: endFieldInitializer(=, ;)
-        listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, int, ;)
   listener: endTopLevelDeclaration(int)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -604,7 +604,7 @@
                   parseLiteralInt(=)
                     listener: handleLiteralInt(42)
           listener: endFieldInitializer(=, ;)
-        listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, int, ;)
   listener: endTopLevelDeclaration(int)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -631,7 +631,7 @@
                   parseLiteralInt(=)
                     listener: handleLiteralInt(42)
           listener: endFieldInitializer(=, ;)
-        listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, int, ;)
   listener: endTopLevelDeclaration(int)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -658,7 +658,7 @@
                   parseLiteralInt(=)
                     listener: handleLiteralInt(42)
           listener: endFieldInitializer(=, ;)
-        listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, int, ;)
   listener: endTopLevelDeclaration(int)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -685,7 +685,7 @@
                   parseLiteralInt(=)
                     listener: handleLiteralInt(42)
           listener: endFieldInitializer(=, ;)
-        listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, int, ;)
   listener: endTopLevelDeclaration(int)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -708,7 +708,7 @@
                   parseLiteralInt(=)
                     listener: handleLiteralInt(42)
           listener: endFieldInitializer(=, ;)
-        listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, int, ;)
   listener: endTopLevelDeclaration(int)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -731,7 +731,7 @@
                   parseLiteralInt(=)
                     listener: handleLiteralInt(42)
           listener: endFieldInitializer(=, ;)
-        listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, int, ;)
   listener: endTopLevelDeclaration(int)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -754,7 +754,7 @@
                   parseLiteralInt(=)
                     listener: handleLiteralInt(42)
           listener: endFieldInitializer(=, ;)
-        listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, int, ;)
   listener: endTopLevelDeclaration(int)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -781,7 +781,7 @@
                   parseLiteralInt(=)
                     listener: handleLiteralInt(42)
           listener: endFieldInitializer(=, ;)
-        listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, int, ;)
   listener: endTopLevelDeclaration(int)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -804,7 +804,7 @@
                   parseLiteralInt(=)
                     listener: handleLiteralInt(42)
           listener: endFieldInitializer(=, ;)
-        listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, int, ;)
   listener: endTopLevelDeclaration(int)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -827,7 +827,7 @@
                   parseLiteralInt(=)
                     listener: handleLiteralInt(42)
           listener: endFieldInitializer(=, ;)
-        listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, int, ;)
   listener: endTopLevelDeclaration(int)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -854,7 +854,7 @@
                   parseLiteralInt(=)
                     listener: handleLiteralInt(42)
           listener: endFieldInitializer(=, ;)
-        listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, int, ;)
   listener: endTopLevelDeclaration(int)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -877,7 +877,7 @@
                   parseLiteralInt(=)
                     listener: handleLiteralInt(42)
           listener: endFieldInitializer(=, ;)
-        listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, int, ;)
   listener: endTopLevelDeclaration(int)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -900,7 +900,7 @@
                   parseLiteralInt(=)
                     listener: handleLiteralInt(42)
           listener: endFieldInitializer(=, ;)
-        listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, int, ;)
   listener: endTopLevelDeclaration(int)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -927,7 +927,7 @@
                   parseLiteralInt(=)
                     listener: handleLiteralInt(42)
           listener: endFieldInitializer(=, ;)
-        listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, int, ;)
   listener: endTopLevelDeclaration(int)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -950,7 +950,7 @@
                   parseLiteralInt(=)
                     listener: handleLiteralInt(42)
           listener: endFieldInitializer(=, ;)
-        listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, int, ;)
   listener: endTopLevelDeclaration(int)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -973,7 +973,7 @@
                   parseLiteralInt(=)
                     listener: handleLiteralInt(42)
           listener: endFieldInitializer(=, ;)
-        listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, int, ;)
   listener: endTopLevelDeclaration(int)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -996,7 +996,7 @@
                   parseLiteralInt(=)
                     listener: handleLiteralInt(42)
           listener: endFieldInitializer(=, ;)
-        listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, int, ;)
   listener: endTopLevelDeclaration(int)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -1019,7 +1019,7 @@
                   parseLiteralInt(=)
                     listener: handleLiteralInt(42)
           listener: endFieldInitializer(=, ;)
-        listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, int, ;)
   listener: endTopLevelDeclaration(int)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -1046,7 +1046,7 @@
                   parseLiteralInt(=)
                     listener: handleLiteralInt(42)
           listener: endFieldInitializer(=, ;)
-        listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, int, ;)
   listener: endTopLevelDeclaration(int)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -1073,7 +1073,7 @@
                   parseLiteralInt(=)
                     listener: handleLiteralInt(42)
           listener: endFieldInitializer(=, ;)
-        listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, int, ;)
   listener: endTopLevelDeclaration(int)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -1096,7 +1096,7 @@
                   parseLiteralInt(=)
                     listener: handleLiteralInt(42)
           listener: endFieldInitializer(=, ;)
-        listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, int, ;)
   listener: endTopLevelDeclaration(int)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -1119,7 +1119,7 @@
                   parseLiteralInt(=)
                     listener: handleLiteralInt(42)
           listener: endFieldInitializer(=, ;)
-        listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, int, ;)
   listener: endTopLevelDeclaration(int)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -1142,7 +1142,7 @@
                   parseLiteralInt(=)
                     listener: handleLiteralInt(42)
           listener: endFieldInitializer(=, ;)
-        listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, int, ;)
   listener: endTopLevelDeclaration(int)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -1165,7 +1165,7 @@
                   parseLiteralInt(=)
                     listener: handleLiteralInt(42)
           listener: endFieldInitializer(=, ;)
-        listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, int, ;)
   listener: endTopLevelDeclaration(int)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -1188,7 +1188,7 @@
                   parseLiteralInt(=)
                     listener: handleLiteralInt(42)
           listener: endFieldInitializer(=, ;)
-        listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, int, ;)
   listener: endTopLevelDeclaration(int)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -1211,7 +1211,7 @@
                   parseLiteralInt(=)
                     listener: handleLiteralInt(42)
           listener: endFieldInitializer(=, ;)
-        listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, int, ;)
   listener: endTopLevelDeclaration(int)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -1234,7 +1234,7 @@
                   parseLiteralInt(=)
                     listener: handleLiteralInt(42)
           listener: endFieldInitializer(=, ;)
-        listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, int, ;)
   listener: endTopLevelDeclaration(int)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -1261,7 +1261,7 @@
                   parseLiteralInt(=)
                     listener: handleLiteralInt(42)
           listener: endFieldInitializer(=, ;)
-        listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, int, ;)
   listener: endTopLevelDeclaration(int)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -1288,7 +1288,7 @@
                   parseLiteralInt(=)
                     listener: handleLiteralInt(42)
           listener: endFieldInitializer(=, ;)
-        listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, int, ;)
   listener: endTopLevelDeclaration(int)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -1311,7 +1311,7 @@
                   parseLiteralInt(=)
                     listener: handleLiteralInt(42)
           listener: endFieldInitializer(=, ;)
-        listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, int, ;)
   listener: endTopLevelDeclaration(int)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -1334,7 +1334,7 @@
                   parseLiteralInt(=)
                     listener: handleLiteralInt(42)
           listener: endFieldInitializer(=, ;)
-        listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, int, ;)
   listener: endTopLevelDeclaration(int)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -1357,7 +1357,7 @@
                   parseLiteralInt(=)
                     listener: handleLiteralInt(42)
           listener: endFieldInitializer(=, ;)
-        listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, int, ;)
   listener: endTopLevelDeclaration(int)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -1380,7 +1380,7 @@
                   parseLiteralInt(=)
                     listener: handleLiteralInt(42)
           listener: endFieldInitializer(=, ;)
-        listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, int, ;)
   listener: endTopLevelDeclaration(int)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -1407,7 +1407,7 @@
                   parseLiteralInt(=)
                     listener: handleLiteralInt(42)
           listener: endFieldInitializer(=, ;)
-        listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, int, ;)
   listener: endTopLevelDeclaration(int)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -1434,7 +1434,7 @@
                   parseLiteralInt(=)
                     listener: handleLiteralInt(42)
           listener: endFieldInitializer(=, ;)
-        listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, int, ;)
   listener: endTopLevelDeclaration(int)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -1457,7 +1457,7 @@
                   parseLiteralInt(=)
                     listener: handleLiteralInt(42)
           listener: endFieldInitializer(=, ;)
-        listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, int, ;)
   listener: endTopLevelDeclaration(int)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -1482,7 +1482,7 @@
                   parseLiteralInt(=)
                     listener: handleLiteralInt(42)
           listener: endFieldInitializer(=, ;)
-        listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, int, ;)
   listener: endTopLevelDeclaration(int)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -1509,7 +1509,7 @@
                   parseLiteralInt(=)
                     listener: handleLiteralInt(42)
           listener: endFieldInitializer(=, ;)
-        listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, int, ;)
   listener: endTopLevelDeclaration(int)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -1536,7 +1536,7 @@
                   parseLiteralInt(=)
                     listener: handleLiteralInt(42)
           listener: endFieldInitializer(=, ;)
-        listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, int, ;)
   listener: endTopLevelDeclaration(int)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -1563,7 +1563,7 @@
                   parseLiteralInt(=)
                     listener: handleLiteralInt(42)
           listener: endFieldInitializer(=, ;)
-        listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, int, ;)
   listener: endTopLevelDeclaration(int)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -1586,7 +1586,7 @@
                   parseLiteralInt(=)
                     listener: handleLiteralInt(42)
           listener: endFieldInitializer(=, ;)
-        listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, int, ;)
   listener: endTopLevelDeclaration(int)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -1613,7 +1613,7 @@
                   parseLiteralInt(=)
                     listener: handleLiteralInt(42)
           listener: endFieldInitializer(=, ;)
-        listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, int, ;)
   listener: endTopLevelDeclaration(int)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -1640,7 +1640,7 @@
                   parseLiteralInt(=)
                     listener: handleLiteralInt(42)
           listener: endFieldInitializer(=, ;)
-        listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, int, ;)
   listener: endTopLevelDeclaration(int)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -1667,7 +1667,7 @@
                   parseLiteralInt(=)
                     listener: handleLiteralInt(42)
           listener: endFieldInitializer(=, ;)
-        listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, int, ;)
   listener: endTopLevelDeclaration(int)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -1694,7 +1694,7 @@
                   parseLiteralInt(=)
                     listener: handleLiteralInt(42)
           listener: endFieldInitializer(=, ;)
-        listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, int, ;)
   listener: endTopLevelDeclaration(int)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -1717,7 +1717,7 @@
                   parseLiteralInt(=)
                     listener: handleLiteralInt(42)
           listener: endFieldInitializer(=, ;)
-        listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, int, ;)
   listener: endTopLevelDeclaration()
   reportAllErrorTokens(int)
   listener: endCompilationUnit(69, )
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 f04da6b..78a35b1 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
@@ -66,7 +66,7 @@
           beginFieldInitializer(=)
             handleLiteralInt(7)
           endFieldInitializer(=, ;)
-        endClassFields(null, null, null, null, 1, int, ;)
+        endClassFields(null, null, null, null, null, null, 1, int, ;)
       endMember()
       beginMetadataStar(int)
       endMetadataStar(0)
@@ -141,6 +141,6 @@
   beginFieldInitializer(=)
     handleLiteralInt(7)
   endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, 1, int, ;)
+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 f865ff8..ac132e0 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
@@ -95,7 +95,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(7)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, C)
@@ -254,7 +254,7 @@
                   parseLiteralInt(=)
                     listener: handleLiteralInt(7)
           listener: endFieldInitializer(=, ;)
-        listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, int, ;)
   listener: endTopLevelDeclaration()
   reportAllErrorTokens(class)
   listener: endCompilationUnit(3, )
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 5dd0a88..aba18fb 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
@@ -38,7 +38,7 @@
           beginFieldInitializer(=)
             handleLiteralInt(7)
           endFieldInitializer(=, ;)
-        endClassFields(null, null, null, null, 1, int, ;)
+        endClassFields(null, null, null, null, null, null, 1, int, ;)
       endMember()
       beginMetadataStar(int)
       endMetadataStar(0)
@@ -109,6 +109,6 @@
   beginFieldInitializer(=)
     handleLiteralInt(7)
   endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, 1, int, ;)
+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 06a6ce3..07e7ab5 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
@@ -87,7 +87,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(7)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, C)
@@ -230,7 +230,7 @@
                   parseLiteralInt(=)
                     listener: handleLiteralInt(7)
           listener: endFieldInitializer(=, ;)
-        listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, int, ;)
   listener: endTopLevelDeclaration()
   reportAllErrorTokens(class)
   listener: endCompilationUnit(3, )
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 e98991a..662eec3 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
@@ -44,7 +44,7 @@
     handleIdentifier(foo, topLevelVariableDeclaration)
     handleNoFieldInitializer(class)
     handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], foo, foo)
-  endTopLevelFields(null, null, null, null, 1, foo, ;)
+  endTopLevelFields(null, null, null, null, null, 1, foo, ;)
 endTopLevelDeclaration(class)
 beginMetadataStar(class)
 endMetadataStar(0)
@@ -66,7 +66,7 @@
         handleIdentifier(foo, fieldDeclaration)
         handleNoFieldInitializer(class)
         handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], foo, foo)
-      endClassFields(null, null, null, null, 1, foo, ;)
+      endClassFields(null, null, null, null, null, null, 1, foo, ;)
     endMember()
     beginMetadataStar(class)
     endMetadataStar(0)
diff --git a/pkg/front_end/parser_testcases/error_recovery/method_called_with_prime2.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/method_called_with_prime2.dart.intertwined.expect
index c7abc22..1b4821c 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
@@ -50,7 +50,7 @@
           reportRecoverableError(foo, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
             listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], foo, foo)
           rewriter()
-        listener: endTopLevelFields(null, null, null, null, 1, foo, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, foo, ;)
   listener: endTopLevelDeclaration(class)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -96,7 +96,7 @@
                   reportRecoverableError(foo, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
                     listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], foo, foo)
                   rewriter()
-                listener: endClassFields(null, null, null, null, 1, foo, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, foo, ;)
               listener: endMember()
             notEofOrValue(}, class)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, M1)
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 15abefb..5df1db7 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 4e3a324..3b6dbdb 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
@@ -40,7 +40,7 @@
           reportRecoverableError(o, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
             listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], o, o)
           rewriter()
-        listener: endTopLevelFields(null, null, null, null, 1, C, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, C, ;)
   listener: endTopLevelDeclaration(p)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -60,7 +60,7 @@
           reportRecoverableError(y, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
             listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], y, y)
           rewriter()
-        listener: endTopLevelFields(null, null, null, null, 1, p, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, p, ;)
   listener: endTopLevelDeclaration(r)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -80,7 +80,7 @@
           reportRecoverableError(i, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
             listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], i, i)
           rewriter()
-        listener: endTopLevelFields(null, null, null, null, 1, r, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, r, ;)
   listener: endTopLevelDeclaration(g)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -100,7 +100,7 @@
           reportRecoverableError(h, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
             listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], h, h)
           rewriter()
-        listener: endTopLevelFields(null, null, null, null, 1, g, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, g, ;)
   listener: endTopLevelDeclaration(t)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -212,7 +212,7 @@
           reportRecoverableError(h, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
             listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], h, h)
           rewriter()
-        listener: endTopLevelFields(null, null, null, null, 1, t, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, t, ;)
   listener: endTopLevelDeclaration(e)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -232,7 +232,7 @@
           reportRecoverableError(D, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
             listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], D, D)
           rewriter()
-        listener: endTopLevelFields(null, null, null, null, 1, e, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, e, ;)
   listener: endTopLevelDeclaration(a)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -252,7 +252,7 @@
           reportRecoverableError(r, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
             listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], r, r)
           rewriter()
-        listener: endTopLevelFields(null, null, null, null, 1, a, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, a, ;)
   listener: endTopLevelDeclaration(t)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -272,7 +272,7 @@
           reportRecoverableError(p, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
             listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], p, p)
           rewriter()
-        listener: endTopLevelFields(null, null, null, null, 1, t, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, t, ;)
   listener: endTopLevelDeclaration(r)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -292,7 +292,7 @@
           reportRecoverableError(o, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
             listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], o, o)
           rewriter()
-        listener: endTopLevelFields(null, null, null, null, 1, r, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, r, ;)
   listener: endTopLevelDeclaration(j)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -312,7 +312,7 @@
           reportRecoverableError(e, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
             listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], e, e)
           rewriter()
-        listener: endTopLevelFields(null, null, null, null, 1, j, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, j, ;)
   listener: endTopLevelDeclaration(c)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -332,7 +332,7 @@
           reportRecoverableError(t, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
             listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], t, t)
           rewriter()
-        listener: endTopLevelFields(null, null, null, null, 1, c, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, c, ;)
   listener: endTopLevelDeclaration(a)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -352,7 +352,7 @@
           reportRecoverableError(u, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
             listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], u, u)
           rewriter()
-        listener: endTopLevelFields(null, null, null, null, 1, a, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, a, ;)
   listener: endTopLevelDeclaration(t)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -372,7 +372,7 @@
           reportRecoverableError(h, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
             listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], h, h)
           rewriter()
-        listener: endTopLevelFields(null, null, null, null, 1, t, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, t, ;)
   listener: endTopLevelDeclaration(o)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -392,7 +392,7 @@
           reportRecoverableError(r, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
             listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], r, r)
           rewriter()
-        listener: endTopLevelFields(null, null, null, null, 1, o, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, o, ;)
   listener: endTopLevelDeclaration(s)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -414,7 +414,7 @@
           reportRecoverableError(l, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
             listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], l, l)
           rewriter()
-        listener: endTopLevelFields(null, null, null, null, 1, s, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, s, ;)
   listener: endTopLevelDeclaration(e)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -434,7 +434,7 @@
           reportRecoverableError(a, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
             listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], a, a)
           rewriter()
-        listener: endTopLevelFields(null, null, null, null, 1, e, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, e, ;)
   listener: endTopLevelDeclaration(s)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -454,7 +454,7 @@
           reportRecoverableError(e, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
             listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], e, e)
           rewriter()
-        listener: endTopLevelFields(null, null, null, null, 1, s, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, s, ;)
   listener: endTopLevelDeclaration(s)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -474,7 +474,7 @@
           reportRecoverableError(e, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
             listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], e, e)
           rewriter()
-        listener: endTopLevelFields(null, null, null, null, 1, s, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, s, ;)
   listener: endTopLevelDeclaration(e)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -494,7 +494,7 @@
           reportRecoverableError(t, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
             listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], t, t)
           rewriter()
-        listener: endTopLevelFields(null, null, null, null, 1, e, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, e, ;)
   listener: endTopLevelDeclaration(h)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -514,7 +514,7 @@
           reportRecoverableError(e, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
             listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], e, e)
           rewriter()
-        listener: endTopLevelFields(null, null, null, null, 1, h, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, h, ;)
   listener: endTopLevelDeclaration(A)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -534,7 +534,7 @@
           reportRecoverableError(U, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
             listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], U, U)
           rewriter()
-        listener: endTopLevelFields(null, null, null, null, 1, A, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, A, ;)
   listener: endTopLevelDeclaration(T)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -554,7 +554,7 @@
           reportRecoverableError(H, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
             listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], H, H)
           rewriter()
-        listener: endTopLevelFields(null, null, null, null, 1, T, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, T, ;)
   listener: endTopLevelDeclaration(O)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -574,7 +574,7 @@
           reportRecoverableError(R, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
             listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], R, R)
           rewriter()
-        listener: endTopLevelFields(null, null, null, null, 1, O, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, O, ;)
   listener: endTopLevelDeclaration(S)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -594,7 +594,7 @@
           reportRecoverableError(f, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
             listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], f, f)
           rewriter()
-        listener: endTopLevelFields(null, null, null, null, 1, S, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, S, ;)
   listener: endTopLevelDeclaration(i)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -614,7 +614,7 @@
           reportRecoverableError(l, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
             listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], l, l)
           rewriter()
-        listener: endTopLevelFields(null, null, null, null, 1, i, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, i, ;)
   listener: endTopLevelDeclaration(e)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -635,7 +635,7 @@
           reportRecoverableError(e, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
             listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], e, e)
           rewriter()
-        listener: endTopLevelFields(null, null, null, null, 1, e, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, e, ;)
   listener: endTopLevelDeclaration(/)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -675,7 +675,7 @@
           reportRecoverableError(o, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
             listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], o, o)
           rewriter()
-        listener: endTopLevelFields(null, null, null, null, 1, f, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, f, ;)
   listener: endTopLevelDeclaration(r)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -695,7 +695,7 @@
           reportRecoverableError(d, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
             listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], d, d)
           rewriter()
-        listener: endTopLevelFields(null, null, null, null, 1, r, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, r, ;)
   listener: endTopLevelDeclaration(e)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -715,7 +715,7 @@
           reportRecoverableError(t, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
             listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], t, t)
           rewriter()
-        listener: endTopLevelFields(null, null, null, null, 1, e, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, e, ;)
   listener: endTopLevelDeclaration(a)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -735,7 +735,7 @@
           reportRecoverableError(i, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
             listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], i, i)
           rewriter()
-        listener: endTopLevelFields(null, null, null, null, 1, a, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, a, ;)
   listener: endTopLevelDeclaration(l)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -801,7 +801,7 @@
           reportRecoverableError(l, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
             listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], l, l)
           rewriter()
-        listener: endTopLevelFields(null, null, null, null, 1, A, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, A, ;)
   listener: endTopLevelDeclaration(l)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -821,7 +821,7 @@
           reportRecoverableError(r, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
             listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], r, r)
           rewriter()
-        listener: endTopLevelFields(null, null, null, null, 1, l, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, l, ;)
   listener: endTopLevelDeclaration(i)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -841,7 +841,7 @@
           reportRecoverableError(g, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
             listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], g, g)
           rewriter()
-        listener: endTopLevelFields(null, null, null, null, 1, i, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, i, ;)
   listener: endTopLevelDeclaration(h)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -861,7 +861,7 @@
           reportRecoverableError(t, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
             listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], t, t)
           rewriter()
-        listener: endTopLevelFields(null, null, null, null, 1, h, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, h, ;)
   listener: endTopLevelDeclaration(s)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -881,7 +881,7 @@
           reportRecoverableError(r, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
             listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], r, r)
           rewriter()
-        listener: endTopLevelFields(null, null, null, null, 1, s, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, s, ;)
   listener: endTopLevelDeclaration(e)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -901,7 +901,7 @@
           reportRecoverableError(s, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
             listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], s, s)
           rewriter()
-        listener: endTopLevelFields(null, null, null, null, 1, e, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, e, ;)
   listener: endTopLevelDeclaration(e)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -921,7 +921,7 @@
           reportRecoverableError(r, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
             listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], r, r)
           rewriter()
-        listener: endTopLevelFields(null, null, null, null, 1, e, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, e, ;)
   listener: endTopLevelDeclaration(v)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -941,7 +941,7 @@
           reportRecoverableError(e, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
             listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], e, e)
           rewriter()
-        listener: endTopLevelFields(null, null, null, null, 1, v, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, v, ;)
   listener: endTopLevelDeclaration(d)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -963,7 +963,7 @@
           reportRecoverableError(s, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
             listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], s, s)
           rewriter()
-        listener: endTopLevelFields(null, null, null, null, 1, d, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, d, ;)
   listener: endTopLevelDeclaration(e)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -983,7 +983,7 @@
           reportRecoverableError(o, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
             listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], o, o)
           rewriter()
-        listener: endTopLevelFields(null, null, null, null, 1, e, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, e, ;)
   listener: endTopLevelDeclaration(f)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -1003,7 +1003,7 @@
           reportRecoverableError(t, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
             listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], t, t)
           rewriter()
-        listener: endTopLevelFields(null, null, null, null, 1, f, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, f, ;)
   listener: endTopLevelDeclaration(h)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -1023,7 +1023,7 @@
           reportRecoverableError(i, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
             listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], i, i)
           rewriter()
-        listener: endTopLevelFields(null, null, null, null, 1, h, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, h, ;)
   listener: endTopLevelDeclaration(s)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -1043,7 +1043,7 @@
           reportRecoverableError(s, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
             listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], s, s)
           rewriter()
-        listener: endTopLevelFields(null, null, null, null, 1, s, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, s, ;)
   listener: endTopLevelDeclaration(o)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -1063,7 +1063,7 @@
           reportRecoverableError(u, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
             listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], u, u)
           rewriter()
-        listener: endTopLevelFields(null, null, null, null, 1, o, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, o, ;)
   listener: endTopLevelDeclaration(r)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -1083,7 +1083,7 @@
           reportRecoverableError(c, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
             listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], c, c)
           rewriter()
-        listener: endTopLevelFields(null, null, null, null, 1, r, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, r, ;)
   listener: endTopLevelDeclaration(e)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -1103,7 +1103,7 @@
           reportRecoverableError(c, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
             listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], c, c)
           rewriter()
-        listener: endTopLevelFields(null, null, null, null, 1, e, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, e, ;)
   listener: endTopLevelDeclaration(o)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -1123,7 +1123,7 @@
           reportRecoverableError(d, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
             listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], d, d)
           rewriter()
-        listener: endTopLevelFields(null, null, null, null, 1, o, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, o, ;)
   listener: endTopLevelDeclaration(e)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -1143,7 +1143,7 @@
           reportRecoverableError(i, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
             listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], i, i)
           rewriter()
-        listener: endTopLevelFields(null, null, null, null, 1, e, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, e, ;)
   listener: endTopLevelDeclaration(s)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -1163,7 +1163,7 @@
           reportRecoverableError(g, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
             listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], g, g)
           rewriter()
-        listener: endTopLevelFields(null, null, null, null, 1, s, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, s, ;)
   listener: endTopLevelDeclaration(o)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -1183,7 +1183,7 @@
           reportRecoverableError(v, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
             listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], v, v)
           rewriter()
-        listener: endTopLevelFields(null, null, null, null, 1, o, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, o, ;)
   listener: endTopLevelDeclaration(e)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -1203,7 +1203,7 @@
           reportRecoverableError(r, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
             listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], r, r)
           rewriter()
-        listener: endTopLevelFields(null, null, null, null, 1, e, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, e, ;)
   listener: endTopLevelDeclaration(n)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -1223,7 +1223,7 @@
           reportRecoverableError(e, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
             listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], e, e)
           rewriter()
-        listener: endTopLevelFields(null, null, null, null, 1, n, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, n, ;)
   listener: endTopLevelDeclaration(d)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -1243,7 +1243,7 @@
           reportRecoverableError(b, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
             listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], b, b)
           rewriter()
-        listener: endTopLevelFields(null, null, null, null, 1, d, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, d, ;)
   listener: endTopLevelDeclaration(y)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -1263,7 +1263,7 @@
           reportRecoverableError(a, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
             listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], a, a)
           rewriter()
-        listener: endTopLevelFields(null, null, null, null, 1, y, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, y, ;)
   listener: endTopLevelDeclaration(/)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -1303,7 +1303,7 @@
           reportRecoverableError(S, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
             listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], S, S)
           rewriter()
-        listener: endTopLevelFields(null, null, null, null, 1, B, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, B, ;)
   listener: endTopLevelDeclaration(D)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -1324,7 +1324,7 @@
           reportRecoverableError(D, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
             listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], D, D)
           rewriter()
-        listener: endTopLevelFields(null, null, null, null, 1, D, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, D, ;)
   listener: endTopLevelDeclaration(-)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -1354,7 +1354,7 @@
           reportRecoverableError(t, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
             listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], t, t)
           rewriter()
-        listener: endTopLevelFields(null, null, null, null, 1, s, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, s, ;)
   listener: endTopLevelDeclaration(y)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -1374,7 +1374,7 @@
           reportRecoverableError(l, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
             listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], l, l)
           rewriter()
-        listener: endTopLevelFields(null, null, null, null, 1, y, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, y, ;)
   listener: endTopLevelDeclaration(e)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -1394,7 +1394,7 @@
           reportRecoverableError(l, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
             listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], l, l)
           rewriter()
-        listener: endTopLevelFields(null, null, null, null, 1, e, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, e, ;)
   listener: endTopLevelDeclaration(i)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -1414,7 +1414,7 @@
           reportRecoverableError(c, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
             listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], c, c)
           rewriter()
-        listener: endTopLevelFields(null, null, null, null, 1, i, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, i, ;)
   listener: endTopLevelDeclaration(e)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -1434,7 +1434,7 @@
           reportRecoverableError(n, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
             listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], n, n)
           rewriter()
-        listener: endTopLevelFields(null, null, null, null, 1, e, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, e, ;)
   listener: endTopLevelDeclaration(s)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -1454,7 +1454,7 @@
           reportRecoverableError(e, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
             listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], e, e)
           rewriter()
-        listener: endTopLevelFields(null, null, null, null, 1, s, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, s, ;)
   listener: endTopLevelDeclaration(t)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -1474,7 +1474,7 @@
           reportRecoverableError(h, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
             listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], h, h)
           rewriter()
-        listener: endTopLevelFields(null, null, null, null, 1, t, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, t, ;)
   listener: endTopLevelDeclaration(a)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -1494,7 +1494,7 @@
           reportRecoverableError(t, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
             listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], t, t)
           rewriter()
-        listener: endTopLevelFields(null, null, null, null, 1, a, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, a, ;)
   listener: endTopLevelDeclaration(c)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -1514,7 +1514,7 @@
           reportRecoverableError(a, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
             listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], a, a)
           rewriter()
-        listener: endTopLevelFields(null, null, null, null, 1, c, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, c, ;)
   listener: endTopLevelDeclaration(n)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -1534,7 +1534,7 @@
           reportRecoverableError(b, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
             listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], b, b)
           rewriter()
-        listener: endTopLevelFields(null, null, null, null, 1, n, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, n, ;)
   listener: endTopLevelDeclaration(e)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -1554,7 +1554,7 @@
           reportRecoverableError(f, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
             listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], f, f)
           rewriter()
-        listener: endTopLevelFields(null, null, null, null, 1, e, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, e, ;)
   listener: endTopLevelDeclaration(o)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -1574,7 +1574,7 @@
           reportRecoverableError(u, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
             listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], u, u)
           rewriter()
-        listener: endTopLevelFields(null, null, null, null, 1, o, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, o, ;)
   listener: endTopLevelDeclaration(n)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -1594,7 +1594,7 @@
           reportRecoverableError(d, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
             listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], d, d)
           rewriter()
-        listener: endTopLevelFields(null, null, null, null, 1, n, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, n, ;)
   listener: endTopLevelDeclaration(i)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -1614,7 +1614,7 @@
           reportRecoverableError(n, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
             listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], n, n)
           rewriter()
-        listener: endTopLevelFields(null, null, null, null, 1, i, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, i, ;)
   listener: endTopLevelDeclaration(t)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -1634,7 +1634,7 @@
           reportRecoverableError(h, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
             listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], h, h)
           rewriter()
-        listener: endTopLevelFields(null, null, null, null, 1, t, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, t, ;)
   listener: endTopLevelDeclaration(e)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -1654,7 +1654,7 @@
           reportRecoverableError(L, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
             listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], L, L)
           rewriter()
-        listener: endTopLevelFields(null, null, null, null, 1, e, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, e, ;)
   listener: endTopLevelDeclaration(I)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -1674,7 +1674,7 @@
           reportRecoverableError(C, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
             listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], C, C)
           rewriter()
-        listener: endTopLevelFields(null, null, null, null, 1, I, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, I, ;)
   listener: endTopLevelDeclaration(E)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -1694,7 +1694,7 @@
           reportRecoverableError(N, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
             listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], N, N)
           rewriter()
-        listener: endTopLevelFields(null, null, null, null, 1, E, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, E, ;)
   listener: endTopLevelDeclaration(S)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -1760,7 +1760,7 @@
           reportRecoverableError(d, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
             listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], d, d)
           rewriter()
-        listener: endTopLevelFields(null, null, null, null, 1, m, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, m, ;)
   listener: endTopLevelDeclaration(f)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -1780,7 +1780,7 @@
           reportRecoverableError(i, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
             listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], i, i)
           rewriter()
-        listener: endTopLevelFields(null, null, null, null, 1, f, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, f, ;)
   listener: endTopLevelDeclaration(l)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -1866,7 +1866,7 @@
           reportRecoverableError(h, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
             listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], h, h)
           rewriter()
-        listener: endTopLevelFields(null, null, null, null, 1, T, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, T, ;)
   listener: endTopLevelDeclaration(i)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -1886,7 +1886,7 @@
           reportRecoverableError(s, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
             listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], s, s)
           rewriter()
-        listener: endTopLevelFields(null, null, null, null, 1, i, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, i, ;)
   listener: endTopLevelDeclaration(f)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -1906,7 +1906,7 @@
           reportRecoverableError(i, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
             listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], i, i)
           rewriter()
-        listener: endTopLevelFields(null, null, null, null, 1, f, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, f, ;)
   listener: endTopLevelDeclaration(l)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -1926,7 +1926,7 @@
           reportRecoverableError(e, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
             listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], e, e)
           rewriter()
-        listener: endTopLevelFields(null, null, null, null, 1, l, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, l, ;)
   listener: endTopLevelDeclaration(i)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -1946,7 +1946,7 @@
           reportRecoverableError(s, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
             listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], s, s)
           rewriter()
-        listener: endTopLevelFields(null, null, null, null, 1, i, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, i, ;)
   listener: endTopLevelDeclaration(s)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -1966,7 +1966,7 @@
           reportRecoverableError(a, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
             listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], a, a)
           rewriter()
-        listener: endTopLevelFields(null, null, null, null, 1, s, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, s, ;)
   listener: endTopLevelDeclaration(v)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -1986,7 +1986,7 @@
           reportRecoverableError(e, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
             listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], e, e)
           rewriter()
-        listener: endTopLevelFields(null, null, null, null, 1, v, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, v, ;)
   listener: endTopLevelDeclaration(d)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -2006,7 +2006,7 @@
           reportRecoverableError(a, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
             listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], a, a)
           rewriter()
-        listener: endTopLevelFields(null, null, null, null, 1, d, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, d, ;)
   listener: endTopLevelDeclaration(s)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -2026,7 +2026,7 @@
           reportRecoverableError(U, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
             listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], U, U)
           rewriter()
-        listener: endTopLevelFields(null, null, null, null, 1, s, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, s, ;)
   listener: endTopLevelDeclaration(T)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -2046,7 +2046,7 @@
           reportRecoverableError(F, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
             listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], F, F)
           rewriter()
-        listener: endTopLevelFields(null, null, null, null, 1, T, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, T, ;)
   listener: endTopLevelDeclaration(-)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -2142,7 +2142,7 @@
           reportRecoverableError(a, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
             listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], a, a)
           rewriter()
-        listener: endTopLevelFields(null, null, null, null, 1, m, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, m, ;)
   listener: endTopLevelDeclaration(i)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
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 9b87e15..aa10717 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
@@ -63,7 +63,7 @@
     beginFieldInitializer(=)
       handleLiteralInt(42)
     endFieldInitializer(=, ;)
-  endTopLevelFields(null, null, null, null, 1, y, ;)
+  endTopLevelFields(null, null, null, null, null, 1, y, ;)
 endTopLevelDeclaration(x)
 beginMetadataStar(x)
 endMetadataStar(0)
@@ -95,7 +95,7 @@
   beginFieldInitializer(=)
     handleLiteralBool(true)
   endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, 1, z, ;)
+endTopLevelFields(null, null, null, null, null, 1, z, ;)
 endTopLevelDeclaration(void)
 beginMetadataStar(void)
 endMetadataStar(0)
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 5a9bafc..10197c8 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
@@ -69,7 +69,7 @@
                   parseLiteralInt(=)
                     listener: handleLiteralInt(42)
           listener: endFieldInitializer(=, ;)
-        listener: endTopLevelFields(null, null, null, null, 1, y, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, y, ;)
   listener: endTopLevelDeclaration(x)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -138,7 +138,7 @@
                   parseLiteralBool(=)
                     listener: handleLiteralBool(true)
           listener: endFieldInitializer(=, ;)
-        listener: endTopLevelFields(null, null, null, null, 1, z, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, z, ;)
   listener: endTopLevelDeclaration(void)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
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 3b9db40..12a9f7e 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
@@ -21,7 +21,7 @@
           beginFieldInitializer(=)
             handleLiteralInt(42)
           endFieldInitializer(=, ;)
-        endClassFields(null, null, null, null, 1, int, ;)
+        endClassFields(null, null, null, null, null, null, 1, int, ;)
       endMember()
       beginMetadataStar(int)
       endMetadataStar(0)
@@ -33,7 +33,7 @@
         beginFieldInitializer(=)
           handleLiteralInt(42)
         endFieldInitializer(=, ;)
-      endClassFields(null, null, null, null, 1, int, ;)
+      endClassFields(null, null, null, null, null, null, 1, int, ;)
     endMember()
     beginMetadataStar(int)
     endMetadataStar(0)
@@ -45,7 +45,7 @@
       beginFieldInitializer(=)
         handleLiteralInt(42)
       endFieldInitializer(=, ;)
-    endClassFields(null, null, null, null, 1, int, ;)
+    endClassFields(null, null, null, null, null, null, 1, int, ;)
   endMember()
   beginMetadataStar(int)
   endMetadataStar(0)
@@ -57,7 +57,7 @@
     beginFieldInitializer(=)
       handleLiteralInt(42)
     endFieldInitializer(=, ;)
-  endClassFields(null, null, null, null, 1, int, ;)
+  endClassFields(null, null, null, null, null, null, 1, int, ;)
 endMember()
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -69,7 +69,7 @@
   beginFieldInitializer(=)
     handleLiteralInt(42)
   endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, 1, int, ;)
+endClassFields(null, null, null, null, null, null, 1, int, ;)
 endMember()
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -81,7 +81,7 @@
 beginFieldInitializer(=)
   handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, 1, int, ;)
+endClassFields(null, null, null, null, null, null, 1, int, ;)
 endMember()
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -93,7 +93,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, 1, int, ;)
+endClassFields(null, null, null, null, null, null, 1, int, ;)
 endMember()
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -105,7 +105,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, 1, int, ;)
+endClassFields(null, null, null, null, null, null, 1, int, ;)
 endMember()
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -117,7 +117,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, 1, int, ;)
+endClassFields(null, null, null, null, null, null, 1, int, ;)
 endMember()
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -129,7 +129,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, 1, int, ;)
+endClassFields(null, null, null, null, null, null, 1, int, ;)
 endMember()
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -141,7 +141,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, 1, int, ;)
+endClassFields(null, null, null, null, null, null, 1, int, ;)
 endMember()
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -153,7 +153,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, 1, int, ;)
+endClassFields(null, null, null, null, null, null, 1, int, ;)
 endMember()
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -165,7 +165,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, 1, int, ;)
+endClassFields(null, null, null, null, null, null, 1, int, ;)
 endMember()
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -177,7 +177,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, 1, int, ;)
+endClassFields(null, null, null, null, null, null, 1, int, ;)
 endMember()
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -189,7 +189,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, 1, int, ;)
+endClassFields(null, null, null, null, null, null, 1, int, ;)
 endMember()
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -201,7 +201,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, 1, int, ;)
+endClassFields(null, null, null, null, null, null, 1, int, ;)
 endMember()
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -213,7 +213,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, 1, int, ;)
+endClassFields(null, null, null, null, null, null, 1, int, ;)
 endMember()
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -225,7 +225,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, 1, int, ;)
+endClassFields(null, null, null, null, null, null, 1, int, ;)
 endMember()
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -237,7 +237,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, 1, int, ;)
+endClassFields(null, null, null, null, null, null, 1, int, ;)
 endMember()
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -249,7 +249,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endClassFields(null, null, null, null, 1, int, ;)
+endClassFields(null, null, null, null, null, null, 1, int, ;)
 endMember()
 endClassOrMixinBody(DeclarationKind.Class, 20, {, })
 endClassDeclaration(class, })
diff --git a/pkg/front_end/parser_testcases/general/built_in_identifier_class_fields.dart.intertwined.expect b/pkg/front_end/parser_testcases/general/built_in_identifier_class_fields.dart.intertwined.expect
index 4f0fae4..5a37e7f 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
@@ -47,7 +47,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -70,7 +70,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -93,7 +93,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -116,7 +116,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -139,7 +139,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -162,7 +162,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -185,7 +185,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -208,7 +208,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -231,7 +231,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -255,7 +255,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -278,7 +278,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -301,7 +301,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -324,7 +324,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -347,7 +347,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -371,7 +371,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -394,7 +394,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -417,7 +417,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -441,7 +441,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -464,7 +464,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -487,7 +487,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, })
             listener: endClassOrMixinBody(DeclarationKind.Class, 20, {, })
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 77809be..5276e05 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
@@ -9,7 +9,7 @@
     beginFieldInitializer(=)
       handleLiteralInt(42)
     endFieldInitializer(=, ;)
-  endTopLevelFields(null, null, null, null, 1, int, ;)
+  endTopLevelFields(null, null, null, null, null, 1, int, ;)
 endTopLevelDeclaration(int)
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -21,7 +21,7 @@
   beginFieldInitializer(=)
     handleLiteralInt(42)
   endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelFields(null, null, null, null, null, 1, int, ;)
 endTopLevelDeclaration(int)
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -33,7 +33,7 @@
 beginFieldInitializer(=)
   handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelFields(null, null, null, null, null, 1, int, ;)
 endTopLevelDeclaration(int)
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -45,7 +45,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelFields(null, null, null, null, null, 1, int, ;)
 endTopLevelDeclaration(int)
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -57,7 +57,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelFields(null, null, null, null, null, 1, int, ;)
 endTopLevelDeclaration(int)
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -69,7 +69,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelFields(null, null, null, null, null, 1, int, ;)
 endTopLevelDeclaration(int)
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -81,7 +81,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelFields(null, null, null, null, null, 1, int, ;)
 endTopLevelDeclaration(int)
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -93,7 +93,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelFields(null, null, null, null, null, 1, int, ;)
 endTopLevelDeclaration(int)
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -105,7 +105,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelFields(null, null, null, null, null, 1, int, ;)
 endTopLevelDeclaration(int)
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -117,7 +117,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelFields(null, null, null, null, null, 1, int, ;)
 endTopLevelDeclaration(int)
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -129,7 +129,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelFields(null, null, null, null, null, 1, int, ;)
 endTopLevelDeclaration(int)
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -141,7 +141,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelFields(null, null, null, null, null, 1, int, ;)
 endTopLevelDeclaration(int)
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -153,7 +153,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelFields(null, null, null, null, null, 1, int, ;)
 endTopLevelDeclaration(int)
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -165,7 +165,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelFields(null, null, null, null, null, 1, int, ;)
 endTopLevelDeclaration(int)
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -177,7 +177,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelFields(null, null, null, null, null, 1, int, ;)
 endTopLevelDeclaration(int)
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -189,7 +189,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelFields(null, null, null, null, null, 1, int, ;)
 endTopLevelDeclaration(int)
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -201,7 +201,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelFields(null, null, null, null, null, 1, int, ;)
 endTopLevelDeclaration(int)
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -213,7 +213,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelFields(null, null, null, null, null, 1, int, ;)
 endTopLevelDeclaration(int)
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -225,7 +225,7 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, 1, int, ;)
+endTopLevelFields(null, null, null, null, null, 1, int, ;)
 endTopLevelDeclaration(int)
 beginMetadataStar(int)
 endMetadataStar(0)
@@ -237,6 +237,6 @@
 beginFieldInitializer(=)
 handleLiteralInt(42)
 endFieldInitializer(=, ;)
-endTopLevelFields(null, null, null, null, 1, int, ;)
+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 4ab6b44..bc882c3 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
@@ -23,7 +23,7 @@
                   parseLiteralInt(=)
                     listener: handleLiteralInt(42)
           listener: endFieldInitializer(=, ;)
-        listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, int, ;)
   listener: endTopLevelDeclaration(int)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -46,7 +46,7 @@
                   parseLiteralInt(=)
                     listener: handleLiteralInt(42)
           listener: endFieldInitializer(=, ;)
-        listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, int, ;)
   listener: endTopLevelDeclaration(int)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -69,7 +69,7 @@
                   parseLiteralInt(=)
                     listener: handleLiteralInt(42)
           listener: endFieldInitializer(=, ;)
-        listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, int, ;)
   listener: endTopLevelDeclaration(int)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -92,7 +92,7 @@
                   parseLiteralInt(=)
                     listener: handleLiteralInt(42)
           listener: endFieldInitializer(=, ;)
-        listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, int, ;)
   listener: endTopLevelDeclaration(int)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -115,7 +115,7 @@
                   parseLiteralInt(=)
                     listener: handleLiteralInt(42)
           listener: endFieldInitializer(=, ;)
-        listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, int, ;)
   listener: endTopLevelDeclaration(int)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -138,7 +138,7 @@
                   parseLiteralInt(=)
                     listener: handleLiteralInt(42)
           listener: endFieldInitializer(=, ;)
-        listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, int, ;)
   listener: endTopLevelDeclaration(int)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -161,7 +161,7 @@
                   parseLiteralInt(=)
                     listener: handleLiteralInt(42)
           listener: endFieldInitializer(=, ;)
-        listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, int, ;)
   listener: endTopLevelDeclaration(int)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -184,7 +184,7 @@
                   parseLiteralInt(=)
                     listener: handleLiteralInt(42)
           listener: endFieldInitializer(=, ;)
-        listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, int, ;)
   listener: endTopLevelDeclaration(int)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -207,7 +207,7 @@
                   parseLiteralInt(=)
                     listener: handleLiteralInt(42)
           listener: endFieldInitializer(=, ;)
-        listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, int, ;)
   listener: endTopLevelDeclaration(int)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -230,7 +230,7 @@
                   parseLiteralInt(=)
                     listener: handleLiteralInt(42)
           listener: endFieldInitializer(=, ;)
-        listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, int, ;)
   listener: endTopLevelDeclaration(int)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -253,7 +253,7 @@
                   parseLiteralInt(=)
                     listener: handleLiteralInt(42)
           listener: endFieldInitializer(=, ;)
-        listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, int, ;)
   listener: endTopLevelDeclaration(int)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -276,7 +276,7 @@
                   parseLiteralInt(=)
                     listener: handleLiteralInt(42)
           listener: endFieldInitializer(=, ;)
-        listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, int, ;)
   listener: endTopLevelDeclaration(int)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -299,7 +299,7 @@
                   parseLiteralInt(=)
                     listener: handleLiteralInt(42)
           listener: endFieldInitializer(=, ;)
-        listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, int, ;)
   listener: endTopLevelDeclaration(int)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -322,7 +322,7 @@
                   parseLiteralInt(=)
                     listener: handleLiteralInt(42)
           listener: endFieldInitializer(=, ;)
-        listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, int, ;)
   listener: endTopLevelDeclaration(int)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -345,7 +345,7 @@
                   parseLiteralInt(=)
                     listener: handleLiteralInt(42)
           listener: endFieldInitializer(=, ;)
-        listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, int, ;)
   listener: endTopLevelDeclaration(int)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -368,7 +368,7 @@
                   parseLiteralInt(=)
                     listener: handleLiteralInt(42)
           listener: endFieldInitializer(=, ;)
-        listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, int, ;)
   listener: endTopLevelDeclaration(int)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -391,7 +391,7 @@
                   parseLiteralInt(=)
                     listener: handleLiteralInt(42)
           listener: endFieldInitializer(=, ;)
-        listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, int, ;)
   listener: endTopLevelDeclaration(int)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -414,7 +414,7 @@
                   parseLiteralInt(=)
                     listener: handleLiteralInt(42)
           listener: endFieldInitializer(=, ;)
-        listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, int, ;)
   listener: endTopLevelDeclaration(int)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -437,7 +437,7 @@
                   parseLiteralInt(=)
                     listener: handleLiteralInt(42)
           listener: endFieldInitializer(=, ;)
-        listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, int, ;)
   listener: endTopLevelDeclaration(int)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -460,7 +460,7 @@
                   parseLiteralInt(=)
                     listener: handleLiteralInt(42)
           listener: endFieldInitializer(=, ;)
-        listener: endTopLevelFields(null, null, null, null, 1, int, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, int, ;)
   listener: endTopLevelDeclaration()
   reportAllErrorTokens(int)
   listener: endCompilationUnit(20, )
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 e210455..695f582 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
@@ -822,7 +822,7 @@
 endFunctionType(Function, null)
 handleIdentifier(f1, topLevelVariableDeclaration)
 handleNoFieldInitializer(;)
-endTopLevelFields(null, null, null, null, 1, void, ;)
+endTopLevelFields(null, null, null, null, null, 1, void, ;)
 endTopLevelDeclaration(void)
 beginMetadataStar(void)
 endMetadataStar(0)
@@ -845,7 +845,7 @@
 endFunctionType(Function, null)
 handleIdentifier(f2, topLevelVariableDeclaration)
 handleNoFieldInitializer(;)
-endTopLevelFields(null, null, null, null, 1, void, ;)
+endTopLevelFields(null, null, null, null, null, 1, void, ;)
 endTopLevelDeclaration(void)
 beginMetadataStar(void)
 endMetadataStar(0)
@@ -872,7 +872,7 @@
 endFunctionType(Function, null)
 handleIdentifier(f3, topLevelVariableDeclaration)
 handleNoFieldInitializer(;)
-endTopLevelFields(null, null, null, null, 1, void, ;)
+endTopLevelFields(null, null, null, null, null, 1, void, ;)
 endTopLevelDeclaration(void)
 beginMetadataStar(void)
 endMetadataStar(0)
@@ -903,7 +903,7 @@
 endFunctionType(Function, null)
 handleIdentifier(f4, topLevelVariableDeclaration)
 handleNoFieldInitializer(;)
-endTopLevelFields(null, null, null, null, 1, void, ;)
+endTopLevelFields(null, null, null, null, null, 1, void, ;)
 endTopLevelDeclaration(void)
 beginMetadataStar(void)
 endMetadataStar(0)
@@ -934,7 +934,7 @@
 endFunctionType(Function, null)
 handleIdentifier(f5, topLevelVariableDeclaration)
 handleNoFieldInitializer(;)
-endTopLevelFields(null, null, null, null, 1, void, ;)
+endTopLevelFields(null, null, null, null, null, 1, void, ;)
 endTopLevelDeclaration(void)
 beginMetadataStar(void)
 endMetadataStar(0)
@@ -965,7 +965,7 @@
 endFunctionType(Function, null)
 handleIdentifier(f6, topLevelVariableDeclaration)
 handleNoFieldInitializer(;)
-endTopLevelFields(null, null, null, null, 1, void, ;)
+endTopLevelFields(null, null, null, null, null, 1, void, ;)
 endTopLevelDeclaration(main)
 beginMetadataStar(main)
 endMetadataStar(0)
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 b6c6730..7cb72fd 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
@@ -1161,7 +1161,7 @@
           listener: handleIdentifier(f1, topLevelVariableDeclaration)
         parseFieldInitializerOpt(f1, f1, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(;)
-        listener: endTopLevelFields(null, null, null, null, 1, void, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, void, ;)
   listener: endTopLevelDeclaration(void)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -1194,7 +1194,7 @@
           listener: handleIdentifier(f2, topLevelVariableDeclaration)
         parseFieldInitializerOpt(f2, f2, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(;)
-        listener: endTopLevelFields(null, null, null, null, 1, void, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, void, ;)
   listener: endTopLevelDeclaration(void)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -1233,7 +1233,7 @@
           listener: handleIdentifier(f3, topLevelVariableDeclaration)
         parseFieldInitializerOpt(f3, f3, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(;)
-        listener: endTopLevelFields(null, null, null, null, 1, void, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, void, ;)
   listener: endTopLevelDeclaration(void)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -1276,7 +1276,7 @@
           listener: handleIdentifier(f4, topLevelVariableDeclaration)
         parseFieldInitializerOpt(f4, f4, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(;)
-        listener: endTopLevelFields(null, null, null, null, 1, void, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, void, ;)
   listener: endTopLevelDeclaration(void)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -1319,7 +1319,7 @@
           listener: handleIdentifier(f5, topLevelVariableDeclaration)
         parseFieldInitializerOpt(f5, f5, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(;)
-        listener: endTopLevelFields(null, null, null, null, 1, void, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, void, ;)
   listener: endTopLevelDeclaration(void)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -1362,7 +1362,7 @@
           listener: handleIdentifier(f6, topLevelVariableDeclaration)
         parseFieldInitializerOpt(f6, f6, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(;)
-        listener: endTopLevelFields(null, null, null, null, 1, void, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, void, ;)
   listener: endTopLevelDeclaration(main)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     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 fbe9696..bda3eda 100644
--- a/pkg/front_end/parser_testcases/general/issue_41121.dart.expect
+++ b/pkg/front_end/parser_testcases/general/issue_41121.dart.expect
@@ -61,7 +61,7 @@
           handleType(Configuration, null)
           handleIdentifier(_configuration, fieldDeclaration)
           handleNoFieldInitializer(;)
-        endClassFields(null, null, null, null, 1, Configuration, ;)
+        endClassFields(null, null, null, null, null, null, 1, Configuration, ;)
       endMember()
       beginMetadataStar(ConfigurationService)
       endMetadataStar(0)
diff --git a/pkg/front_end/parser_testcases/general/issue_41121.dart.intertwined.expect b/pkg/front_end/parser_testcases/general/issue_41121.dart.intertwined.expect
index f010597..3adc87e 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
@@ -40,7 +40,7 @@
                   listener: handleIdentifier(_configuration, fieldDeclaration)
                 parseFieldInitializerOpt(_configuration, _configuration, null, null, null, null, DeclarationKind.Class, ConfigurationService)
                   listener: handleNoFieldInitializer(;)
-                listener: endClassFields(null, null, null, null, 1, Configuration, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, Configuration, ;)
               listener: endMember()
             notEofOrValue(}, ConfigurationService)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, ConfigurationService)
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 65df0a7..20f0ebf 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_39858.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_39858.dart.expect
@@ -44,7 +44,7 @@
           handleNoType(late)
           handleIdentifier(x1, fieldDeclaration)
           handleNoFieldInitializer(;)
-        endClassFields(null, null, late, null, 1, late, ;)
+        endClassFields(null, null, null, null, late, null, 1, late, ;)
       endMember()
       beginMetadataStar(static)
       endMetadataStar(0)
@@ -53,7 +53,7 @@
         handleNoType(late)
         handleIdentifier(x2, fieldDeclaration)
         handleNoFieldInitializer(;)
-      endClassFields(static, null, late, null, 1, static, ;)
+      endClassFields(null, null, static, null, late, null, 1, static, ;)
     endMember()
     beginMetadataStar(covariant)
     endMetadataStar(0)
@@ -62,7 +62,7 @@
       handleNoType(late)
       handleIdentifier(x3, fieldDeclaration)
       handleNoFieldInitializer(;)
-    endClassFields(null, covariant, late, null, 1, covariant, ;)
+    endClassFields(null, null, null, covariant, late, null, 1, covariant, ;)
   endMember()
   beginMetadataStar(late)
   endMetadataStar(0)
@@ -73,7 +73,7 @@
     beginFieldInitializer(=)
       handleLiteralInt(0)
     endFieldInitializer(=, ;)
-  endClassFields(null, null, late, null, 1, late, ;)
+  endClassFields(null, null, null, null, late, null, 1, late, ;)
 endMember()
 beginMetadataStar(static)
 endMetadataStar(0)
@@ -84,7 +84,7 @@
   beginFieldInitializer(=)
     handleLiteralInt(0)
   endFieldInitializer(=, ;)
-endClassFields(static, null, late, null, 1, static, ;)
+endClassFields(null, null, static, null, late, null, 1, static, ;)
 endMember()
 beginMetadataStar(covariant)
 endMetadataStar(0)
@@ -95,7 +95,7 @@
 beginFieldInitializer(=)
   handleLiteralInt(0)
 endFieldInitializer(=, ;)
-endClassFields(null, covariant, late, null, 1, covariant, ;)
+endClassFields(null, null, null, covariant, late, null, 1, covariant, ;)
 endMember()
 endClassOrMixinBody(DeclarationKind.Class, 6, {, })
 endClassDeclaration(class, })
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_39858.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/issue_39858.dart.intertwined.expect
index 8162b63..32130fd 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
@@ -41,7 +41,7 @@
                   listener: handleIdentifier(x1, fieldDeclaration)
                 parseFieldInitializerOpt(x1, x1, late, null, null, null, DeclarationKind.Class, X)
                   listener: handleNoFieldInitializer(;)
-                listener: endClassFields(null, null, late, null, 1, late, ;)
+                listener: endClassFields(null, null, null, null, late, null, 1, late, ;)
               listener: endMember()
             notEofOrValue(}, static)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, X)
@@ -58,7 +58,7 @@
                   listener: handleIdentifier(x2, fieldDeclaration)
                 parseFieldInitializerOpt(x2, x2, late, null, null, null, DeclarationKind.Class, X)
                   listener: handleNoFieldInitializer(;)
-                listener: endClassFields(static, null, late, null, 1, static, ;)
+                listener: endClassFields(null, null, static, null, late, null, 1, static, ;)
               listener: endMember()
             notEofOrValue(}, covariant)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, X)
@@ -75,7 +75,7 @@
                   listener: handleIdentifier(x3, fieldDeclaration)
                 parseFieldInitializerOpt(x3, x3, late, null, null, null, DeclarationKind.Class, X)
                   listener: handleNoFieldInitializer(;)
-                listener: endClassFields(null, covariant, late, null, 1, covariant, ;)
+                listener: endClassFields(null, null, null, covariant, late, null, 1, covariant, ;)
               listener: endMember()
             notEofOrValue(}, late)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, X)
@@ -99,7 +99,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(0)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, late, null, 1, late, ;)
+                listener: endClassFields(null, null, null, null, late, null, 1, late, ;)
               listener: endMember()
             notEofOrValue(}, static)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, X)
@@ -123,7 +123,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(0)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(static, null, late, null, 1, static, ;)
+                listener: endClassFields(null, null, static, null, late, null, 1, static, ;)
               listener: endMember()
             notEofOrValue(}, covariant)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, X)
@@ -147,7 +147,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(0)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, covariant, late, null, 1, covariant, ;)
+                listener: endClassFields(null, null, null, covariant, late, null, 1, covariant, ;)
               listener: endMember()
             notEofOrValue(}, })
             listener: endClassOrMixinBody(DeclarationKind.Class, 6, {, })
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_39858_prime1.dart.expect b/pkg/front_end/parser_testcases/nnbd/issue_39858_prime1.dart.expect
index d41f4e7..af2a1c3 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
@@ -17,7 +17,7 @@
           handleNoType(var)
           handleIdentifier(x1, fieldDeclaration)
           handleNoFieldInitializer(;)
-        endClassFields(null, null, null, var, 1, var, ;)
+        endClassFields(null, null, null, null, null, var, 1, var, ;)
       endMember()
       beginMetadataStar(static)
       endMetadataStar(0)
@@ -25,7 +25,7 @@
         handleNoType(var)
         handleIdentifier(x2, fieldDeclaration)
         handleNoFieldInitializer(;)
-      endClassFields(static, null, null, var, 1, static, ;)
+      endClassFields(null, null, static, null, null, var, 1, static, ;)
     endMember()
     beginMetadataStar(covariant)
     endMetadataStar(0)
@@ -33,7 +33,7 @@
       handleNoType(var)
       handleIdentifier(x3, fieldDeclaration)
       handleNoFieldInitializer(;)
-    endClassFields(null, covariant, null, var, 1, covariant, ;)
+    endClassFields(null, null, null, covariant, null, var, 1, covariant, ;)
   endMember()
   beginMetadataStar(var)
   endMetadataStar(0)
@@ -43,7 +43,7 @@
     beginFieldInitializer(=)
       handleLiteralInt(0)
     endFieldInitializer(=, ;)
-  endClassFields(null, null, null, var, 1, var, ;)
+  endClassFields(null, null, null, null, null, var, 1, var, ;)
 endMember()
 beginMetadataStar(static)
 endMetadataStar(0)
@@ -53,7 +53,7 @@
   beginFieldInitializer(=)
     handleLiteralInt(0)
   endFieldInitializer(=, ;)
-endClassFields(static, null, null, var, 1, static, ;)
+endClassFields(null, null, static, null, null, var, 1, static, ;)
 endMember()
 beginMetadataStar(covariant)
 endMetadataStar(0)
@@ -63,7 +63,7 @@
 beginFieldInitializer(=)
   handleLiteralInt(0)
 endFieldInitializer(=, ;)
-endClassFields(null, covariant, null, var, 1, covariant, ;)
+endClassFields(null, null, null, covariant, null, var, 1, covariant, ;)
 endMember()
 endClassOrMixinBody(DeclarationKind.Class, 6, {, })
 endClassDeclaration(class, })
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_39858_prime1.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/issue_39858_prime1.dart.intertwined.expect
index c807ed8..11a7f1d 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
@@ -38,7 +38,7 @@
                   listener: handleIdentifier(x1, fieldDeclaration)
                 parseFieldInitializerOpt(x1, x1, null, null, null, var, DeclarationKind.Class, X)
                   listener: handleNoFieldInitializer(;)
-                listener: endClassFields(null, null, null, var, 1, var, ;)
+                listener: endClassFields(null, null, null, null, null, var, 1, var, ;)
               listener: endMember()
             notEofOrValue(}, static)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, X)
@@ -52,7 +52,7 @@
                   listener: handleIdentifier(x2, fieldDeclaration)
                 parseFieldInitializerOpt(x2, x2, null, null, null, var, DeclarationKind.Class, X)
                   listener: handleNoFieldInitializer(;)
-                listener: endClassFields(static, null, null, var, 1, static, ;)
+                listener: endClassFields(null, null, static, null, null, var, 1, static, ;)
               listener: endMember()
             notEofOrValue(}, covariant)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, X)
@@ -66,7 +66,7 @@
                   listener: handleIdentifier(x3, fieldDeclaration)
                 parseFieldInitializerOpt(x3, x3, null, null, null, var, DeclarationKind.Class, X)
                   listener: handleNoFieldInitializer(;)
-                listener: endClassFields(null, covariant, null, var, 1, covariant, ;)
+                listener: endClassFields(null, null, null, covariant, null, var, 1, covariant, ;)
               listener: endMember()
             notEofOrValue(}, var)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, X)
@@ -87,7 +87,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(0)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, var, 1, var, ;)
+                listener: endClassFields(null, null, null, null, null, var, 1, var, ;)
               listener: endMember()
             notEofOrValue(}, static)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, X)
@@ -108,7 +108,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(0)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(static, null, null, var, 1, static, ;)
+                listener: endClassFields(null, null, static, null, null, var, 1, static, ;)
               listener: endMember()
             notEofOrValue(}, covariant)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, X)
@@ -129,7 +129,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(0)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, covariant, null, var, 1, covariant, ;)
+                listener: endClassFields(null, null, null, covariant, null, var, 1, covariant, ;)
               listener: endMember()
             notEofOrValue(}, })
             listener: endClassOrMixinBody(DeclarationKind.Class, 6, {, })
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 a76d3f8..839d117 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
@@ -19,7 +19,7 @@
           handleType(int, null)
           handleIdentifier(x, fieldDeclaration)
           handleNoFieldInitializer(;)
-        endClassFields(null, covariant, late, final, 1, covariant, ;)
+        endClassFields(null, null, null, covariant, late, final, 1, covariant, ;)
       endMember()
     endClassOrMixinBody(DeclarationKind.Class, 1, {, })
   endClassDeclaration(class, })
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_40805_01.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/issue_40805_01.dart.intertwined.expect
index abe076a..c2748ff9 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
@@ -40,7 +40,7 @@
                   listener: handleIdentifier(x, fieldDeclaration)
                 parseFieldInitializerOpt(x, x, late, null, null, final, DeclarationKind.Class, C)
                   listener: handleNoFieldInitializer(;)
-                listener: endClassFields(null, covariant, late, final, 1, covariant, ;)
+                listener: endClassFields(null, null, null, covariant, late, final, 1, covariant, ;)
               listener: endMember()
             notEofOrValue(}, })
             listener: endClassOrMixinBody(DeclarationKind.Class, 1, {, })
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_40805_02.dart.expect b/pkg/front_end/parser_testcases/nnbd/issue_40805_02.dart.expect
index bf41922..15a8d14 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
@@ -28,7 +28,7 @@
           beginFieldInitializer(=)
             handleLiteralInt(42)
           endFieldInitializer(=, ;)
-        endClassFields(null, null, late, final, 1, covariant, ;)
+        endClassFields(null, null, null, null, late, final, 1, covariant, ;)
       endMember()
     endClassOrMixinBody(DeclarationKind.Class, 1, {, })
   endClassDeclaration(class, })
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_40805_02.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/issue_40805_02.dart.intertwined.expect
index 73d8eb0..f654dbd 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
@@ -49,7 +49,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, late, final, 1, covariant, ;)
+                listener: endClassFields(null, null, null, null, late, final, 1, covariant, ;)
               listener: endMember()
             notEofOrValue(}, })
             listener: endClassOrMixinBody(DeclarationKind.Class, 1, {, })
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_40805_03.dart.expect b/pkg/front_end/parser_testcases/nnbd/issue_40805_03.dart.expect
index 91cc4ca..5d46ab3 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
@@ -28,7 +28,7 @@
           beginFieldInitializer(=)
             handleLiteralInt(42)
           endFieldInitializer(=, ;)
-        endClassFields(null, null, null, final, 1, covariant, ;)
+        endClassFields(null, null, null, null, null, final, 1, covariant, ;)
       endMember()
     endClassOrMixinBody(DeclarationKind.Class, 1, {, })
   endClassDeclaration(class, })
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_40805_03.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/issue_40805_03.dart.intertwined.expect
index a73b460..97b6f75 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
@@ -49,7 +49,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, final, 1, covariant, ;)
+                listener: endClassFields(null, null, null, null, null, final, 1, covariant, ;)
               listener: endMember()
             notEofOrValue(}, })
             listener: endClassOrMixinBody(DeclarationKind.Class, 1, {, })
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_40834_01.dart.expect b/pkg/front_end/parser_testcases/nnbd/issue_40834_01.dart.expect
index ba78b91..8427048 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
@@ -19,7 +19,7 @@
           handleType(String, ?)
           handleIdentifier(x, fieldDeclaration)
           handleNoFieldInitializer(;)
-        endClassFields(null, null, null, null, 1, String, ;)
+        endClassFields(null, null, null, null, null, null, 1, String, ;)
       endMember()
       beginMetadataStar(int)
       endMetadataStar(0)
@@ -29,7 +29,7 @@
         handleType(int, null)
         handleIdentifier(y, fieldDeclaration)
         handleNoFieldInitializer(;)
-      endClassFields(null, null, null, null, 1, int, ;)
+      endClassFields(null, null, null, null, null, null, 1, int, ;)
     endMember()
     beginMetadataStar(Foo)
     endMetadataStar(0)
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_40834_01.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/issue_40834_01.dart.intertwined.expect
index 490e20d..1dc1fd0 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
@@ -40,7 +40,7 @@
                   listener: handleIdentifier(x, fieldDeclaration)
                 parseFieldInitializerOpt(x, x, null, null, null, null, DeclarationKind.Class, Foo)
                   listener: handleNoFieldInitializer(;)
-                listener: endClassFields(null, null, null, null, 1, String, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, String, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, Foo)
@@ -56,7 +56,7 @@
                   listener: handleIdentifier(y, fieldDeclaration)
                 parseFieldInitializerOpt(y, y, null, null, null, null, DeclarationKind.Class, Foo)
                   listener: handleNoFieldInitializer(;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, Foo)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, Foo)
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_40834_02.dart.expect b/pkg/front_end/parser_testcases/nnbd/issue_40834_02.dart.expect
index 188a65b..2302dd7 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
@@ -19,7 +19,7 @@
           handleType(String, ?)
           handleIdentifier(x, fieldDeclaration)
           handleNoFieldInitializer(;)
-        endClassFields(null, null, null, null, 1, String, ;)
+        endClassFields(null, null, null, null, null, null, 1, String, ;)
       endMember()
       beginMetadataStar(int)
       endMetadataStar(0)
@@ -29,7 +29,7 @@
         handleType(int, null)
         handleIdentifier(y, fieldDeclaration)
         handleNoFieldInitializer(;)
-      endClassFields(null, null, null, null, 1, int, ;)
+      endClassFields(null, null, null, null, null, null, 1, int, ;)
     endMember()
     beginMetadataStar(Foo)
     endMetadataStar(0)
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_40834_02.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/issue_40834_02.dart.intertwined.expect
index 3354446..8d144f8 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
@@ -40,7 +40,7 @@
                   listener: handleIdentifier(x, fieldDeclaration)
                 parseFieldInitializerOpt(x, x, null, null, null, null, DeclarationKind.Class, Foo)
                   listener: handleNoFieldInitializer(;)
-                listener: endClassFields(null, null, null, null, 1, String, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, String, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, Foo)
@@ -56,7 +56,7 @@
                   listener: handleIdentifier(y, fieldDeclaration)
                 parseFieldInitializerOpt(y, y, null, null, null, null, DeclarationKind.Class, Foo)
                   listener: handleNoFieldInitializer(;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, Foo)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, Foo)
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_40834_03.dart.expect b/pkg/front_end/parser_testcases/nnbd/issue_40834_03.dart.expect
index d54c20a..9aac61a 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
@@ -19,7 +19,7 @@
           handleType(String, ?)
           handleIdentifier(x, fieldDeclaration)
           handleNoFieldInitializer(;)
-        endClassFields(null, null, null, null, 1, String, ;)
+        endClassFields(null, null, null, null, null, null, 1, String, ;)
       endMember()
       beginMetadataStar(int)
       endMetadataStar(0)
@@ -29,7 +29,7 @@
         handleType(int, null)
         handleIdentifier(y, fieldDeclaration)
         handleNoFieldInitializer(;)
-      endClassFields(null, null, null, null, 1, int, ;)
+      endClassFields(null, null, null, null, null, null, 1, int, ;)
     endMember()
     beginMetadataStar(Foo)
     endMetadataStar(0)
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_40834_03.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/issue_40834_03.dart.intertwined.expect
index 830eaf7..c80682c 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
@@ -40,7 +40,7 @@
                   listener: handleIdentifier(x, fieldDeclaration)
                 parseFieldInitializerOpt(x, x, null, null, null, null, DeclarationKind.Class, Foo)
                   listener: handleNoFieldInitializer(;)
-                listener: endClassFields(null, null, null, null, 1, String, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, String, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, Foo)
@@ -56,7 +56,7 @@
                   listener: handleIdentifier(y, fieldDeclaration)
                 parseFieldInitializerOpt(y, y, null, null, null, null, DeclarationKind.Class, Foo)
                   listener: handleNoFieldInitializer(;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, Foo)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, Foo)
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 b56f22d..9f7ec29 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_41597.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_41597.dart.expect
@@ -7,7 +7,7 @@
     handleType(bool, null)
     handleIdentifier(x, topLevelVariableDeclaration)
     handleNoFieldInitializer(;)
-  endTopLevelFields(null, null, null, null, 1, bool, ;)
+  endTopLevelFields(null, null, null, null, null, 1, bool, ;)
 endTopLevelDeclaration(bool)
 beginMetadataStar(bool)
 endMetadataStar(0)
@@ -17,7 +17,7 @@
   handleType(bool, null)
   handleIdentifier(x, topLevelVariableDeclaration)
   handleNoFieldInitializer(;)
-endTopLevelFields(null, null, null, null, 1, bool, ;)
+endTopLevelFields(null, null, null, null, null, 1, bool, ;)
 endTopLevelDeclaration(errors)
 beginMetadataStar(errors)
 endMetadataStar(0)
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 4d70eea..c37975a 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
@@ -16,7 +16,7 @@
           listener: handleIdentifier(x, topLevelVariableDeclaration)
         parseFieldInitializerOpt(x, x, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(;)
-        listener: endTopLevelFields(null, null, null, null, 1, bool, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, bool, ;)
   listener: endTopLevelDeclaration(bool)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
@@ -32,7 +32,7 @@
           listener: handleIdentifier(x, topLevelVariableDeclaration)
         parseFieldInitializerOpt(x, x, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(;)
-        listener: endTopLevelFields(null, null, null, null, 1, bool, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, bool, ;)
   listener: endTopLevelDeclaration(errors)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
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 616be0b..533eec5 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_42621.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_42621.dart.expect
@@ -323,7 +323,7 @@
           handleType(List, ?)
           handleIdentifier(x, fieldDeclaration)
           handleNoFieldInitializer(;)
-        endClassFields(null, null, null, null, 1, List, ;)
+        endClassFields(null, null, null, null, null, null, 1, List, ;)
       endMember()
       beginMetadataStar(int)
       endMetadataStar(0)
@@ -333,7 +333,7 @@
         handleType(int, ?)
         handleIdentifier(y, fieldDeclaration)
         handleNoFieldInitializer(;)
-      endClassFields(null, null, null, null, 1, int, ;)
+      endClassFields(null, null, null, null, null, null, 1, int, ;)
     endMember()
   endClassOrMixinBody(DeclarationKind.Class, 2, {, })
 endClassDeclaration(class, })
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_42621.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/issue_42621.dart.intertwined.expect
index 536f1f7..15743a9 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
@@ -650,7 +650,7 @@
                   listener: handleIdentifier(x, fieldDeclaration)
                 parseFieldInitializerOpt(x, x, null, null, null, null, DeclarationKind.Class, Order)
                   listener: handleNoFieldInitializer(;)
-                listener: endClassFields(null, null, null, null, 1, List, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, List, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, Order)
@@ -666,7 +666,7 @@
                   listener: handleIdentifier(y, fieldDeclaration)
                 parseFieldInitializerOpt(y, y, null, null, null, null, DeclarationKind.Class, Order)
                   listener: handleNoFieldInitializer(;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, })
             listener: endClassOrMixinBody(DeclarationKind.Class, 2, {, })
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 75e34a4..1a7d7f8 100644
--- a/pkg/front_end/parser_testcases/nnbd/late_member.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/late_member.dart.expect
@@ -178,7 +178,7 @@
           beginFieldInitializer(=)
             handleLiteralInt(42)
           endFieldInitializer(=, ;)
-        endClassFields(null, null, null, null, 1, int, ;)
+        endClassFields(null, null, null, null, null, null, 1, int, ;)
       endMember()
     endClassOrMixinBody(DeclarationKind.Class, 1, {, })
   endClassDeclaration(class, })
diff --git a/pkg/front_end/parser_testcases/nnbd/late_member.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/late_member.dart.intertwined.expect
index 0824b96..f6800aa 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
@@ -447,7 +447,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, })
             listener: endClassOrMixinBody(DeclarationKind.Class, 1, {, })
diff --git a/pkg/front_end/parser_testcases/nnbd/late_modifier.dart.expect b/pkg/front_end/parser_testcases/nnbd/late_modifier.dart.expect
index 155bdd0..50fcc6a 100644
--- a/pkg/front_end/parser_testcases/nnbd/late_modifier.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/late_modifier.dart.expect
@@ -196,7 +196,7 @@
           beginFieldInitializer(=)
             handleLiteralInt(42)
           endFieldInitializer(=, ;)
-        endClassFields(null, null, null, null, 1, int, ;)
+        endClassFields(null, null, null, null, null, null, 1, int, ;)
       endMember()
     endClassOrMixinBody(DeclarationKind.Class, 1, {, })
   endClassDeclaration(class, })
diff --git a/pkg/front_end/parser_testcases/nnbd/late_modifier.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/late_modifier.dart.intertwined.expect
index 42ff91b..275889e 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
@@ -495,7 +495,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, })
             listener: endClassOrMixinBody(DeclarationKind.Class, 1, {, })
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 a0ae83e..aa7af99 100644
--- a/pkg/front_end/parser_testcases/nnbd/required_member.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/required_member.dart.expect
@@ -178,7 +178,7 @@
           beginFieldInitializer(=)
             handleLiteralInt(42)
           endFieldInitializer(=, ;)
-        endClassFields(null, null, null, null, 1, int, ;)
+        endClassFields(null, null, null, null, null, null, 1, int, ;)
       endMember()
     endClassOrMixinBody(DeclarationKind.Class, 1, {, })
   endClassDeclaration(class, })
diff --git a/pkg/front_end/parser_testcases/nnbd/required_member.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/required_member.dart.intertwined.expect
index d96a3c0..1cacfb4 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
@@ -447,7 +447,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, })
             listener: endClassOrMixinBody(DeclarationKind.Class, 1, {, })
diff --git a/pkg/front_end/parser_testcases/nnbd/required_modifier.dart.expect b/pkg/front_end/parser_testcases/nnbd/required_modifier.dart.expect
index 83b3b6b..ea95318 100644
--- a/pkg/front_end/parser_testcases/nnbd/required_modifier.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/required_modifier.dart.expect
@@ -189,7 +189,7 @@
           beginFieldInitializer(=)
             handleLiteralInt(42)
           endFieldInitializer(=, ;)
-        endClassFields(null, null, null, null, 1, int, ;)
+        endClassFields(null, null, null, null, null, null, 1, int, ;)
       endMember()
     endClassOrMixinBody(DeclarationKind.Class, 1, {, })
   endClassDeclaration(class, })
diff --git a/pkg/front_end/parser_testcases/nnbd/required_modifier.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/required_modifier.dart.intertwined.expect
index dce54ab..6d72b6d 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
@@ -463,7 +463,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, })
             listener: endClassOrMixinBody(DeclarationKind.Class, 1, {, })
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 302c411..00b2f6a 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
@@ -13,7 +13,7 @@
     handleNoFieldInitializer(,)
     handleIdentifier(e, topLevelVariableDeclaration)
     handleNoFieldInitializer(;)
-  endTopLevelFields(null, null, null, var, 5, var, ;)
+  endTopLevelFields(null, null, null, null, var, 5, var, ;)
 endTopLevelDeclaration(List)
 beginMetadataStar(List)
 endMetadataStar(0)
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 5f46730..8be1d99 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
@@ -30,7 +30,7 @@
           listener: handleIdentifier(e, topLevelVariableDeclaration)
         parseFieldInitializerOpt(e, e, null, null, null, var, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(;)
-        listener: endTopLevelFields(null, null, null, var, 5, var, ;)
+        listener: endTopLevelFields(null, null, null, null, var, 5, var, ;)
   listener: endTopLevelDeclaration(List)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
     parseMetadataStar(;)
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 fa5b46a..80a4e35 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
@@ -87,7 +87,7 @@
             endArguments(0, (, ))
             handleSend(late, ;)
           endFieldInitializer(=, ;)
-        endClassFields(null, null, null, null, 1, late, ;)
+        endClassFields(null, null, null, null, null, null, 1, late, ;)
       endMember()
       beginMetadataStar(required)
       endMetadataStar(0)
@@ -103,7 +103,7 @@
           endArguments(0, (, ))
           handleSend(required, ;)
         endFieldInitializer(=, ;)
-      endClassFields(null, null, null, null, 1, required, ;)
+      endClassFields(null, null, null, null, null, null, 1, required, ;)
     endMember()
   endClassOrMixinBody(DeclarationKind.Class, 2, {, })
 endClassDeclaration(class, })
diff --git a/pkg/front_end/parser_testcases/non-nnbd/issue_40288.dart.intertwined.expect b/pkg/front_end/parser_testcases/non-nnbd/issue_40288.dart.intertwined.expect
index 4d741e9..686b0f5 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
@@ -187,7 +187,7 @@
                                     listener: endArguments(0, (, ))
                               listener: handleSend(late, ;)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, 1, late, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, late, ;)
               listener: endMember()
             notEofOrValue(}, required)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, C)
@@ -220,7 +220,7 @@
                                     listener: endArguments(0, (, ))
                               listener: handleSend(required, ;)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, 1, required, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, required, ;)
               listener: endMember()
             notEofOrValue(}, })
             listener: endClassOrMixinBody(DeclarationKind.Class, 2, {, })
diff --git a/pkg/front_end/parser_testcases/non-nnbd/issue_40288_prime.dart.expect b/pkg/front_end/parser_testcases/non-nnbd/issue_40288_prime.dart.expect
index 7d97c5e..ea0ece2 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
@@ -87,7 +87,7 @@
             endArguments(0, (, ))
             handleSend(Xlate, ;)
           endFieldInitializer(=, ;)
-        endClassFields(null, null, null, null, 1, Xlate, ;)
+        endClassFields(null, null, null, null, null, null, 1, Xlate, ;)
       endMember()
       beginMetadataStar(Xrequired)
       endMetadataStar(0)
@@ -103,7 +103,7 @@
           endArguments(0, (, ))
           handleSend(Xrequired, ;)
         endFieldInitializer(=, ;)
-      endClassFields(null, null, null, null, 1, Xrequired, ;)
+      endClassFields(null, null, null, null, null, null, 1, Xrequired, ;)
     endMember()
   endClassOrMixinBody(DeclarationKind.Class, 2, {, })
 endClassDeclaration(class, })
diff --git a/pkg/front_end/parser_testcases/non-nnbd/issue_40288_prime.dart.intertwined.expect b/pkg/front_end/parser_testcases/non-nnbd/issue_40288_prime.dart.intertwined.expect
index 5e5e660..66943ef 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
@@ -187,7 +187,7 @@
                                     listener: endArguments(0, (, ))
                               listener: handleSend(Xlate, ;)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, 1, Xlate, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, Xlate, ;)
               listener: endMember()
             notEofOrValue(}, Xrequired)
             parseClassOrMixinOrExtensionMemberImpl(;, DeclarationKind.Class, C)
@@ -220,7 +220,7 @@
                                     listener: endArguments(0, (, ))
                               listener: handleSend(Xrequired, ;)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, 1, Xrequired, ;)
+                listener: endClassFields(null, null, null, null, null, null, 1, Xrequired, ;)
               listener: endMember()
             notEofOrValue(}, })
             listener: endClassOrMixinBody(DeclarationKind.Class, 2, {, })
diff --git a/pkg/front_end/test/parser_test_listener.dart b/pkg/front_end/test/parser_test_listener.dart
index 620cdef..f49b00a 100644
--- a/pkg/front_end/test/parser_test_listener.dart
+++ b/pkg/front_end/test/parser_test_listener.dart
@@ -531,6 +531,7 @@
       Token endToken) {
     indent--;
     seen(abstractToken);
+    seen(externalToken);
     seen(staticToken);
     seen(covariantToken);
     seen(lateToken);
@@ -538,6 +539,8 @@
     seen(beginToken);
     seen(endToken);
     doPrint('endClassFields('
+        '$abstractToken, '
+        '$externalToken, '
         '$staticToken, '
         '$covariantToken, '
         '$lateToken, '
@@ -559,6 +562,7 @@
       Token endToken) {
     indent--;
     seen(abstractToken);
+    seen(externalToken);
     seen(staticToken);
     seen(covariantToken);
     seen(lateToken);
@@ -566,6 +570,8 @@
     seen(beginToken);
     seen(endToken);
     doPrint('endMixinFields('
+        '$abstractToken, '
+        '$externalToken, '
         '$staticToken, '
         '$covariantToken, '
         '$lateToken, '
@@ -586,6 +592,8 @@
       Token beginToken,
       Token endToken) {
     indent--;
+    seen(abstractToken);
+    seen(externalToken);
     seen(staticToken);
     seen(covariantToken);
     seen(lateToken);
@@ -593,6 +601,8 @@
     seen(beginToken);
     seen(endToken);
     doPrint('endExtensionFields('
+        '$abstractToken, '
+        '$externalToken, '
         '$staticToken, '
         '$covariantToken, '
         '$lateToken, '
@@ -1452,6 +1462,7 @@
       Token beginToken,
       Token endToken) {
     indent--;
+    seen(externalToken);
     seen(staticToken);
     seen(covariantToken);
     seen(lateToken);
@@ -1459,6 +1470,7 @@
     seen(beginToken);
     seen(endToken);
     doPrint('endTopLevelFields('
+        '$externalToken, '
         '$staticToken, '
         '$covariantToken, '
         '$lateToken, '
diff --git a/pkg/front_end/test/spell_checking_list_tests.txt b/pkg/front_end/test/spell_checking_list_tests.txt
index b348828..c74ced0 100644
--- a/pkg/front_end/test/spell_checking_list_tests.txt
+++ b/pkg/front_end/test/spell_checking_list_tests.txt
@@ -612,6 +612,7 @@
 unassignment
 unawaited
 unbreak
+unconverted
 unpacked
 unpaused
 unregistered
diff --git a/pkg/front_end/test/vm_service_heap_helper.dart b/pkg/front_end/test/vm_service_heap_helper.dart
index 74e92c4..d801f3d 100644
--- a/pkg/front_end/test/vm_service_heap_helper.dart
+++ b/pkg/front_end/test/vm_service_heap_helper.dart
@@ -365,42 +365,12 @@
       vmService.HeapSnapshotGraph heapSnapshotGraph =
           await vmService.HeapSnapshotGraph.getSnapshot(
               _serviceClient, _isolateRef);
-      // TODO: Considering the single source shortest path algorithm
-      // doesn't seem to give a useful trace anymore (the snapshot seems to
-      // have changed) and that converting the graph is very costly,
-      // maybe don't do that...
-      HeapGraph graph = convertHeapGraph(heapSnapshotGraph);
 
-      Set<String> seenPrints = {};
       Set<String> duplicatePrints = {};
-      Map<String, List<HeapGraphElement>> groupedByToString = {};
-      for (HeapGraphClassActual c in graph.classes) {
-        Map<String, List<String>> interests = _interests[c.libraryUri];
-        if (interests != null && interests.isNotEmpty) {
-          List<String> fieldsToUse = interests[c.name];
-          if (fieldsToUse != null && fieldsToUse.isNotEmpty) {
-            for (HeapGraphElement instance in c.getInstances(graph)) {
-              StringBuffer sb = new StringBuffer();
-              sb.writeln("Instance: ${instance}");
-              if (instance is HeapGraphElementActual) {
-                for (String fieldName in fieldsToUse) {
-                  String prettyPrinted = instance
-                      .getField(fieldName)
-                      .getPrettyPrint(_prettyPrints);
-                  sb.writeln("  $fieldName: "
-                      "${prettyPrinted}");
-                }
-              }
-              String sbToString = sb.toString();
-              if (!seenPrints.add(sbToString)) {
-                duplicatePrints.add(sbToString);
-              }
-              groupedByToString[sbToString] ??= [];
-              groupedByToString[sbToString].add(instance);
-            }
-          }
-        }
-      }
+      Map<String, List<vmService.HeapSnapshotObject>> groupedByToString = {};
+      _usingUnconvertedGraph(
+          heapSnapshotGraph, duplicatePrints, groupedByToString);
+
       if (duplicatePrints.isNotEmpty) {
         print("======================================");
         print("WARNING: Duplicated pretty prints of objects.");
@@ -409,45 +379,16 @@
         for (String s in duplicatePrints) {
           int count = groupedByToString[s].length;
           print("$s ($count)");
-          for (HeapGraphElement duplicate in groupedByToString[s]) {
-            print(" => ${duplicate.getPrettyPrint(_prettyPrints)}");
+          for (vmService.HeapSnapshotObject duplicate in groupedByToString[s]) {
+            String prettyPrint = _heapObjectPrettyPrint(
+                duplicate, heapSnapshotGraph, _prettyPrints);
+            print(" => ${prettyPrint}");
           }
           print("");
         }
+
         if (tryToFindShortestPathToLeaks) {
-          print("======================================");
-          for (String duplicateString in duplicatePrints) {
-            print("$duplicateString:");
-            List<HeapGraphElement> Function(HeapGraphElement target)
-                dijkstraTarget = dijkstra(graph.elements.first, graph);
-            for (HeapGraphElement duplicate
-                in groupedByToString[duplicateString]) {
-              print("${duplicate} pointed to from:");
-              print(duplicate.getPrettyPrint(_prettyPrints));
-              List<HeapGraphElement> shortestPath = dijkstraTarget(duplicate);
-              for (int i = 0; i < shortestPath.length - 1; i++) {
-                HeapGraphElement thisOne = shortestPath[i];
-                HeapGraphElement nextOne = shortestPath[i + 1];
-                String indexFieldName;
-                if (thisOne is HeapGraphElementActual) {
-                  HeapGraphClass c = thisOne.class_;
-                  if (c is HeapGraphClassActual) {
-                    for (vmService.HeapSnapshotField field in c.origin.fields) {
-                      if (thisOne.references[field.index] == nextOne) {
-                        indexFieldName = field.name;
-                      }
-                    }
-                  }
-                }
-                if (indexFieldName == null) {
-                  indexFieldName = "no field found; index "
-                      "${thisOne.references.indexOf(nextOne)}";
-                }
-                print("  $thisOne -> $nextOne ($indexFieldName)");
-              }
-              print("---------------------------");
-            }
-          }
+          _tryToFindShortestPath(heapSnapshotGraph);
         }
 
         if (throwOnPossibleLeak) {
@@ -460,6 +401,214 @@
     }
   }
 
+  void _tryToFindShortestPath(vmService.HeapSnapshotGraph heapSnapshotGraph) {
+    HeapGraph graph = convertHeapGraph(heapSnapshotGraph);
+    Set<String> duplicatePrints = {};
+    Map<String, List<HeapGraphElement>> groupedByToString = {};
+    _usingConvertedGraph(graph, duplicatePrints, groupedByToString);
+
+    print("======================================");
+
+    for (String duplicateString in duplicatePrints) {
+      print("$duplicateString:");
+      List<HeapGraphElement> Function(HeapGraphElement target) dijkstraTarget =
+          dijkstra(graph.elements.first, graph);
+      for (HeapGraphElement duplicate in groupedByToString[duplicateString]) {
+        print("${duplicate} pointed to from:");
+        print(duplicate.getPrettyPrint(_prettyPrints));
+        List<HeapGraphElement> shortestPath = dijkstraTarget(duplicate);
+        for (int i = 0; i < shortestPath.length - 1; i++) {
+          HeapGraphElement thisOne = shortestPath[i];
+          HeapGraphElement nextOne = shortestPath[i + 1];
+          String indexFieldName;
+          if (thisOne is HeapGraphElementActual) {
+            HeapGraphClass c = thisOne.class_;
+            if (c is HeapGraphClassActual) {
+              for (vmService.HeapSnapshotField field in c.origin.fields) {
+                if (thisOne.references[field.index] == nextOne) {
+                  indexFieldName = field.name;
+                }
+              }
+            }
+          }
+          if (indexFieldName == null) {
+            indexFieldName = "no field found; index "
+                "${thisOne.references.indexOf(nextOne)}";
+          }
+          print("  $thisOne -> $nextOne ($indexFieldName)");
+        }
+        print("---------------------------");
+      }
+    }
+  }
+
+  void _usingConvertedGraph(HeapGraph graph, Set<String> duplicatePrints,
+      Map<String, List<HeapGraphElement>> groupedByToString) {
+    Set<String> seenPrints = {};
+    for (HeapGraphClassActual c in graph.classes) {
+      Map<String, List<String>> interests = _interests[c.libraryUri];
+      if (interests != null && interests.isNotEmpty) {
+        List<String> fieldsToUse = interests[c.name];
+        if (fieldsToUse != null && fieldsToUse.isNotEmpty) {
+          for (HeapGraphElement instance in c.getInstances(graph)) {
+            StringBuffer sb = new StringBuffer();
+            sb.writeln("Instance: ${instance}");
+            if (instance is HeapGraphElementActual) {
+              for (String fieldName in fieldsToUse) {
+                String prettyPrinted =
+                    instance.getField(fieldName).getPrettyPrint(_prettyPrints);
+                sb.writeln("  $fieldName: "
+                    "${prettyPrinted}");
+              }
+            }
+            String sbToString = sb.toString();
+            if (!seenPrints.add(sbToString)) {
+              duplicatePrints.add(sbToString);
+            }
+            groupedByToString[sbToString] ??= [];
+            groupedByToString[sbToString].add(instance);
+          }
+        }
+      }
+    }
+  }
+
+  String _heapObjectToString(
+      vmService.HeapSnapshotObject o, vmService.HeapSnapshotClass class_) {
+    if (o == null) return "Sentinel";
+    if (o.data is vmService.HeapSnapshotObjectNoData) {
+      return "Instance of ${class_.name}";
+    }
+    if (o.data is vmService.HeapSnapshotObjectLengthData) {
+      vmService.HeapSnapshotObjectLengthData data = o.data;
+      return "Instance of ${class_.name} length = ${data.length}";
+    }
+    return "Instance of ${class_.name}; data: '${o.data}'";
+  }
+
+  vmService.HeapSnapshotObject _heapObjectGetField(
+      String name,
+      vmService.HeapSnapshotObject o,
+      vmService.HeapSnapshotClass class_,
+      vmService.HeapSnapshotGraph graph) {
+    for (vmService.HeapSnapshotField field in class_.fields) {
+      if (field.name == name) {
+        int index = o.references[field.index] - 1;
+        if (index < 0) {
+          // Sentinel object.
+          return null;
+        }
+        return graph.objects[index];
+      }
+    }
+    return null;
+  }
+
+  String _heapObjectPrettyPrint(
+      vmService.HeapSnapshotObject o,
+      vmService.HeapSnapshotGraph graph,
+      Map<Uri, Map<String, List<String>>> prettyPrints) {
+    if (o.classId == 0) {
+      return "Class sentinel";
+    }
+    vmService.HeapSnapshotClass class_ = graph.classes[o.classId - 1];
+
+    if (class_.name == "_OneByteString") {
+      return '"${o.data}"';
+    }
+
+    if (class_.name == "_SimpleUri") {
+      vmService.HeapSnapshotObject fieldValueObject =
+          _heapObjectGetField("_uri", o, class_, graph);
+      String prettyPrinted =
+          _heapObjectPrettyPrint(fieldValueObject, graph, prettyPrints);
+      return "_SimpleUri[${prettyPrinted}]";
+    }
+
+    if (class_.name == "_Uri") {
+      vmService.HeapSnapshotObject schemeValueObject =
+          _heapObjectGetField("scheme", o, class_, graph);
+      String schemePrettyPrinted =
+          _heapObjectPrettyPrint(schemeValueObject, graph, prettyPrints);
+
+      vmService.HeapSnapshotObject pathValueObject =
+          _heapObjectGetField("path", o, class_, graph);
+      String pathPrettyPrinted =
+          _heapObjectPrettyPrint(pathValueObject, graph, prettyPrints);
+
+      return "_Uri[${schemePrettyPrinted}:${pathPrettyPrinted}]";
+    }
+
+    Map<String, List<String>> classToFields = prettyPrints[class_.libraryUri];
+    if (classToFields != null) {
+      List<String> fields = classToFields[class_.name];
+      if (fields != null) {
+        return "${class_.name}[" +
+            fields.map((field) {
+              vmService.HeapSnapshotObject fieldValueObject =
+                  _heapObjectGetField(field, o, class_, graph);
+              String prettyPrinted = fieldValueObject == null
+                  ? null
+                  : _heapObjectPrettyPrint(
+                      fieldValueObject, graph, prettyPrints);
+              return "$field: ${prettyPrinted}";
+            }).join(", ") +
+            "]";
+      }
+    }
+    return _heapObjectToString(o, class_);
+  }
+
+  void _usingUnconvertedGraph(
+      vmService.HeapSnapshotGraph graph,
+      Set<String> duplicatePrints,
+      Map<String, List<vmService.HeapSnapshotObject>> groupedByToString) {
+    Set<String> seenPrints = {};
+    List<bool> ignoredClasses =
+        new List<bool>.filled(graph.classes.length, false);
+    for (int i = 0; i < graph.objects.length; i++) {
+      vmService.HeapSnapshotObject o = graph.objects[i];
+      if (o.classId == 0) {
+        // Sentinel.
+        continue;
+      }
+      if (ignoredClasses[o.classId - 1]) {
+        // Class is not interesting.
+        continue;
+      }
+      vmService.HeapSnapshotClass c = graph.classes[o.classId - 1];
+      Map<String, List<String>> interests = _interests[c.libraryUri];
+      if (interests == null || interests.isEmpty) {
+        // Not an object we care about.
+        ignoredClasses[o.classId - 1] = true;
+        continue;
+      }
+
+      List<String> fieldsToUse = interests[c.name];
+      if (fieldsToUse == null || fieldsToUse.isEmpty) {
+        // Not an object we care about.
+        ignoredClasses[o.classId - 1] = true;
+        continue;
+      }
+
+      StringBuffer sb = new StringBuffer();
+      sb.writeln("Instance: ${_heapObjectToString(o, c)}");
+      for (String fieldName in fieldsToUse) {
+        vmService.HeapSnapshotObject fieldValueObject =
+            _heapObjectGetField(fieldName, o, c, graph);
+        String prettyPrinted =
+            _heapObjectPrettyPrint(fieldValueObject, graph, _prettyPrints);
+        sb.writeln("  $fieldName: ${prettyPrinted}");
+      }
+      String sbToString = sb.toString();
+      if (!seenPrints.add(sbToString)) {
+        duplicatePrints.add(sbToString);
+      }
+      groupedByToString[sbToString] ??= [];
+      groupedByToString[sbToString].add(o);
+    }
+  }
+
   List<HeapGraphElement> Function(HeapGraphElement target) dijkstra(
       HeapGraphElement source, HeapGraph heapGraph) {
     Map<HeapGraphElement, int> elementNum = {};
@@ -678,17 +827,6 @@
     return null;
   }
 
-  List<MapEntry<String, HeapGraphElement>> getFields() {
-    List<MapEntry<String, HeapGraphElement>> result = [];
-    if (class_ is HeapGraphClassActual) {
-      HeapGraphClassActual c = class_;
-      for (vmService.HeapSnapshotField field in c.origin.fields) {
-        result.add(new MapEntry(field.name, references[field.index]));
-      }
-    }
-    return result;
-  }
-
   String toString() {
     if (origin.data is vmService.HeapSnapshotObjectNoData) {
       return "Instance of $class_";
diff --git a/pkg/front_end/testcases/general/abstract_overrides_concrete.dart b/pkg/front_end/testcases/general/abstract_overrides_concrete.dart
new file mode 100644
index 0000000..8a0f040
--- /dev/null
+++ b/pkg/front_end/testcases/general/abstract_overrides_concrete.dart
@@ -0,0 +1,25 @@
+// 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.
+
+class A {
+  void foo() {}
+}
+
+abstract class I {
+  void foo([a]);
+}
+
+abstract class B extends A {
+  void foo([a]);
+}
+
+class C extends B {}
+
+class D extends A implements I {}
+
+abstract class E extends A implements I {}
+
+class F extends E {}
+
+main() {}
diff --git a/pkg/front_end/testcases/general/abstract_overrides_concrete.dart.outline.expect b/pkg/front_end/testcases/general/abstract_overrides_concrete.dart.outline.expect
new file mode 100644
index 0000000..0d17070
--- /dev/null
+++ b/pkg/front_end/testcases/general/abstract_overrides_concrete.dart.outline.expect
@@ -0,0 +1,93 @@
+library;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/general/abstract_overrides_concrete.dart:17:7: Error: The implementation of 'foo' in the non-abstract class 'C' does not conform to its interface.
+// class C extends B {}
+//       ^
+// pkg/front_end/testcases/general/abstract_overrides_concrete.dart:6:8: Context: The method 'A.foo' has fewer positional arguments than those of overridden method 'B.foo'.
+//   void foo() {}
+//        ^
+// pkg/front_end/testcases/general/abstract_overrides_concrete.dart:14:8: Context: This is the overridden method ('foo').
+//   void foo([a]);
+//        ^
+//
+// pkg/front_end/testcases/general/abstract_overrides_concrete.dart:19:7: Error: The implementation of 'foo' in the non-abstract class 'D' does not conform to its interface.
+// class D extends A implements I {}
+//       ^
+// pkg/front_end/testcases/general/abstract_overrides_concrete.dart:6:8: Context: The method 'A.foo' has fewer positional arguments than those of overridden method 'I.foo'.
+//   void foo() {}
+//        ^
+// pkg/front_end/testcases/general/abstract_overrides_concrete.dart:10:8: Context: This is the overridden method ('foo').
+//   void foo([a]);
+//        ^
+//
+// pkg/front_end/testcases/general/abstract_overrides_concrete.dart:23:7: Error: The implementation of 'foo' in the non-abstract class 'F' does not conform to its interface.
+// class F extends E {}
+//       ^
+// pkg/front_end/testcases/general/abstract_overrides_concrete.dart:6:8: Context: The method 'A.foo' has fewer positional arguments than those of overridden method 'E.foo'.
+//   void foo() {}
+//        ^
+// pkg/front_end/testcases/general/abstract_overrides_concrete.dart:21:16: Context: This is the overridden method ('foo').
+// abstract class E extends A implements I {}
+//                ^
+//
+import self as self;
+import "dart:core" as core;
+
+class A extends core::Object {
+  synthetic constructor •() → self::A*
+    ;
+  method foo() → void
+    ;
+  abstract member-signature get _identityHashCode() → core::int*;
+  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*;
+  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*;
+  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*;
+  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*;
+  abstract member-signature operator ==(dynamic other) → core::bool*;
+  abstract member-signature get hashCode() → core::int*;
+  abstract member-signature method toString() → core::String*;
+  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic;
+  abstract member-signature get runtimeType() → core::Type*;
+}
+abstract class I extends core::Object {
+  synthetic constructor •() → self::I*
+    ;
+  abstract method foo([dynamic a]) → void;
+  abstract member-signature get _identityHashCode() → core::int*;
+  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*;
+  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*;
+  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*;
+  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*;
+  abstract member-signature operator ==(dynamic other) → core::bool*;
+  abstract member-signature get hashCode() → core::int*;
+  abstract member-signature method toString() → core::String*;
+  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic;
+  abstract member-signature get runtimeType() → core::Type*;
+}
+abstract class B extends self::A {
+  synthetic constructor •() → self::B*
+    ;
+  abstract method foo([dynamic a]) → void;
+}
+class C extends self::B {
+  synthetic constructor •() → self::C*
+    ;
+}
+class D extends self::A implements self::I {
+  synthetic constructor •() → self::D*
+    ;
+  abstract forwarding-stub method foo([dynamic a]) → void;
+}
+abstract class E extends self::A implements self::I {
+  synthetic constructor •() → self::E*
+    ;
+  abstract forwarding-stub method foo([dynamic a]) → void;
+}
+class F extends self::E {
+  synthetic constructor •() → self::F*
+    ;
+}
+static method main() → dynamic
+  ;
diff --git a/pkg/front_end/testcases/general/abstract_overrides_concrete.dart.strong.expect b/pkg/front_end/testcases/general/abstract_overrides_concrete.dart.strong.expect
new file mode 100644
index 0000000..65a5901
--- /dev/null
+++ b/pkg/front_end/testcases/general/abstract_overrides_concrete.dart.strong.expect
@@ -0,0 +1,102 @@
+library;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/general/abstract_overrides_concrete.dart:17:7: Error: The implementation of 'foo' in the non-abstract class 'C' does not conform to its interface.
+// class C extends B {}
+//       ^
+// pkg/front_end/testcases/general/abstract_overrides_concrete.dart:6:8: Context: The method 'A.foo' has fewer positional arguments than those of overridden method 'B.foo'.
+//   void foo() {}
+//        ^
+// pkg/front_end/testcases/general/abstract_overrides_concrete.dart:14:8: Context: This is the overridden method ('foo').
+//   void foo([a]);
+//        ^
+//
+// pkg/front_end/testcases/general/abstract_overrides_concrete.dart:19:7: Error: The implementation of 'foo' in the non-abstract class 'D' does not conform to its interface.
+// class D extends A implements I {}
+//       ^
+// pkg/front_end/testcases/general/abstract_overrides_concrete.dart:6:8: Context: The method 'A.foo' has fewer positional arguments than those of overridden method 'I.foo'.
+//   void foo() {}
+//        ^
+// pkg/front_end/testcases/general/abstract_overrides_concrete.dart:10:8: Context: This is the overridden method ('foo').
+//   void foo([a]);
+//        ^
+//
+// pkg/front_end/testcases/general/abstract_overrides_concrete.dart:23:7: Error: The implementation of 'foo' in the non-abstract class 'F' does not conform to its interface.
+// class F extends E {}
+//       ^
+// pkg/front_end/testcases/general/abstract_overrides_concrete.dart:6:8: Context: The method 'A.foo' has fewer positional arguments than those of overridden method 'E.foo'.
+//   void foo() {}
+//        ^
+// pkg/front_end/testcases/general/abstract_overrides_concrete.dart:21:16: Context: This is the overridden method ('foo').
+// abstract class E extends A implements I {}
+//                ^
+//
+import self as self;
+import "dart:core" as core;
+
+class A extends core::Object {
+  synthetic constructor •() → self::A*
+    : super core::Object::•()
+    ;
+  method foo() → void {}
+  abstract member-signature get _identityHashCode() → core::int*;
+  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*;
+  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*;
+  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*;
+  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*;
+  abstract member-signature operator ==(dynamic other) → core::bool*;
+  abstract member-signature get hashCode() → core::int*;
+  abstract member-signature method toString() → core::String*;
+  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic;
+  abstract member-signature get runtimeType() → core::Type*;
+}
+abstract class I extends core::Object {
+  synthetic constructor •() → self::I*
+    : super core::Object::•()
+    ;
+  abstract method foo([dynamic a = #C1]) → void;
+  abstract member-signature get _identityHashCode() → core::int*;
+  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*;
+  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*;
+  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*;
+  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*;
+  abstract member-signature operator ==(dynamic other) → core::bool*;
+  abstract member-signature get hashCode() → core::int*;
+  abstract member-signature method toString() → core::String*;
+  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic;
+  abstract member-signature get runtimeType() → core::Type*;
+}
+abstract class B extends self::A {
+  synthetic constructor •() → self::B*
+    : super self::A::•()
+    ;
+  abstract method foo([dynamic a = #C1]) → void;
+}
+class C extends self::B {
+  synthetic constructor •() → self::C*
+    : super self::B::•()
+    ;
+}
+class D extends self::A implements self::I {
+  synthetic constructor •() → self::D*
+    : super self::A::•()
+    ;
+  abstract forwarding-stub method foo([dynamic a = #C1]) → void;
+}
+abstract class E extends self::A implements self::I {
+  synthetic constructor •() → self::E*
+    : super self::A::•()
+    ;
+  abstract forwarding-stub method foo([dynamic a = #C1]) → void;
+}
+class F extends self::E {
+  synthetic constructor •() → self::F*
+    : super self::E::•()
+    ;
+}
+static method main() → dynamic {}
+
+constants  {
+  #C1 = null
+}
diff --git a/pkg/front_end/testcases/general/abstract_overrides_concrete.dart.strong.transformed.expect b/pkg/front_end/testcases/general/abstract_overrides_concrete.dart.strong.transformed.expect
new file mode 100644
index 0000000..65a5901
--- /dev/null
+++ b/pkg/front_end/testcases/general/abstract_overrides_concrete.dart.strong.transformed.expect
@@ -0,0 +1,102 @@
+library;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/general/abstract_overrides_concrete.dart:17:7: Error: The implementation of 'foo' in the non-abstract class 'C' does not conform to its interface.
+// class C extends B {}
+//       ^
+// pkg/front_end/testcases/general/abstract_overrides_concrete.dart:6:8: Context: The method 'A.foo' has fewer positional arguments than those of overridden method 'B.foo'.
+//   void foo() {}
+//        ^
+// pkg/front_end/testcases/general/abstract_overrides_concrete.dart:14:8: Context: This is the overridden method ('foo').
+//   void foo([a]);
+//        ^
+//
+// pkg/front_end/testcases/general/abstract_overrides_concrete.dart:19:7: Error: The implementation of 'foo' in the non-abstract class 'D' does not conform to its interface.
+// class D extends A implements I {}
+//       ^
+// pkg/front_end/testcases/general/abstract_overrides_concrete.dart:6:8: Context: The method 'A.foo' has fewer positional arguments than those of overridden method 'I.foo'.
+//   void foo() {}
+//        ^
+// pkg/front_end/testcases/general/abstract_overrides_concrete.dart:10:8: Context: This is the overridden method ('foo').
+//   void foo([a]);
+//        ^
+//
+// pkg/front_end/testcases/general/abstract_overrides_concrete.dart:23:7: Error: The implementation of 'foo' in the non-abstract class 'F' does not conform to its interface.
+// class F extends E {}
+//       ^
+// pkg/front_end/testcases/general/abstract_overrides_concrete.dart:6:8: Context: The method 'A.foo' has fewer positional arguments than those of overridden method 'E.foo'.
+//   void foo() {}
+//        ^
+// pkg/front_end/testcases/general/abstract_overrides_concrete.dart:21:16: Context: This is the overridden method ('foo').
+// abstract class E extends A implements I {}
+//                ^
+//
+import self as self;
+import "dart:core" as core;
+
+class A extends core::Object {
+  synthetic constructor •() → self::A*
+    : super core::Object::•()
+    ;
+  method foo() → void {}
+  abstract member-signature get _identityHashCode() → core::int*;
+  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*;
+  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*;
+  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*;
+  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*;
+  abstract member-signature operator ==(dynamic other) → core::bool*;
+  abstract member-signature get hashCode() → core::int*;
+  abstract member-signature method toString() → core::String*;
+  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic;
+  abstract member-signature get runtimeType() → core::Type*;
+}
+abstract class I extends core::Object {
+  synthetic constructor •() → self::I*
+    : super core::Object::•()
+    ;
+  abstract method foo([dynamic a = #C1]) → void;
+  abstract member-signature get _identityHashCode() → core::int*;
+  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*;
+  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*;
+  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*;
+  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*;
+  abstract member-signature operator ==(dynamic other) → core::bool*;
+  abstract member-signature get hashCode() → core::int*;
+  abstract member-signature method toString() → core::String*;
+  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic;
+  abstract member-signature get runtimeType() → core::Type*;
+}
+abstract class B extends self::A {
+  synthetic constructor •() → self::B*
+    : super self::A::•()
+    ;
+  abstract method foo([dynamic a = #C1]) → void;
+}
+class C extends self::B {
+  synthetic constructor •() → self::C*
+    : super self::B::•()
+    ;
+}
+class D extends self::A implements self::I {
+  synthetic constructor •() → self::D*
+    : super self::A::•()
+    ;
+  abstract forwarding-stub method foo([dynamic a = #C1]) → void;
+}
+abstract class E extends self::A implements self::I {
+  synthetic constructor •() → self::E*
+    : super self::A::•()
+    ;
+  abstract forwarding-stub method foo([dynamic a = #C1]) → void;
+}
+class F extends self::E {
+  synthetic constructor •() → self::F*
+    : super self::E::•()
+    ;
+}
+static method main() → dynamic {}
+
+constants  {
+  #C1 = null
+}
diff --git a/pkg/front_end/testcases/general/abstract_overrides_concrete.dart.textual_outline.expect b/pkg/front_end/testcases/general/abstract_overrides_concrete.dart.textual_outline.expect
new file mode 100644
index 0000000..5b023fe
--- /dev/null
+++ b/pkg/front_end/testcases/general/abstract_overrides_concrete.dart.textual_outline.expect
@@ -0,0 +1,21 @@
+class A {
+  void foo() {}
+}
+
+abstract class I {
+  void foo([a]);
+}
+
+abstract class B extends A {
+  void foo([a]);
+}
+
+class C extends B {}
+
+class D extends A implements I {}
+
+abstract class E extends A implements I {}
+
+class F extends E {}
+
+main() {}
diff --git a/pkg/front_end/testcases/general/abstract_overrides_concrete.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/abstract_overrides_concrete.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..7f52cec
--- /dev/null
+++ b/pkg/front_end/testcases/general/abstract_overrides_concrete.dart.textual_outline_modelled.expect
@@ -0,0 +1,21 @@
+abstract class B extends A {
+  void foo([a]);
+}
+
+abstract class E extends A implements I {}
+
+abstract class I {
+  void foo([a]);
+}
+
+class A {
+  void foo() {}
+}
+
+class C extends B {}
+
+class D extends A implements I {}
+
+class F extends E {}
+
+main() {}
diff --git a/pkg/front_end/testcases/general/implicit_covariance.dart b/pkg/front_end/testcases/general/implicit_covariance.dart
new file mode 100644
index 0000000..90b9dfc
--- /dev/null
+++ b/pkg/front_end/testcases/general/implicit_covariance.dart
@@ -0,0 +1,19 @@
+// 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.
+
+abstract class A<T> {
+  foo(T x);
+}
+
+abstract class B<T> implements A<T> {}
+
+class C {
+  foo(num x) {}
+}
+
+class D<T extends num> extends C with B<T> {}
+
+class E<T extends num> = C with B<T>;
+
+main() {}
diff --git a/pkg/front_end/testcases/general/implicit_covariance.dart.outline.expect b/pkg/front_end/testcases/general/implicit_covariance.dart.outline.expect
new file mode 100644
index 0000000..43c24e3
--- /dev/null
+++ b/pkg/front_end/testcases/general/implicit_covariance.dart.outline.expect
@@ -0,0 +1,69 @@
+library;
+import self as self;
+import "dart:core" as core;
+
+abstract class A<T extends core::Object* = dynamic> extends core::Object {
+  synthetic constructor •() → self::A<self::A::T*>*
+    ;
+  abstract method foo(generic-covariant-impl self::A::T* x) → dynamic;
+  abstract member-signature get _identityHashCode() → core::int*;
+  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*;
+  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*;
+  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*;
+  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*;
+  abstract member-signature operator ==(dynamic other) → core::bool*;
+  abstract member-signature get hashCode() → core::int*;
+  abstract member-signature method toString() → core::String*;
+  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic;
+  abstract member-signature get runtimeType() → core::Type*;
+}
+abstract class B<T extends core::Object* = dynamic> extends core::Object implements self::A<self::B::T*> {
+  synthetic constructor •() → self::B<self::B::T*>*
+    ;
+  abstract member-signature get _identityHashCode() → core::int*;
+  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*;
+  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*;
+  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*;
+  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*;
+  abstract member-signature operator ==(dynamic other) → core::bool*;
+  abstract member-signature get hashCode() → core::int*;
+  abstract member-signature method toString() → core::String*;
+  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic;
+  abstract member-signature get runtimeType() → core::Type*;
+}
+class C extends core::Object {
+  synthetic constructor •() → self::C*
+    ;
+  method foo(core::num* x) → dynamic
+    ;
+  abstract member-signature get _identityHashCode() → core::int*;
+  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*;
+  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*;
+  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*;
+  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*;
+  abstract member-signature operator ==(dynamic other) → core::bool*;
+  abstract member-signature get hashCode() → core::int*;
+  abstract member-signature method toString() → core::String*;
+  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic;
+  abstract member-signature get runtimeType() → core::Type*;
+}
+abstract class _D&C&B<T extends core::num* = core::num*> = self::C with self::B<self::_D&C&B::T*> /*isAnonymousMixin*/  {
+  synthetic constructor •() → self::_D&C&B<self::_D&C&B::T*>*
+    : super self::C::•()
+    ;
+  forwarding-stub method foo(generic-covariant-impl core::num* x) → dynamic
+    return super.{self::C::foo}(x);
+}
+class D<T extends core::num* = core::num*> extends self::_D&C&B<self::D::T*> {
+  synthetic constructor •() → self::D<self::D::T*>*
+    ;
+}
+class E<T extends core::num* = core::num*> = self::C with self::B<self::E::T*> {
+  synthetic constructor •() → self::E<self::E::T*>*
+    : super self::C::•()
+    ;
+  forwarding-stub method foo(generic-covariant-impl core::num* x) → dynamic
+    return super.{self::C::foo}(x);
+}
+static method main() → dynamic
+  ;
diff --git a/pkg/front_end/testcases/general/implicit_covariance.dart.strong.expect b/pkg/front_end/testcases/general/implicit_covariance.dart.strong.expect
new file mode 100644
index 0000000..e103b72
--- /dev/null
+++ b/pkg/front_end/testcases/general/implicit_covariance.dart.strong.expect
@@ -0,0 +1,71 @@
+library;
+import self as self;
+import "dart:core" as core;
+
+abstract class A<T extends core::Object* = dynamic> extends core::Object {
+  synthetic constructor •() → self::A<self::A::T*>*
+    : super core::Object::•()
+    ;
+  abstract method foo(generic-covariant-impl self::A::T* x) → dynamic;
+  abstract member-signature get _identityHashCode() → core::int*;
+  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*;
+  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*;
+  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*;
+  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*;
+  abstract member-signature operator ==(dynamic other) → core::bool*;
+  abstract member-signature get hashCode() → core::int*;
+  abstract member-signature method toString() → core::String*;
+  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic;
+  abstract member-signature get runtimeType() → core::Type*;
+}
+abstract class B<T extends core::Object* = dynamic> extends core::Object implements self::A<self::B::T*> {
+  synthetic constructor •() → self::B<self::B::T*>*
+    : super core::Object::•()
+    ;
+  abstract member-signature get _identityHashCode() → core::int*;
+  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*;
+  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*;
+  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*;
+  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*;
+  abstract member-signature operator ==(dynamic other) → core::bool*;
+  abstract member-signature get hashCode() → core::int*;
+  abstract member-signature method toString() → core::String*;
+  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic;
+  abstract member-signature get runtimeType() → core::Type*;
+}
+class C extends core::Object {
+  synthetic constructor •() → self::C*
+    : super core::Object::•()
+    ;
+  method foo(core::num* x) → dynamic {}
+  abstract member-signature get _identityHashCode() → core::int*;
+  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*;
+  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*;
+  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*;
+  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*;
+  abstract member-signature operator ==(dynamic other) → core::bool*;
+  abstract member-signature get hashCode() → core::int*;
+  abstract member-signature method toString() → core::String*;
+  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic;
+  abstract member-signature get runtimeType() → core::Type*;
+}
+abstract class _D&C&B<T extends core::num* = core::num*> = self::C with self::B<self::_D&C&B::T*> /*isAnonymousMixin*/  {
+  synthetic constructor •() → self::_D&C&B<self::_D&C&B::T*>*
+    : super self::C::•()
+    ;
+  forwarding-stub method foo(generic-covariant-impl core::num* x) → dynamic
+    return super.{self::C::foo}(x);
+}
+class D<T extends core::num* = core::num*> extends self::_D&C&B<self::D::T*> {
+  synthetic constructor •() → self::D<self::D::T*>*
+    : super self::_D&C&B::•()
+    ;
+}
+class E<T extends core::num* = core::num*> = self::C with self::B<self::E::T*> {
+  synthetic constructor •() → self::E<self::E::T*>*
+    : super self::C::•()
+    ;
+  forwarding-stub method foo(generic-covariant-impl core::num* x) → dynamic
+    return super.{self::C::foo}(x);
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/implicit_covariance.dart.strong.transformed.expect b/pkg/front_end/testcases/general/implicit_covariance.dart.strong.transformed.expect
new file mode 100644
index 0000000..9ce9f3f
--- /dev/null
+++ b/pkg/front_end/testcases/general/implicit_covariance.dart.strong.transformed.expect
@@ -0,0 +1,91 @@
+library;
+import self as self;
+import "dart:core" as core;
+
+abstract class A<T extends core::Object* = dynamic> extends core::Object {
+  synthetic constructor •() → self::A<self::A::T*>*
+    : super core::Object::•()
+    ;
+  abstract method foo(generic-covariant-impl self::A::T* x) → dynamic;
+  abstract member-signature get _identityHashCode() → core::int*;
+  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*;
+  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*;
+  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*;
+  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*;
+  abstract member-signature operator ==(dynamic other) → core::bool*;
+  abstract member-signature get hashCode() → core::int*;
+  abstract member-signature method toString() → core::String*;
+  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic;
+  abstract member-signature get runtimeType() → core::Type*;
+}
+abstract class B<T extends core::Object* = dynamic> extends core::Object implements self::A<self::B::T*> {
+  synthetic constructor •() → self::B<self::B::T*>*
+    : super core::Object::•()
+    ;
+  abstract member-signature get _identityHashCode() → core::int*;
+  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*;
+  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*;
+  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*;
+  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*;
+  abstract member-signature operator ==(dynamic other) → core::bool*;
+  abstract member-signature get hashCode() → core::int*;
+  abstract member-signature method toString() → core::String*;
+  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic;
+  abstract member-signature get runtimeType() → core::Type*;
+}
+class C extends core::Object {
+  synthetic constructor •() → self::C*
+    : super core::Object::•()
+    ;
+  method foo(core::num* x) → dynamic {}
+  abstract member-signature get _identityHashCode() → core::int*;
+  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*;
+  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*;
+  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*;
+  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*;
+  abstract member-signature operator ==(dynamic other) → core::bool*;
+  abstract member-signature get hashCode() → core::int*;
+  abstract member-signature method toString() → core::String*;
+  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic;
+  abstract member-signature get runtimeType() → core::Type*;
+}
+abstract class _D&C&B<T extends core::num* = core::num*> extends self::C implements self::B<self::_D&C&B::T*> /*isAnonymousMixin,isEliminatedMixin*/  {
+  synthetic constructor •() → self::_D&C&B<self::_D&C&B::T*>*
+    : super self::C::•()
+    ;
+  forwarding-stub method foo(generic-covariant-impl core::num* x) → dynamic
+    return super.{self::C::foo}(x);
+  abstract member-signature get _identityHashCode() → core::int*;
+  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*;
+  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*;
+  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*;
+  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*;
+  abstract member-signature operator ==(dynamic other) → core::bool*;
+  abstract member-signature get hashCode() → core::int*;
+  abstract member-signature method toString() → core::String*;
+  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic;
+  abstract member-signature get runtimeType() → core::Type*;
+}
+class D<T extends core::num* = core::num*> extends self::_D&C&B<self::D::T*> {
+  synthetic constructor •() → self::D<self::D::T*>*
+    : super self::_D&C&B::•()
+    ;
+}
+class E<T extends core::num* = core::num*> extends self::C implements self::B<self::E::T*> /*isEliminatedMixin*/  {
+  synthetic constructor •() → self::E<self::E::T*>*
+    : super self::C::•()
+    ;
+  forwarding-stub method foo(generic-covariant-impl core::num* x) → dynamic
+    return super.{self::C::foo}(x);
+  abstract member-signature get _identityHashCode() → core::int*;
+  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*;
+  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*;
+  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*;
+  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*;
+  abstract member-signature operator ==(dynamic other) → core::bool*;
+  abstract member-signature get hashCode() → core::int*;
+  abstract member-signature method toString() → core::String*;
+  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic;
+  abstract member-signature get runtimeType() → core::Type*;
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/implicit_covariance.dart.textual_outline.expect b/pkg/front_end/testcases/general/implicit_covariance.dart.textual_outline.expect
new file mode 100644
index 0000000..764181a
--- /dev/null
+++ b/pkg/front_end/testcases/general/implicit_covariance.dart.textual_outline.expect
@@ -0,0 +1,14 @@
+abstract class A<T> {
+  foo(T x);
+}
+
+abstract class B<T> implements A<T> {}
+
+class C {
+  foo(num x) {}
+}
+
+class D<T extends num> extends C with B<T> {}
+
+class E<T extends num> = C with B<T>;
+main() {}
diff --git a/pkg/front_end/testcases/general/implicit_covariance.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/implicit_covariance.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..764181a
--- /dev/null
+++ b/pkg/front_end/testcases/general/implicit_covariance.dart.textual_outline_modelled.expect
@@ -0,0 +1,14 @@
+abstract class A<T> {
+  foo(T x);
+}
+
+abstract class B<T> implements A<T> {}
+
+class C {
+  foo(num x) {}
+}
+
+class D<T extends num> extends C with B<T> {}
+
+class E<T extends num> = C with B<T>;
+main() {}
diff --git a/pkg/front_end/testcases/general/issue41210a.dart.outline.expect b/pkg/front_end/testcases/general/issue41210a.dart.outline.expect
index bd1ec3c..0258b21 100644
--- a/pkg/front_end/testcases/general/issue41210a.dart.outline.expect
+++ b/pkg/front_end/testcases/general/issue41210a.dart.outline.expect
@@ -140,8 +140,6 @@
 class E extends self::_E&Object&A&D {
   synthetic constructor •() → self::E*
     ;
-  forwarding-stub method method(covariant core::num* i, {core::String* s}) → core::String*
-    return super.{self::A::method}(i, s: s);
 }
 static method main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/general/issue41210a.dart.strong.expect b/pkg/front_end/testcases/general/issue41210a.dart.strong.expect
index 14eb392..6117f4a 100644
--- a/pkg/front_end/testcases/general/issue41210a.dart.strong.expect
+++ b/pkg/front_end/testcases/general/issue41210a.dart.strong.expect
@@ -146,8 +146,6 @@
   synthetic constructor •() → self::E*
     : super self::_E&Object&A&D::•()
     ;
-  forwarding-stub method method(covariant core::num* i, {core::String* s = #C1}) → core::String*
-    return super.{self::A::method}(i, s: s);
 }
 static method main() → dynamic {
   core::print(new self::C::•().{self::C::method}(0));
diff --git a/pkg/front_end/testcases/general/with_dependencies/stub_or_not/stub_or_not.no_link.dart.outline.expect b/pkg/front_end/testcases/general/with_dependencies/stub_or_not/stub_or_not.no_link.dart.outline.expect
index 2d74190..35b37a6 100644
--- a/pkg/front_end/testcases/general/with_dependencies/stub_or_not/stub_or_not.no_link.dart.outline.expect
+++ b/pkg/front_end/testcases/general/with_dependencies/stub_or_not/stub_or_not.no_link.dart.outline.expect
@@ -1,14 +1,12 @@
 library;
 import self as self;
 import "stub_or_not_lib1.dart" as stu;
-import "stub_or_not_lib2.dart" as stu2;
 
 import "org-dartlang-testcase:///stub_or_not_lib1.dart";
 
 class ProblemClass extends stu::Foo {
   synthetic constructor •() → self::ProblemClass*
     ;
-  abstract forwarding-stub method handleEvent(covariant stu2::EvenFileB* entry) → void;
 }
 static method main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/general/with_dependencies/stub_or_not/stub_or_not.no_link.dart.strong.expect b/pkg/front_end/testcases/general/with_dependencies/stub_or_not/stub_or_not.no_link.dart.strong.expect
index 077097a..e5802ab 100644
--- a/pkg/front_end/testcases/general/with_dependencies/stub_or_not/stub_or_not.no_link.dart.strong.expect
+++ b/pkg/front_end/testcases/general/with_dependencies/stub_or_not/stub_or_not.no_link.dart.strong.expect
@@ -1,7 +1,6 @@
 library;
 import self as self;
 import "stub_or_not_lib1.dart" as stu;
-import "stub_or_not_lib2.dart" as stu2;
 
 import "org-dartlang-testcase:///stub_or_not_lib1.dart";
 
@@ -9,7 +8,6 @@
   synthetic constructor •() → self::ProblemClass*
     : super stu::Foo::•()
     ;
-  abstract forwarding-stub method handleEvent(covariant stu2::EvenFileB* entry) → void;
 }
 static method main() → dynamic {}
 
diff --git a/pkg/front_end/testcases/general/with_dependencies/stub_or_not/stub_or_not.no_link.dart.strong.transformed.expect b/pkg/front_end/testcases/general/with_dependencies/stub_or_not/stub_or_not.no_link.dart.strong.transformed.expect
index 077097a..e5802ab 100644
--- a/pkg/front_end/testcases/general/with_dependencies/stub_or_not/stub_or_not.no_link.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/with_dependencies/stub_or_not/stub_or_not.no_link.dart.strong.transformed.expect
@@ -1,7 +1,6 @@
 library;
 import self as self;
 import "stub_or_not_lib1.dart" as stu;
-import "stub_or_not_lib2.dart" as stu2;
 
 import "org-dartlang-testcase:///stub_or_not_lib1.dart";
 
@@ -9,7 +8,6 @@
   synthetic constructor •() → self::ProblemClass*
     : super stu::Foo::•()
     ;
-  abstract forwarding-stub method handleEvent(covariant stu2::EvenFileB* entry) → void;
 }
 static method main() → dynamic {}
 
diff --git a/pkg/front_end/testcases/incremental_initialize_from_dill/flutter_mixin_failure_1.yaml.world.1.expect b/pkg/front_end/testcases/incremental_initialize_from_dill/flutter_mixin_failure_1.yaml.world.1.expect
index 6ff4557..649f761 100644
--- a/pkg/front_end/testcases/incremental_initialize_from_dill/flutter_mixin_failure_1.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental_initialize_from_dill/flutter_mixin_failure_1.yaml.world.1.expect
@@ -71,7 +71,6 @@
     synthetic constructor •() → lib::Quux*
       : super lib::_Quux&Qux&MyMixin::•()
       ;
-    abstract forwarding-stub method hello(covariant lib::FooEntry* entry) → void;
   }
 }
 library from "org-dartlang-test:///main.dart" as main {
diff --git a/pkg/front_end/testcases/incremental_initialize_from_dill/flutter_mixin_failure_1.yaml.world.2.expect b/pkg/front_end/testcases/incremental_initialize_from_dill/flutter_mixin_failure_1.yaml.world.2.expect
index f0860a0..077d9cb 100644
--- a/pkg/front_end/testcases/incremental_initialize_from_dill/flutter_mixin_failure_1.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental_initialize_from_dill/flutter_mixin_failure_1.yaml.world.2.expect
@@ -71,7 +71,6 @@
     synthetic constructor •() → lib::Quux*
       : super lib::_Quux&Qux&MyMixin::•()
       ;
-    abstract forwarding-stub method hello(covariant lib::FooEntry* entry) → void;
   }
 }
 library from "org-dartlang-test:///main.dart" as main {
diff --git a/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_22.yaml.world.1.expect b/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_22.yaml.world.1.expect
index 2e894e1..29a46f9 100644
--- a/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_22.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_22.yaml.world.1.expect
@@ -10,6 +10,18 @@
     abstract member-signature get length() → dart.core::int*;
     abstract member-signature operator [](dart.core::int* index) → dart.core::int*;
     abstract member-signature operator []=(dart.core::int* index, generic-covariant-impl dart.core::int* value) → void;
+    method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ toString() → dart.core::String
+      return dart.collection::IterableBase::iterableToFullString(this, "[", "]");
+    abstract member-signature get _identityHashCode() → dart.core::int*;
+    abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*;
+    abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*;
+    abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*;
+    abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*;
+    abstract member-signature operator ==(dynamic other) → dart.core::bool*;
+    abstract member-signature get hashCode() → dart.core::int*;
+    abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic;
+    abstract member-signature get runtimeType() → dart.core::Type*;
+    abstract member-signature set length(dart.core::int* newLength) → void;
     get /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ iterator() → dart.core::Iterator<dart.core::int*>
       return new dart._internal::ListIterator::•<dart.core::int*>(this);
     method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ elementAt(dart.core::int index) → dart.core::int*
@@ -30,6 +42,33 @@
       return this.{dart.core::List::length}.{dart.core::num::==}(0);
     get /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ isNotEmpty() → dart.core::bool
       return !this.{dart.collection::ListMixin::isEmpty};
+    get /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ first() → dart.core::int* {
+      if(this.{dart.core::List::length}.{dart.core::num::==}(0))
+        throw dart._internal::IterableElementError::noElement();
+      return this.{dart.core::List::[]}(0);
+    }
+    set /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ first(generic-covariant-impl dart.core::int* value) → void {
+      if(this.{dart.core::List::length}.{dart.core::num::==}(0))
+        throw dart._internal::IterableElementError::noElement();
+      this.{dart.core::List::[]=}(0, value);
+    }
+    get /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ last() → dart.core::int* {
+      if(this.{dart.core::List::length}.{dart.core::num::==}(0))
+        throw dart._internal::IterableElementError::noElement();
+      return this.{dart.core::List::[]}(this.{dart.core::List::length}.{dart.core::num::-}(1));
+    }
+    set /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ last(generic-covariant-impl dart.core::int* value) → void {
+      if(this.{dart.core::List::length}.{dart.core::num::==}(0))
+        throw dart._internal::IterableElementError::noElement();
+      this.{dart.core::List::[]=}(this.{dart.core::List::length}.{dart.core::num::-}(1), value);
+    }
+    get /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ single() → dart.core::int* {
+      if(this.{dart.core::List::length}.{dart.core::num::==}(0))
+        throw dart._internal::IterableElementError::noElement();
+      if(this.{dart.core::List::length}.{dart.core::num::>}(1))
+        throw dart._internal::IterableElementError::tooMany();
+      return this.{dart.core::List::[]}(0);
+    }
     method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ contains(dart.core::Object? element) → dart.core::bool {
       dart.core::int length = this.{dart.core::List::length};
       for (dart.core::int i = 0; i.{dart.core::num::<}(length); i = i.{dart.core::num::+}(1)) {
@@ -181,6 +220,9 @@
       }
       return result;
     }
+    method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ add(generic-covariant-impl dart.core::int* element) → void {
+      this.{dart.core::List::[]=}(let final dart.core::int #t2 = this.{dart.core::List::length} in let final dart.core::int #t3 = this.{dart.core::List::length} = #t2.{dart.core::num::+}(1) in #t2, element);
+    }
     method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ addAll(generic-covariant-impl dart.core::Iterable<dart.core::int*> iterable) → void {
       dart.core::int i = this.{dart.core::List::length};
       {
@@ -238,10 +280,24 @@
         this.{dart.core::List::length} = retained.{dart.core::List::length};
       }
     }
+    method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ clear() → void {
+      this.{dart.core::List::length} = 0;
+    }
     method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ cast<R extends dart.core::Object? = dynamic>() → dart.core::List<main::_WithListMixin&Object&ListMixin::cast::R%>
       return dart.core::List::castFrom<dart.core::int*, main::_WithListMixin&Object&ListMixin::cast::R%>(this);
+    method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ removeLast() → dart.core::int* {
+      if(this.{dart.core::List::length}.{dart.core::num::==}(0)) {
+        throw dart._internal::IterableElementError::noElement();
+      }
+      dart.core::int* result = this.{dart.core::List::[]}(this.{dart.core::List::length}.{dart.core::num::-}(1));
+      this.{dart.core::List::length} = this.{dart.core::List::length}.{dart.core::num::-}(1);
+      return result;
+    }
     method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ sort([(dart.core::int*, dart.core::int*) →? dart.core::int compare = #C2]) → void {
-      dart._internal::Sort::sort<dart.core::int*>(this, let final (dart.core::int*, dart.core::int*) →? dart.core::int #t2 = compare in #t2.{dart.core::Object::==}(null) ?{(dart.core::int*, dart.core::int*) → dart.core::int} #C6 : #t2{(dart.core::int*, dart.core::int*) → dart.core::int});
+      dart._internal::Sort::sort<dart.core::int*>(this, let final (dart.core::int*, dart.core::int*) →? dart.core::int #t4 = compare in #t4.{dart.core::Object::==}(null) ?{(dart.core::int*, dart.core::int*) → dart.core::int} #C6 : #t4{(dart.core::int*, dart.core::int*) → dart.core::int});
+    }
+    static method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ _compareAny(dynamic a, dynamic b) → dart.core::int {
+      return dart.core::Comparable::compare(a as{ForNonNullableByDefault} dart.core::Comparable<dynamic>, b as{ForNonNullableByDefault} dart.core::Comparable<dynamic>);
     }
     method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ shuffle([dart.math::Random? random = #C2]) → void {
       random.{dart.core::Object::==}(null) ?{dart.math::Random} random = dart.math::Random::•() : null;
@@ -261,22 +317,22 @@
     }
     operator /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ +(generic-covariant-impl dart.core::List<dart.core::int*> other) → dart.core::List<dart.core::int*>
       return block {
-        final dart.core::List<dart.core::int*> #t3 = <dart.core::int*>[];
+        final dart.core::List<dart.core::int*> #t5 = <dart.core::int*>[];
         {
           dart.core::Iterator<dart.core::int*> :sync-for-iterator = this.{dart.core::Iterable::iterator};
           for (; :sync-for-iterator.{dart.core::Iterator::moveNext}(); ) {
-            final dart.core::int* #t4 = :sync-for-iterator.{dart.core::Iterator::current};
-            #t3.{dart.core::List::add}(#t4);
+            final dart.core::int* #t6 = :sync-for-iterator.{dart.core::Iterator::current};
+            #t5.{dart.core::List::add}(#t6);
           }
         }
         {
           dart.core::Iterator<dart.core::int*> :sync-for-iterator = other.{dart.core::Iterable::iterator};
           for (; :sync-for-iterator.{dart.core::Iterator::moveNext}(); ) {
-            final dart.core::int* #t5 = :sync-for-iterator.{dart.core::Iterator::current};
-            #t3.{dart.core::List::add}(#t5);
+            final dart.core::int* #t7 = :sync-for-iterator.{dart.core::Iterator::current};
+            #t5.{dart.core::List::add}(#t7);
           }
         }
-      } =>#t3;
+      } =>#t5;
     method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ sublist(dart.core::int start, [dart.core::int? end = #C2]) → dart.core::List<dart.core::int*> {
       dart.core::int listLength = this.{dart.core::List::length};
       end.{dart.core::num::==}(null) ?{dart.core::int} end = listLength : null;
@@ -296,7 +352,7 @@
       }
     }
     method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ fillRange(dart.core::int start, dart.core::int end, [generic-covariant-impl dart.core::int? fill = #C2]) → void {
-      dart.core::int* value = let dart.core::int? #t6 = fill in #t6.==(null) ?{dart.core::int*} #t6 : #t6{dart.core::int*};
+      dart.core::int* value = let dart.core::int? #t8 = fill in #t8.==(null) ?{dart.core::int*} #t8 : #t8{dart.core::int*};
       dart.core::RangeError::checkValidRange(start, end, this.{dart.core::List::length});
       for (dart.core::int i = start; i.{dart.core::num::<}(end); i = i.{dart.core::num::+}(1)) {
         this.{dart.core::List::[]=}(i, value);
@@ -474,7 +530,7 @@
           for (; :sync-for-iterator.{dart.core::Iterator::moveNext}(); ) {
             dart.core::int* element = :sync-for-iterator.{dart.core::Iterator::current};
             {
-              this.{dart.core::List::[]=}(let final dart.core::int #t7 = index in let final dart.core::int #t8 = index = #t7.{dart.core::num::+}(1) in #t7, element);
+              this.{dart.core::List::[]=}(let final dart.core::int #t9 = index in let final dart.core::int #t10 = index = #t9.{dart.core::num::+}(1) in #t9, element);
             }
           }
         }
@@ -482,62 +538,6 @@
     }
     get /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ reversed() → dart.core::Iterable<dart.core::int*>
       return new dart._internal::ReversedListIterable::•<dart.core::int*>(this);
-    method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ toString() → dart.core::String
-      return dart.collection::IterableBase::iterableToFullString(this, "[", "]");
-    abstract member-signature get _identityHashCode() → dart.core::int*;
-    abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*;
-    abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*;
-    abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*;
-    abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*;
-    abstract member-signature operator ==(dynamic other) → dart.core::bool*;
-    abstract member-signature get hashCode() → dart.core::int*;
-    abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic;
-    abstract member-signature get runtimeType() → dart.core::Type*;
-    abstract member-signature set length(dart.core::int* newLength) → void;
-    get /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ first() → dart.core::int* {
-      if(this.{dart.core::List::length}.{dart.core::num::==}(0))
-        throw dart._internal::IterableElementError::noElement();
-      return this.{dart.core::List::[]}(0);
-    }
-    set /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ first(generic-covariant-impl dart.core::int* value) → void {
-      if(this.{dart.core::List::length}.{dart.core::num::==}(0))
-        throw dart._internal::IterableElementError::noElement();
-      this.{dart.core::List::[]=}(0, value);
-    }
-    get /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ last() → dart.core::int* {
-      if(this.{dart.core::List::length}.{dart.core::num::==}(0))
-        throw dart._internal::IterableElementError::noElement();
-      return this.{dart.core::List::[]}(this.{dart.core::List::length}.{dart.core::num::-}(1));
-    }
-    set /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ last(generic-covariant-impl dart.core::int* value) → void {
-      if(this.{dart.core::List::length}.{dart.core::num::==}(0))
-        throw dart._internal::IterableElementError::noElement();
-      this.{dart.core::List::[]=}(this.{dart.core::List::length}.{dart.core::num::-}(1), value);
-    }
-    get /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ single() → dart.core::int* {
-      if(this.{dart.core::List::length}.{dart.core::num::==}(0))
-        throw dart._internal::IterableElementError::noElement();
-      if(this.{dart.core::List::length}.{dart.core::num::>}(1))
-        throw dart._internal::IterableElementError::tooMany();
-      return this.{dart.core::List::[]}(0);
-    }
-    method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ add(generic-covariant-impl dart.core::int* element) → void {
-      this.{dart.core::List::[]=}(let final dart.core::int #t9 = this.{dart.core::List::length} in let final dart.core::int #t10 = this.{dart.core::List::length} = #t9.{dart.core::num::+}(1) in #t9, element);
-    }
-    method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ clear() → void {
-      this.{dart.core::List::length} = 0;
-    }
-    method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ removeLast() → dart.core::int* {
-      if(this.{dart.core::List::length}.{dart.core::num::==}(0)) {
-        throw dart._internal::IterableElementError::noElement();
-      }
-      dart.core::int* result = this.{dart.core::List::[]}(this.{dart.core::List::length}.{dart.core::num::-}(1));
-      this.{dart.core::List::length} = this.{dart.core::List::length}.{dart.core::num::-}(1);
-      return result;
-    }
-    static method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ _compareAny(dynamic a, dynamic b) → dart.core::int {
-      return dart.core::Comparable::compare(a as{ForNonNullableByDefault} dart.core::Comparable<dynamic>, b as{ForNonNullableByDefault} dart.core::Comparable<dynamic>);
-    }
   }
   class WithListMixin extends main::_WithListMixin&Object&ListMixin {
     field dart.core::int* length = 2;
diff --git a/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_22.yaml.world.2.expect b/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_22.yaml.world.2.expect
index 2e894e1..29a46f9 100644
--- a/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_22.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_22.yaml.world.2.expect
@@ -10,6 +10,18 @@
     abstract member-signature get length() → dart.core::int*;
     abstract member-signature operator [](dart.core::int* index) → dart.core::int*;
     abstract member-signature operator []=(dart.core::int* index, generic-covariant-impl dart.core::int* value) → void;
+    method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ toString() → dart.core::String
+      return dart.collection::IterableBase::iterableToFullString(this, "[", "]");
+    abstract member-signature get _identityHashCode() → dart.core::int*;
+    abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*;
+    abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*;
+    abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*;
+    abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*;
+    abstract member-signature operator ==(dynamic other) → dart.core::bool*;
+    abstract member-signature get hashCode() → dart.core::int*;
+    abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic;
+    abstract member-signature get runtimeType() → dart.core::Type*;
+    abstract member-signature set length(dart.core::int* newLength) → void;
     get /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ iterator() → dart.core::Iterator<dart.core::int*>
       return new dart._internal::ListIterator::•<dart.core::int*>(this);
     method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ elementAt(dart.core::int index) → dart.core::int*
@@ -30,6 +42,33 @@
       return this.{dart.core::List::length}.{dart.core::num::==}(0);
     get /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ isNotEmpty() → dart.core::bool
       return !this.{dart.collection::ListMixin::isEmpty};
+    get /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ first() → dart.core::int* {
+      if(this.{dart.core::List::length}.{dart.core::num::==}(0))
+        throw dart._internal::IterableElementError::noElement();
+      return this.{dart.core::List::[]}(0);
+    }
+    set /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ first(generic-covariant-impl dart.core::int* value) → void {
+      if(this.{dart.core::List::length}.{dart.core::num::==}(0))
+        throw dart._internal::IterableElementError::noElement();
+      this.{dart.core::List::[]=}(0, value);
+    }
+    get /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ last() → dart.core::int* {
+      if(this.{dart.core::List::length}.{dart.core::num::==}(0))
+        throw dart._internal::IterableElementError::noElement();
+      return this.{dart.core::List::[]}(this.{dart.core::List::length}.{dart.core::num::-}(1));
+    }
+    set /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ last(generic-covariant-impl dart.core::int* value) → void {
+      if(this.{dart.core::List::length}.{dart.core::num::==}(0))
+        throw dart._internal::IterableElementError::noElement();
+      this.{dart.core::List::[]=}(this.{dart.core::List::length}.{dart.core::num::-}(1), value);
+    }
+    get /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ single() → dart.core::int* {
+      if(this.{dart.core::List::length}.{dart.core::num::==}(0))
+        throw dart._internal::IterableElementError::noElement();
+      if(this.{dart.core::List::length}.{dart.core::num::>}(1))
+        throw dart._internal::IterableElementError::tooMany();
+      return this.{dart.core::List::[]}(0);
+    }
     method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ contains(dart.core::Object? element) → dart.core::bool {
       dart.core::int length = this.{dart.core::List::length};
       for (dart.core::int i = 0; i.{dart.core::num::<}(length); i = i.{dart.core::num::+}(1)) {
@@ -181,6 +220,9 @@
       }
       return result;
     }
+    method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ add(generic-covariant-impl dart.core::int* element) → void {
+      this.{dart.core::List::[]=}(let final dart.core::int #t2 = this.{dart.core::List::length} in let final dart.core::int #t3 = this.{dart.core::List::length} = #t2.{dart.core::num::+}(1) in #t2, element);
+    }
     method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ addAll(generic-covariant-impl dart.core::Iterable<dart.core::int*> iterable) → void {
       dart.core::int i = this.{dart.core::List::length};
       {
@@ -238,10 +280,24 @@
         this.{dart.core::List::length} = retained.{dart.core::List::length};
       }
     }
+    method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ clear() → void {
+      this.{dart.core::List::length} = 0;
+    }
     method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ cast<R extends dart.core::Object? = dynamic>() → dart.core::List<main::_WithListMixin&Object&ListMixin::cast::R%>
       return dart.core::List::castFrom<dart.core::int*, main::_WithListMixin&Object&ListMixin::cast::R%>(this);
+    method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ removeLast() → dart.core::int* {
+      if(this.{dart.core::List::length}.{dart.core::num::==}(0)) {
+        throw dart._internal::IterableElementError::noElement();
+      }
+      dart.core::int* result = this.{dart.core::List::[]}(this.{dart.core::List::length}.{dart.core::num::-}(1));
+      this.{dart.core::List::length} = this.{dart.core::List::length}.{dart.core::num::-}(1);
+      return result;
+    }
     method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ sort([(dart.core::int*, dart.core::int*) →? dart.core::int compare = #C2]) → void {
-      dart._internal::Sort::sort<dart.core::int*>(this, let final (dart.core::int*, dart.core::int*) →? dart.core::int #t2 = compare in #t2.{dart.core::Object::==}(null) ?{(dart.core::int*, dart.core::int*) → dart.core::int} #C6 : #t2{(dart.core::int*, dart.core::int*) → dart.core::int});
+      dart._internal::Sort::sort<dart.core::int*>(this, let final (dart.core::int*, dart.core::int*) →? dart.core::int #t4 = compare in #t4.{dart.core::Object::==}(null) ?{(dart.core::int*, dart.core::int*) → dart.core::int} #C6 : #t4{(dart.core::int*, dart.core::int*) → dart.core::int});
+    }
+    static method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ _compareAny(dynamic a, dynamic b) → dart.core::int {
+      return dart.core::Comparable::compare(a as{ForNonNullableByDefault} dart.core::Comparable<dynamic>, b as{ForNonNullableByDefault} dart.core::Comparable<dynamic>);
     }
     method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ shuffle([dart.math::Random? random = #C2]) → void {
       random.{dart.core::Object::==}(null) ?{dart.math::Random} random = dart.math::Random::•() : null;
@@ -261,22 +317,22 @@
     }
     operator /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ +(generic-covariant-impl dart.core::List<dart.core::int*> other) → dart.core::List<dart.core::int*>
       return block {
-        final dart.core::List<dart.core::int*> #t3 = <dart.core::int*>[];
+        final dart.core::List<dart.core::int*> #t5 = <dart.core::int*>[];
         {
           dart.core::Iterator<dart.core::int*> :sync-for-iterator = this.{dart.core::Iterable::iterator};
           for (; :sync-for-iterator.{dart.core::Iterator::moveNext}(); ) {
-            final dart.core::int* #t4 = :sync-for-iterator.{dart.core::Iterator::current};
-            #t3.{dart.core::List::add}(#t4);
+            final dart.core::int* #t6 = :sync-for-iterator.{dart.core::Iterator::current};
+            #t5.{dart.core::List::add}(#t6);
           }
         }
         {
           dart.core::Iterator<dart.core::int*> :sync-for-iterator = other.{dart.core::Iterable::iterator};
           for (; :sync-for-iterator.{dart.core::Iterator::moveNext}(); ) {
-            final dart.core::int* #t5 = :sync-for-iterator.{dart.core::Iterator::current};
-            #t3.{dart.core::List::add}(#t5);
+            final dart.core::int* #t7 = :sync-for-iterator.{dart.core::Iterator::current};
+            #t5.{dart.core::List::add}(#t7);
           }
         }
-      } =>#t3;
+      } =>#t5;
     method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ sublist(dart.core::int start, [dart.core::int? end = #C2]) → dart.core::List<dart.core::int*> {
       dart.core::int listLength = this.{dart.core::List::length};
       end.{dart.core::num::==}(null) ?{dart.core::int} end = listLength : null;
@@ -296,7 +352,7 @@
       }
     }
     method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ fillRange(dart.core::int start, dart.core::int end, [generic-covariant-impl dart.core::int? fill = #C2]) → void {
-      dart.core::int* value = let dart.core::int? #t6 = fill in #t6.==(null) ?{dart.core::int*} #t6 : #t6{dart.core::int*};
+      dart.core::int* value = let dart.core::int? #t8 = fill in #t8.==(null) ?{dart.core::int*} #t8 : #t8{dart.core::int*};
       dart.core::RangeError::checkValidRange(start, end, this.{dart.core::List::length});
       for (dart.core::int i = start; i.{dart.core::num::<}(end); i = i.{dart.core::num::+}(1)) {
         this.{dart.core::List::[]=}(i, value);
@@ -474,7 +530,7 @@
           for (; :sync-for-iterator.{dart.core::Iterator::moveNext}(); ) {
             dart.core::int* element = :sync-for-iterator.{dart.core::Iterator::current};
             {
-              this.{dart.core::List::[]=}(let final dart.core::int #t7 = index in let final dart.core::int #t8 = index = #t7.{dart.core::num::+}(1) in #t7, element);
+              this.{dart.core::List::[]=}(let final dart.core::int #t9 = index in let final dart.core::int #t10 = index = #t9.{dart.core::num::+}(1) in #t9, element);
             }
           }
         }
@@ -482,62 +538,6 @@
     }
     get /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ reversed() → dart.core::Iterable<dart.core::int*>
       return new dart._internal::ReversedListIterable::•<dart.core::int*>(this);
-    method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ toString() → dart.core::String
-      return dart.collection::IterableBase::iterableToFullString(this, "[", "]");
-    abstract member-signature get _identityHashCode() → dart.core::int*;
-    abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*;
-    abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*;
-    abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*;
-    abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*;
-    abstract member-signature operator ==(dynamic other) → dart.core::bool*;
-    abstract member-signature get hashCode() → dart.core::int*;
-    abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic;
-    abstract member-signature get runtimeType() → dart.core::Type*;
-    abstract member-signature set length(dart.core::int* newLength) → void;
-    get /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ first() → dart.core::int* {
-      if(this.{dart.core::List::length}.{dart.core::num::==}(0))
-        throw dart._internal::IterableElementError::noElement();
-      return this.{dart.core::List::[]}(0);
-    }
-    set /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ first(generic-covariant-impl dart.core::int* value) → void {
-      if(this.{dart.core::List::length}.{dart.core::num::==}(0))
-        throw dart._internal::IterableElementError::noElement();
-      this.{dart.core::List::[]=}(0, value);
-    }
-    get /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ last() → dart.core::int* {
-      if(this.{dart.core::List::length}.{dart.core::num::==}(0))
-        throw dart._internal::IterableElementError::noElement();
-      return this.{dart.core::List::[]}(this.{dart.core::List::length}.{dart.core::num::-}(1));
-    }
-    set /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ last(generic-covariant-impl dart.core::int* value) → void {
-      if(this.{dart.core::List::length}.{dart.core::num::==}(0))
-        throw dart._internal::IterableElementError::noElement();
-      this.{dart.core::List::[]=}(this.{dart.core::List::length}.{dart.core::num::-}(1), value);
-    }
-    get /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ single() → dart.core::int* {
-      if(this.{dart.core::List::length}.{dart.core::num::==}(0))
-        throw dart._internal::IterableElementError::noElement();
-      if(this.{dart.core::List::length}.{dart.core::num::>}(1))
-        throw dart._internal::IterableElementError::tooMany();
-      return this.{dart.core::List::[]}(0);
-    }
-    method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ add(generic-covariant-impl dart.core::int* element) → void {
-      this.{dart.core::List::[]=}(let final dart.core::int #t9 = this.{dart.core::List::length} in let final dart.core::int #t10 = this.{dart.core::List::length} = #t9.{dart.core::num::+}(1) in #t9, element);
-    }
-    method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ clear() → void {
-      this.{dart.core::List::length} = 0;
-    }
-    method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ removeLast() → dart.core::int* {
-      if(this.{dart.core::List::length}.{dart.core::num::==}(0)) {
-        throw dart._internal::IterableElementError::noElement();
-      }
-      dart.core::int* result = this.{dart.core::List::[]}(this.{dart.core::List::length}.{dart.core::num::-}(1));
-      this.{dart.core::List::length} = this.{dart.core::List::length}.{dart.core::num::-}(1);
-      return result;
-    }
-    static method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ _compareAny(dynamic a, dynamic b) → dart.core::int {
-      return dart.core::Comparable::compare(a as{ForNonNullableByDefault} dart.core::Comparable<dynamic>, b as{ForNonNullableByDefault} dart.core::Comparable<dynamic>);
-    }
   }
   class WithListMixin extends main::_WithListMixin&Object&ListMixin {
     field dart.core::int* length = 2;
diff --git a/pkg/front_end/testcases/nnbd/mix_in_field.dart b/pkg/front_end/testcases/nnbd/mix_in_field.dart
new file mode 100644
index 0000000..e225fd7
--- /dev/null
+++ b/pkg/front_end/testcases/nnbd/mix_in_field.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";
+
+class Mixin {
+  FutureOr<Null> m;
+}
+
+class Class extends Object with Mixin {
+  test(dynamic t1) {
+    m = t1;
+  }
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/nnbd/mix_in_field.dart.outline.expect b/pkg/front_end/testcases/nnbd/mix_in_field.dart.outline.expect
new file mode 100644
index 0000000..8ff567c
--- /dev/null
+++ b/pkg/front_end/testcases/nnbd/mix_in_field.dart.outline.expect
@@ -0,0 +1,24 @@
+library /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+import "dart:async";
+
+class Mixin extends core::Object {
+  field FutureOr<core::Null?>m;
+  synthetic constructor •() → self::Mixin
+    ;
+}
+abstract class _Class&Object&Mixin = core::Object with self::Mixin /*isAnonymousMixin*/  {
+  synthetic constructor •() → self::_Class&Object&Mixin
+    : super core::Object::•()
+    ;
+}
+class Class extends self::_Class&Object&Mixin {
+  synthetic constructor •() → self::Class
+    ;
+  method test(dynamic t1) → dynamic
+    ;
+}
+static method main() → dynamic
+  ;
diff --git a/pkg/front_end/testcases/nnbd/mix_in_field.dart.strong.expect b/pkg/front_end/testcases/nnbd/mix_in_field.dart.strong.expect
new file mode 100644
index 0000000..41252e1
--- /dev/null
+++ b/pkg/front_end/testcases/nnbd/mix_in_field.dart.strong.expect
@@ -0,0 +1,26 @@
+library /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+import "dart:async";
+
+class Mixin extends core::Object {
+  field FutureOr<core::Null?>m = null;
+  synthetic constructor •() → self::Mixin
+    : super core::Object::•()
+    ;
+}
+abstract class _Class&Object&Mixin = core::Object with self::Mixin /*isAnonymousMixin*/  {
+  synthetic constructor •() → self::_Class&Object&Mixin
+    : super core::Object::•()
+    ;
+}
+class Class extends self::_Class&Object&Mixin {
+  synthetic constructor •() → self::Class
+    : super self::_Class&Object&Mixin::•()
+    ;
+  method test(dynamic t1) → dynamic {
+    this.{self::Mixin::m} = t1 as{TypeError,ForDynamic,ForNonNullableByDefault} FutureOr<core::Null?>;
+  }
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/nnbd/mix_in_field.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/mix_in_field.dart.strong.transformed.expect
new file mode 100644
index 0000000..002d4b2
--- /dev/null
+++ b/pkg/front_end/testcases/nnbd/mix_in_field.dart.strong.transformed.expect
@@ -0,0 +1,27 @@
+library /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+import "dart:async";
+
+class Mixin extends core::Object {
+  field FutureOr<core::Null?>m = null;
+  synthetic constructor •() → self::Mixin
+    : super core::Object::•()
+    ;
+}
+abstract class _Class&Object&Mixin extends core::Object implements self::Mixin /*isAnonymousMixin,isEliminatedMixin*/  {
+  field FutureOr<core::Null?>m = null;
+  synthetic constructor •() → self::_Class&Object&Mixin
+    : super core::Object::•()
+    ;
+}
+class Class extends self::_Class&Object&Mixin {
+  synthetic constructor •() → self::Class
+    : super self::_Class&Object&Mixin::•()
+    ;
+  method test(dynamic t1) → dynamic {
+    this.{self::Mixin::m} = t1 as{TypeError,ForDynamic,ForNonNullableByDefault} FutureOr<core::Null?>;
+  }
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/nnbd/mix_in_field.dart.textual_outline.expect b/pkg/front_end/testcases/nnbd/mix_in_field.dart.textual_outline.expect
new file mode 100644
index 0000000..4abf4aa
--- /dev/null
+++ b/pkg/front_end/testcases/nnbd/mix_in_field.dart.textual_outline.expect
@@ -0,0 +1,11 @@
+import "dart:async";
+
+class Mixin {
+  FutureOr<Null> m;
+}
+
+class Class extends Object with Mixin {
+  test(dynamic t1) {}
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/nnbd/mix_in_field.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/nnbd/mix_in_field.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..48243fb
--- /dev/null
+++ b/pkg/front_end/testcases/nnbd/mix_in_field.dart.textual_outline_modelled.expect
@@ -0,0 +1,11 @@
+import "dart:async";
+
+class Class extends Object with Mixin {
+  test(dynamic t1) {}
+}
+
+class Mixin {
+  FutureOr<Null> m;
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/nnbd/mix_in_field.dart.weak.expect b/pkg/front_end/testcases/nnbd/mix_in_field.dart.weak.expect
new file mode 100644
index 0000000..41252e1
--- /dev/null
+++ b/pkg/front_end/testcases/nnbd/mix_in_field.dart.weak.expect
@@ -0,0 +1,26 @@
+library /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+import "dart:async";
+
+class Mixin extends core::Object {
+  field FutureOr<core::Null?>m = null;
+  synthetic constructor •() → self::Mixin
+    : super core::Object::•()
+    ;
+}
+abstract class _Class&Object&Mixin = core::Object with self::Mixin /*isAnonymousMixin*/  {
+  synthetic constructor •() → self::_Class&Object&Mixin
+    : super core::Object::•()
+    ;
+}
+class Class extends self::_Class&Object&Mixin {
+  synthetic constructor •() → self::Class
+    : super self::_Class&Object&Mixin::•()
+    ;
+  method test(dynamic t1) → dynamic {
+    this.{self::Mixin::m} = t1 as{TypeError,ForDynamic,ForNonNullableByDefault} FutureOr<core::Null?>;
+  }
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/nnbd/mix_in_field.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/mix_in_field.dart.weak.transformed.expect
new file mode 100644
index 0000000..002d4b2
--- /dev/null
+++ b/pkg/front_end/testcases/nnbd/mix_in_field.dart.weak.transformed.expect
@@ -0,0 +1,27 @@
+library /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+import "dart:async";
+
+class Mixin extends core::Object {
+  field FutureOr<core::Null?>m = null;
+  synthetic constructor •() → self::Mixin
+    : super core::Object::•()
+    ;
+}
+abstract class _Class&Object&Mixin extends core::Object implements self::Mixin /*isAnonymousMixin,isEliminatedMixin*/  {
+  field FutureOr<core::Null?>m = null;
+  synthetic constructor •() → self::_Class&Object&Mixin
+    : super core::Object::•()
+    ;
+}
+class Class extends self::_Class&Object&Mixin {
+  synthetic constructor •() → self::Class
+    : super self::_Class&Object&Mixin::•()
+    ;
+  method test(dynamic t1) → dynamic {
+    this.{self::Mixin::m} = t1 as{TypeError,ForDynamic,ForNonNullableByDefault} FutureOr<core::Null?>;
+  }
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/nnbd_mixed/flutter_issue_63029/flutter_issue_63029.dart.weak.expect b/pkg/front_end/testcases/nnbd_mixed/flutter_issue_63029/flutter_issue_63029.dart.weak.expect
index 01c3d59..b915c3f 100644
--- a/pkg/front_end/testcases/nnbd_mixed/flutter_issue_63029/flutter_issue_63029.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/flutter_issue_63029/flutter_issue_63029.dart.weak.expect
@@ -22,7 +22,6 @@
   synthetic constructor •() → self::F
     : super self::_F&B&D::•()
     ;
-  abstract forwarding-stub operator ==(dynamic other) → core::bool*;
 }
 static method main() → dynamic {}
 
diff --git a/pkg/front_end/testcases/nnbd_mixed/flutter_issue_63029/flutter_issue_63029.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd_mixed/flutter_issue_63029/flutter_issue_63029.dart.weak.transformed.expect
index 2e167fd..891d0f2 100644
--- a/pkg/front_end/testcases/nnbd_mixed/flutter_issue_63029/flutter_issue_63029.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/flutter_issue_63029/flutter_issue_63029.dart.weak.transformed.expect
@@ -31,7 +31,6 @@
   synthetic constructor •() → self::F
     : super self::_F&B&D::•()
     ;
-  abstract forwarding-stub operator ==(dynamic other) → core::bool*;
 }
 static method main() → dynamic {}
 
diff --git a/pkg/front_end/testcases/nnbd_mixed/mixed_mixin.dart b/pkg/front_end/testcases/nnbd_mixed/mixed_mixin.dart
new file mode 100644
index 0000000..e9e928a
--- /dev/null
+++ b/pkg/front_end/testcases/nnbd_mixed/mixed_mixin.dart
@@ -0,0 +1,11 @@
+// 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.7
+
+import 'mixed_mixin_lib.dart';
+
+class C1 with B {}
+
+main() {}
diff --git a/pkg/front_end/testcases/nnbd_mixed/mixed_mixin.dart.textual_outline.expect b/pkg/front_end/testcases/nnbd_mixed/mixed_mixin.dart.textual_outline.expect
new file mode 100644
index 0000000..da386d8
--- /dev/null
+++ b/pkg/front_end/testcases/nnbd_mixed/mixed_mixin.dart.textual_outline.expect
@@ -0,0 +1,6 @@
+// @dart = 2.7
+import 'mixed_mixin_lib.dart';
+
+class C1 with B {}
+
+main() {}
diff --git a/pkg/front_end/testcases/nnbd_mixed/mixed_mixin.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/nnbd_mixed/mixed_mixin.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..da386d8
--- /dev/null
+++ b/pkg/front_end/testcases/nnbd_mixed/mixed_mixin.dart.textual_outline_modelled.expect
@@ -0,0 +1,6 @@
+// @dart = 2.7
+import 'mixed_mixin_lib.dart';
+
+class C1 with B {}
+
+main() {}
diff --git a/pkg/front_end/testcases/nnbd_mixed/mixed_mixin.dart.weak.expect b/pkg/front_end/testcases/nnbd_mixed/mixed_mixin.dart.weak.expect
new file mode 100644
index 0000000..d7ec8d8
--- /dev/null
+++ b/pkg/front_end/testcases/nnbd_mixed/mixed_mixin.dart.weak.expect
@@ -0,0 +1,76 @@
+library;
+import self as self;
+import "dart:core" as core;
+import "mixed_mixin_lib.dart" as mix;
+
+import "org-dartlang-testcase:///mixed_mixin_lib.dart";
+
+abstract class _C1&Object&B = core::Object with mix::B /*isAnonymousMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_C1&Object&B*
+    : super core::Object::•()
+    ;
+  abstract member-signature get _identityHashCode() → core::int*;
+  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*;
+  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*;
+  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*;
+  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*;
+  abstract member-signature operator ==(dynamic other) → core::bool*;
+  abstract member-signature get hashCode() → core::int*;
+  abstract member-signature method toString() → core::String*;
+  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic;
+  abstract member-signature get runtimeType() → core::Type*;
+}
+class C1 extends self::_C1&Object&B {
+  synthetic constructor •() → self::C1*
+    : super self::_C1&Object&B::•()
+    ;
+  abstract member-signature get a() → core::List<(core::int*) →* core::int*>*;
+  abstract member-signature set a(core::List<(core::int*) →* core::int*>* _) → void;
+  abstract member-signature method m((core::int*) →* core::int* x) → (core::int*) →* core::int*;
+}
+static method main() → dynamic {}
+
+library /*isNonNullableByDefault*/;
+import self as mix;
+import "dart:core" as core;
+import "mixed_mixin.dart" as self;
+
+import "org-dartlang-testcase:///mixed_mixin.dart";
+
+class B extends core::Object {
+  synthetic constructor •() → mix::B
+    : super core::Object::•()
+    ;
+  get a() → core::List<(core::int) → core::int>
+    return <(core::int) → core::int>[];
+  set a(core::List<(core::int) → core::int> _) → void {}
+  method m((core::int) → core::int x) → (core::int) → core::int
+    return x;
+}
+class Bq extends core::Object {
+  synthetic constructor •() → mix::Bq
+    : super core::Object::•()
+    ;
+  get a() → core::List<(core::int?) → core::int?>
+    return <(core::int?) → core::int?>[];
+  set a(core::List<(core::int?) → core::int?> _) → void {}
+  method m((core::int?) → core::int? x) → (core::int?) → core::int?
+    return x;
+}
+class DiBq1 extends self::C1 implements mix::Bq {
+  synthetic constructor •() → mix::DiBq1
+    : super self::C1::•()
+    ;
+  abstract member-signature get a() → core::List<(core::int?) → core::int?>;
+  abstract member-signature set a(core::List<(core::int?) → core::int?> _) → void;
+  abstract member-signature method m((core::int?) → core::int? x) → (core::int?) → core::int?;
+  abstract member-signature get _identityHashCode() → core::int;
+  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool;
+  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool;
+  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool;
+  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool;
+  abstract member-signature get hashCode() → core::int;
+  abstract member-signature method toString() → core::String;
+  abstract member-signature method noSuchMethod(core::Invocation invocation) → dynamic;
+  abstract member-signature get runtimeType() → core::Type;
+}
diff --git a/pkg/front_end/testcases/nnbd_mixed/mixed_mixin.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd_mixed/mixed_mixin.dart.weak.transformed.expect
new file mode 100644
index 0000000..04a978d
--- /dev/null
+++ b/pkg/front_end/testcases/nnbd_mixed/mixed_mixin.dart.weak.transformed.expect
@@ -0,0 +1,81 @@
+library;
+import self as self;
+import "dart:core" as core;
+import "mixed_mixin_lib.dart" as mix;
+
+import "org-dartlang-testcase:///mixed_mixin_lib.dart";
+
+abstract class _C1&Object&B extends core::Object implements mix::B /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
+  const synthetic constructor •() → self::_C1&Object&B*
+    : super core::Object::•()
+    ;
+  abstract member-signature get _identityHashCode() → core::int*;
+  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*;
+  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*;
+  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*;
+  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*;
+  abstract member-signature operator ==(dynamic other) → core::bool*;
+  abstract member-signature get hashCode() → core::int*;
+  abstract member-signature method toString() → core::String*;
+  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic;
+  abstract member-signature get runtimeType() → core::Type*;
+  get /*isNonNullableByDefault, from org-dartlang-testcase:///mixed_mixin_lib.dart */ a() → core::List<(core::int) → core::int>
+    return <(core::int) → core::int>[];
+  set /*isNonNullableByDefault, from org-dartlang-testcase:///mixed_mixin_lib.dart */ a(core::List<(core::int) → core::int> _) → void {}
+  method /*isNonNullableByDefault, from org-dartlang-testcase:///mixed_mixin_lib.dart */ m((core::int) → core::int x) → (core::int) → core::int
+    return x;
+}
+class C1 extends self::_C1&Object&B {
+  synthetic constructor •() → self::C1*
+    : super self::_C1&Object&B::•()
+    ;
+  abstract member-signature get a() → core::List<(core::int*) →* core::int*>*;
+  abstract member-signature set a(core::List<(core::int*) →* core::int*>* _) → void;
+  abstract member-signature method m((core::int*) →* core::int* x) → (core::int*) →* core::int*;
+}
+static method main() → dynamic {}
+
+library /*isNonNullableByDefault*/;
+import self as mix;
+import "dart:core" as core;
+import "mixed_mixin.dart" as self;
+
+import "org-dartlang-testcase:///mixed_mixin.dart";
+
+class B extends core::Object {
+  synthetic constructor •() → mix::B
+    : super core::Object::•()
+    ;
+  get a() → core::List<(core::int) → core::int>
+    return <(core::int) → core::int>[];
+  set a(core::List<(core::int) → core::int> _) → void {}
+  method m((core::int) → core::int x) → (core::int) → core::int
+    return x;
+}
+class Bq extends core::Object {
+  synthetic constructor •() → mix::Bq
+    : super core::Object::•()
+    ;
+  get a() → core::List<(core::int?) → core::int?>
+    return <(core::int?) → core::int?>[];
+  set a(core::List<(core::int?) → core::int?> _) → void {}
+  method m((core::int?) → core::int? x) → (core::int?) → core::int?
+    return x;
+}
+class DiBq1 extends self::C1 implements mix::Bq {
+  synthetic constructor •() → mix::DiBq1
+    : super self::C1::•()
+    ;
+  abstract member-signature get a() → core::List<(core::int?) → core::int?>;
+  abstract member-signature set a(core::List<(core::int?) → core::int?> _) → void;
+  abstract member-signature method m((core::int?) → core::int? x) → (core::int?) → core::int?;
+  abstract member-signature get _identityHashCode() → core::int;
+  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool;
+  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool;
+  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool;
+  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool;
+  abstract member-signature get hashCode() → core::int;
+  abstract member-signature method toString() → core::String;
+  abstract member-signature method noSuchMethod(core::Invocation invocation) → dynamic;
+  abstract member-signature get runtimeType() → core::Type;
+}
diff --git a/pkg/front_end/testcases/nnbd_mixed/mixed_mixin_lib.dart b/pkg/front_end/testcases/nnbd_mixed/mixed_mixin_lib.dart
new file mode 100644
index 0000000..e16f262
--- /dev/null
+++ b/pkg/front_end/testcases/nnbd_mixed/mixed_mixin_lib.dart
@@ -0,0 +1,19 @@
+// 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 'mixed_mixin.dart';
+
+class B {
+  List<int Function(int)> get a => [];
+  set a(List<int Function(int)> _) {}
+  int Function(int) m(int Function(int) x) => x;
+}
+
+class Bq {
+  List<int? Function(int?)> get a => [];
+  set a(List<int? Function(int?)> _) {}
+  int? Function(int?) m(int? Function(int?) x) => x;
+}
+
+class DiBq1 extends C1 implements Bq {}
diff --git a/pkg/front_end/testcases/nnbd_mixed/mixin_from_opt_in.dart.weak.expect b/pkg/front_end/testcases/nnbd_mixed/mixin_from_opt_in.dart.weak.expect
index c61a894..fcc25dd 100644
--- a/pkg/front_end/testcases/nnbd_mixed/mixin_from_opt_in.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/mixin_from_opt_in.dart.weak.expect
@@ -9,7 +9,6 @@
   const synthetic constructor •() → self::_Class&Object&Mixin*
     : super core::Object::•()
     ;
-  abstract member-signature method method(core::int* i) → core::int*;
   abstract member-signature get _identityHashCode() → core::int*;
   abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*;
   abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*;
diff --git a/pkg/front_end/testcases/nnbd_mixed/mixin_from_opt_in.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd_mixed/mixin_from_opt_in.dart.weak.transformed.expect
index 6379057..a57c491 100644
--- a/pkg/front_end/testcases/nnbd_mixed/mixin_from_opt_in.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/mixin_from_opt_in.dart.weak.transformed.expect
@@ -9,8 +9,6 @@
   const synthetic constructor •() → self::_Class&Object&Mixin*
     : super core::Object::•()
     ;
-  method /*isNonNullableByDefault, from org-dartlang-testcase:///mixin_from_opt_in_lib.dart */ method(core::int? i) → core::int
-    return let final core::int? #t1 = i in #t1.{core::num::==}(null) ?{core::int} 0 : #t1{core::int};
   abstract member-signature get _identityHashCode() → core::int*;
   abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*;
   abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*;
@@ -21,6 +19,8 @@
   abstract member-signature method toString() → core::String*;
   abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic;
   abstract member-signature get runtimeType() → core::Type*;
+  method /*isNonNullableByDefault, from org-dartlang-testcase:///mixin_from_opt_in_lib.dart */ method(core::int? i) → core::int
+    return let final core::int? #t1 = i in #t1.{core::num::==}(null) ?{core::int} 0 : #t1{core::int};
 }
 class Class extends self::_Class&Object&Mixin {
   synthetic constructor •() → self::Class*
diff --git a/pkg/front_end/testcases/nnbd_mixed/mixin_from_opt_out.dart.weak.expect b/pkg/front_end/testcases/nnbd_mixed/mixin_from_opt_out.dart.weak.expect
index cf985f7..5cb5315 100644
--- a/pkg/front_end/testcases/nnbd_mixed/mixin_from_opt_out.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/mixin_from_opt_out.dart.weak.expect
@@ -15,7 +15,6 @@
   synthetic constructor •() → self::Class
     : super self::_Class&Object&Mixin::•()
     ;
-  abstract forwarding-stub operator ==(dynamic other) → core::bool*;
 }
 static method main() → dynamic {
   core::print(new self::Class::•().{mix::Mixin::method}(null));
diff --git a/pkg/front_end/testcases/nnbd_mixed/mixin_from_opt_out.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd_mixed/mixin_from_opt_out.dart.weak.transformed.expect
index 1cfd5c0..7da8b41 100644
--- a/pkg/front_end/testcases/nnbd_mixed/mixin_from_opt_out.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/mixin_from_opt_out.dart.weak.transformed.expect
@@ -26,7 +26,6 @@
   synthetic constructor •() → self::Class
     : super self::_Class&Object&Mixin::•()
     ;
-  abstract forwarding-stub operator ==(dynamic other) → core::bool*;
 }
 static method main() → dynamic {
   core::print(new self::Class::•().{mix::Mixin::method}(null));
diff --git a/runtime/observatory/tests/service/get_retaining_path_rpc_test.dart b/runtime/observatory/tests/service/get_retaining_path_rpc_test.dart
index 1a036e5..73ac5bd 100644
--- a/runtime/observatory/tests/service/get_retaining_path_rpc_test.dart
+++ b/runtime/observatory/tests/service/get_retaining_path_rpc_test.dart
@@ -196,7 +196,10 @@
       'limit': 100,
     };
     var result = await isolate.invokeRpcNoUpgrade('getRetainingPath', params);
-    expect(result['gcRootType'], 'isolate_object store');
+    expect(
+        result['gcRootType'] == 'class table' ||
+            result['gcRootType'] == 'isolate_object store',
+        true);
     expect(result['elements'].length, 0);
   },
 ];
diff --git a/runtime/vm/clustered_snapshot.cc b/runtime/vm/clustered_snapshot.cc
index 637cf2e..956b5ee 100644
--- a/runtime/vm/clustered_snapshot.cc
+++ b/runtime/vm/clustered_snapshot.cc
@@ -3366,6 +3366,10 @@
   }
 };
 
+// Used to pack nullability into other serialized values.
+static constexpr intptr_t kNullabilityBitSize = 2;
+static constexpr intptr_t kNullabilityBitMask = (1 << kNullabilityBitSize) - 1;
+
 #if !defined(DART_PRECOMPILED_RUNTIME)
 class TypeSerializationCluster : public SerializationCluster {
  public:
@@ -3412,31 +3416,31 @@
   void WriteFill(Serializer* s) {
     intptr_t count = canonical_objects_.length();
     for (intptr_t i = 0; i < count; i++) {
-      TypePtr type = canonical_objects_[i];
-      AutoTraceObject(type);
-      WriteFromTo(type);
-      s->WriteTokenPosition(type->ptr()->token_pos_);
-      const uint8_t combined =
-          (type->ptr()->type_state_ << 4) | type->ptr()->nullability_;
-      ASSERT(type->ptr()->type_state_ == (combined >> 4));
-      ASSERT(type->ptr()->nullability_ == (combined & 0xf));
-      s->Write<uint8_t>(combined);
+      WriteType(s, canonical_objects_[i]);
     }
     count = objects_.length();
     for (intptr_t i = 0; i < count; i++) {
-      TypePtr type = objects_[i];
-      AutoTraceObject(type);
-      WriteFromTo(type);
-      s->WriteTokenPosition(type->ptr()->token_pos_);
-      const uint8_t combined =
-          (type->ptr()->type_state_ << 4) | type->ptr()->nullability_;
-      ASSERT(type->ptr()->type_state_ == (combined >> 4));
-      ASSERT(type->ptr()->nullability_ == (combined & 0xf));
-      s->Write<uint8_t>(combined);
+      WriteType(s, objects_[i]);
     }
   }
 
  private:
+  void WriteType(Serializer* s, TypePtr type) {
+    AutoTraceObject(type);
+    WriteFromTo(type);
+    s->WriteTokenPosition(type->ptr()->token_pos_);
+    ASSERT(type->ptr()->type_state_ < (1 << TypeLayout::kTypeStateBitSize));
+    ASSERT(type->ptr()->nullability_ < (1 << kNullabilityBitSize));
+    static_assert(TypeLayout::kTypeStateBitSize + kNullabilityBitSize <=
+                      kBitsPerByte * sizeof(uint8_t),
+                  "Cannot pack type_state_ and nullability_ into a uint8_t");
+    const uint8_t combined = (type->ptr()->type_state_ << kNullabilityBitSize) |
+                             type->ptr()->nullability_;
+    ASSERT_EQUAL(type->ptr()->type_state_, combined >> kNullabilityBitSize);
+    ASSERT_EQUAL(type->ptr()->nullability_, combined & kNullabilityBitMask);
+    s->Write<uint8_t>(combined);
+  }
+
   GrowableArray<TypePtr> canonical_objects_;
   GrowableArray<TypePtr> objects_;
 };
@@ -3468,26 +3472,12 @@
     for (intptr_t id = canonical_start_index_; id < canonical_stop_index_;
          id++) {
       TypePtr type = static_cast<TypePtr>(d->Ref(id));
-      bool is_canonical = true;
-      Deserializer::InitializeHeader(type, kTypeCid, Type::InstanceSize(),
-                                     is_canonical);
-      ReadFromTo(type);
-      type->ptr()->token_pos_ = d->ReadTokenPosition();
-      const uint8_t combined = d->Read<uint8_t>();
-      type->ptr()->type_state_ = combined >> 4;
-      type->ptr()->nullability_ = combined & 0xf;
+      ReadType(d, type, /*is_canonical=*/true);
     }
 
     for (intptr_t id = start_index_; id < stop_index_; id++) {
       TypePtr type = static_cast<TypePtr>(d->Ref(id));
-      bool is_canonical = false;
-      Deserializer::InitializeHeader(type, kTypeCid, Type::InstanceSize(),
-                                     is_canonical);
-      ReadFromTo(type);
-      type->ptr()->token_pos_ = d->ReadTokenPosition();
-      const uint8_t combined = d->Read<uint8_t>();
-      type->ptr()->type_state_ = combined >> 4;
-      type->ptr()->nullability_ = combined & 0xf;
+      ReadType(d, type, /*is_canonical=*/false);
     }
   }
 
@@ -3523,6 +3513,16 @@
   }
 
  private:
+  void ReadType(Deserializer* d, TypePtr type, bool is_canonical) {
+    Deserializer::InitializeHeader(type, kTypeCid, Type::InstanceSize(),
+                                   is_canonical);
+    ReadFromTo(type);
+    type->ptr()->token_pos_ = d->ReadTokenPosition();
+    const uint8_t combined = d->Read<uint8_t>();
+    type->ptr()->type_state_ = combined >> kNullabilityBitSize;
+    type->ptr()->nullability_ = combined & kNullabilityBitMask;
+  }
+
   intptr_t canonical_start_index_;
   intptr_t canonical_stop_index_;
 };
@@ -3659,10 +3659,15 @@
     s->Write<int32_t>(type->ptr()->parameterized_class_id_);
     s->WriteTokenPosition(type->ptr()->token_pos_);
     s->Write<int16_t>(type->ptr()->index_);
-    const uint8_t combined =
-        (type->ptr()->flags_ << 4) | type->ptr()->nullability_;
-    ASSERT(type->ptr()->flags_ == (combined >> 4));
-    ASSERT(type->ptr()->nullability_ == (combined & 0xf));
+    ASSERT(type->ptr()->flags_ < (1 << TypeParameterLayout::kFlagsBitSize));
+    ASSERT(type->ptr()->nullability_ < (1 << kNullabilityBitSize));
+    static_assert(TypeParameterLayout::kFlagsBitSize + kNullabilityBitSize <=
+                      kBitsPerByte * sizeof(uint8_t),
+                  "Cannot pack flags_ and nullability_ into a uint8_t");
+    const uint8_t combined = (type->ptr()->flags_ << kNullabilityBitSize) |
+                             type->ptr()->nullability_;
+    ASSERT_EQUAL(type->ptr()->flags_, combined >> kNullabilityBitSize);
+    ASSERT_EQUAL(type->ptr()->nullability_, combined & kNullabilityBitMask);
     s->Write<uint8_t>(combined);
   }
 
@@ -3752,8 +3757,8 @@
     type->ptr()->token_pos_ = d->ReadTokenPosition();
     type->ptr()->index_ = d->Read<int16_t>();
     const uint8_t combined = d->Read<uint8_t>();
-    type->ptr()->flags_ = combined >> 4;
-    type->ptr()->nullability_ = combined & 0xf;
+    type->ptr()->flags_ = combined >> kNullabilityBitSize;
+    type->ptr()->nullability_ = combined & kNullabilityBitMask;
   }
 
   intptr_t canonical_start_index_;
diff --git a/runtime/vm/isolate.cc b/runtime/vm/isolate.cc
index 5d87370..edeb8db 100644
--- a/runtime/vm/isolate.cc
+++ b/runtime/vm/isolate.cc
@@ -2729,8 +2729,11 @@
     isolate_object_store()->VisitObjectPointers(visitor);
   }
 
-  // Visit objects in the class table.
-  class_table()->VisitObjectPointers(visitor);
+  // Visit objects in the class table unless it's shared by the group.
+  // If it is shared, it is visited by IsolateGroup::VisitObjectPointers
+  if (group()->class_table() != class_table()) {
+    class_table()->VisitObjectPointers(visitor);
+  }
 
   // Visit objects in the field table.
   field_table()->VisitObjectPointers(visitor);
@@ -2895,6 +2898,11 @@
 
 void IsolateGroup::VisitObjectPointers(ObjectPointerVisitor* visitor,
                                        ValidationPolicy validate_frames) {
+  // if class table is shared, it's stored on isolate group
+  if (class_table() != nullptr) {
+    // Visit objects in the class table.
+    class_table()->VisitObjectPointers(visitor);
+  }
   for (Isolate* isolate : isolates_) {
     isolate->VisitObjectPointers(visitor, validate_frames);
   }
diff --git a/runtime/vm/object.h b/runtime/vm/object.h
index cd1e1f0..2be3ae6 100644
--- a/runtime/vm/object.h
+++ b/runtime/vm/object.h
@@ -900,6 +900,7 @@
   kNullable = 0,
   kNonNullable = 1,
   kLegacy = 2,
+  // Adjust kNullabilityBitSize in clustered_snapshot.cc if adding new values.
 };
 
 // Equality kind between types.
diff --git a/runtime/vm/raw_object.h b/runtime/vm/raw_object.h
index afcf33d..b410841 100644
--- a/runtime/vm/raw_object.h
+++ b/runtime/vm/raw_object.h
@@ -2190,9 +2190,12 @@
     kBeingFinalized,           // In the process of being finalized.
     kFinalizedInstantiated,    // Instantiated type ready for use.
     kFinalizedUninstantiated,  // Uninstantiated type ready for use.
+    // Adjust kTypeStateBitSize if more are added.
   };
 
  protected:
+  static constexpr intptr_t kTypeStateBitSize = 2;
+
   uword type_test_stub_entry_point_;  // Accessed from generated code.
   CodePtr type_test_stub_;  // Must be the last field, since subclasses use it
                             // in their VISIT_FROM.
@@ -2237,17 +2240,6 @@
 };
 
 class TypeParameterLayout : public AbstractTypeLayout {
- public:
-  enum {
-    kFinalizedBit = 0,
-    kGenericCovariantImplBit,
-    kDeclarationBit,
-  };
-  class FinalizedBit : public BitField<uint8_t, bool, kFinalizedBit, 1> {};
-  class GenericCovariantImplBit
-      : public BitField<uint8_t, bool, kGenericCovariantImplBit, 1> {};
-  class DeclarationBit : public BitField<uint8_t, bool, kDeclarationBit, 1> {};
-
  private:
   RAW_HEAP_OBJECT_IMPLEMENTATION(TypeParameter);
 
@@ -2263,6 +2255,13 @@
   uint8_t flags_;
   int8_t nullability_;
 
+  using FinalizedBit = BitField<decltype(flags_), bool, 0, 1>;
+  using GenericCovariantImplBit =
+      BitField<decltype(flags_), bool, FinalizedBit::kNextBit, 1>;
+  using DeclarationBit =
+      BitField<decltype(flags_), bool, GenericCovariantImplBit::kNextBit, 1>;
+  static constexpr intptr_t kFlagsBitSize = DeclarationBit::kNextBit;
+
   ObjectPtr* to_snapshot(Snapshot::Kind kind) { return to(); }
 
   friend class CidRewriteVisitor;
diff --git a/tests/language/language.status b/tests/language/language.status
index 3764b4c..277066a 100644
--- a/tests/language/language.status
+++ b/tests/language/language.status
@@ -7,6 +7,7 @@
 
 [ $compiler != fasta ]
 nonfunction_type_aliases/*: Skip # github.com/dart-lang/language/issues/115
+value_class/*: Skip # Internship, jlcontreras
 
 [ $compiler == none ]
 invalid_returns/*: Skip # https://github.com/dart-lang/sdk/issues/34013
diff --git a/tests/language/value_class/creates_constructor_test.dart b/tests/language/value_class/creates_constructor_test.dart
new file mode 100644
index 0000000..3ad9379
--- /dev/null
+++ b/tests/language/value_class/creates_constructor_test.dart
@@ -0,0 +1,16 @@
+// 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.
+
+// A value class will automatically create an empty constructor if there is none yet
+
+const String valueClass = "valueClass";
+
+@valueClass
+class Animal {
+  final int numberOfLegs;
+}
+
+main() {
+  var cat = Animal(numberOfLegs: 4);
+}
diff --git a/tests/language/value_class/creates_equals_test.dart b/tests/language/value_class/creates_equals_test.dart
new file mode 100644
index 0000000..c62683f
--- /dev/null
+++ b/tests/language/value_class/creates_equals_test.dart
@@ -0,0 +1,25 @@
+// 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.
+
+// Equals operator == by value should be implicitly created
+
+import 'package:expect/expect.dart';
+
+// A value class will automatically create an == operator if there is none yet
+
+const String valueClass = "valueClass";
+
+@valueClass
+class Animal {
+  final int numberOfLegs;
+}
+
+main() {
+  var cat = Animal(numberOfLegs: 4);
+  var dog = Animal(numberOfLegs: 4);
+  var human = Animal(numberOfLegs: 2);
+
+  Expect.equals(true, cat == dog);
+  Expect.equals(false, cat == human);
+}
diff --git a/tests/language/value_class/has_non_final_field_error_test.dart b/tests/language/value_class/has_non_final_field_error_test.dart
new file mode 100644
index 0000000..148471e
--- /dev/null
+++ b/tests/language/value_class/has_non_final_field_error_test.dart
@@ -0,0 +1,14 @@
+// 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.
+
+// It is a compile-time error if a value class has a non-final instance variable.
+
+const String valueClass = "valueClass";
+
+@valueClass
+class Animal {
+  int numberOfLegs;
+  //^
+  // [cfe] unspecified
+}
diff --git a/tests/language/value_class/inherits_non_value_class_error_test.dart b/tests/language/value_class/inherits_non_value_class_error_test.dart
new file mode 100644
index 0000000..9f65fca
--- /dev/null
+++ b/tests/language/value_class/inherits_non_value_class_error_test.dart
@@ -0,0 +1,14 @@
+// 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.
+
+// Value classes are always leaves in the tree of types
+
+const String valueClass = "valueClass";
+
+@valueClass
+class Animal {}
+
+class Cat implements Animal {}
+//                   ^^^^^^
+// [cfe] unspecified
diff --git a/tools/VERSION b/tools/VERSION
index 4340efe..937cb75 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
 MAJOR 2
 MINOR 10
 PATCH 0
-PRERELEASE 17
+PRERELEASE 18
 PRERELEASE_PATCH 0
\ No newline at end of file