[parser] Add beginConstructor

This adds a beginConstructor listener method and calls this before constructor instead of beginMethod. This makes it possible for listeners to fully separate handling of constructors from methods.

Change-Id: Ibcbcf76ccb6d97314d395c4c0efcb4f9d073519a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/462140
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
diff --git a/pkg/_fe_analyzer_shared/lib/src/parser/forwarding_listener.dart b/pkg/_fe_analyzer_shared/lib/src/parser/forwarding_listener.dart
index f2a434c..fe27755 100644
--- a/pkg/_fe_analyzer_shared/lib/src/parser/forwarding_listener.dart
+++ b/pkg/_fe_analyzer_shared/lib/src/parser/forwarding_listener.dart
@@ -136,6 +136,31 @@
   }
 
   @override
+  void beginConstructor(
+    DeclarationKind declarationKind,
+    Token? augmentToken,
+    Token? externalToken,
+    Token? staticToken,
+    Token? covariantToken,
+    Token? varFinalOrConst,
+    Token? getOrSet,
+    Token name,
+    String? enclosingDeclarationName,
+  ) {
+    listener?.beginConstructor(
+      declarationKind,
+      augmentToken,
+      externalToken,
+      staticToken,
+      covariantToken,
+      varFinalOrConst,
+      getOrSet,
+      name,
+      enclosingDeclarationName,
+    );
+  }
+
+  @override
   void beginConstructorReference(Token start) {
     listener?.beginConstructorReference(start);
   }
diff --git a/pkg/_fe_analyzer_shared/lib/src/parser/listener.dart b/pkg/_fe_analyzer_shared/lib/src/parser/listener.dart
index 300a23a..9bbd860 100644
--- a/pkg/_fe_analyzer_shared/lib/src/parser/listener.dart
+++ b/pkg/_fe_analyzer_shared/lib/src/parser/listener.dart
@@ -1160,7 +1160,6 @@
 
   /// Handle the beginning of a class-like method declaration.  Substructures:
   /// - metadata
-  /// Note that this is ended with [endConstructor] or [endMethod].
   void beginMethod(
     DeclarationKind declarationKind,
     Token? augmentToken,
@@ -1194,6 +1193,20 @@
     logEvent("Method");
   }
 
+  /// Handle the beginning of a constructor declaration.  Substructures:
+  /// - metadata
+  void beginConstructor(
+    DeclarationKind declarationKind,
+    Token? augmentToken,
+    Token? externalToken,
+    Token? staticToken,
+    Token? covariantToken,
+    Token? varFinalOrConst,
+    Token? getOrSet,
+    Token name,
+    String? enclosingDeclarationName,
+  ) {}
+
   /// Handle the end of a constructor declaration.  Substructures:
   /// - metadata
   /// - return type
diff --git a/pkg/_fe_analyzer_shared/lib/src/parser/parser_impl.dart b/pkg/_fe_analyzer_shared/lib/src/parser/parser_impl.dart
index b0f577d..c3ba3b2 100644
--- a/pkg/_fe_analyzer_shared/lib/src/parser/parser_impl.dart
+++ b/pkg/_fe_analyzer_shared/lib/src/parser/parser_impl.dart
@@ -5622,19 +5622,33 @@
       }
     }
 
-    // TODO(danrubel): Consider parsing the name before calling beginMethod
-    // rather than passing the name token into beginMethod.
-    listener.beginMethod(
-      kind,
-      augmentToken,
-      externalToken,
-      staticToken,
-      covariantToken,
-      varFinalOrConst,
-      getOrSet,
-      name,
-      enclosingDeclarationName,
-    );
+    if (isConstructor) {
+      listener.beginConstructor(
+        kind,
+        augmentToken,
+        externalToken,
+        staticToken,
+        covariantToken,
+        varFinalOrConst,
+        getOrSet,
+        name,
+        enclosingDeclarationName,
+      );
+    } else {
+      // TODO(danrubel): Consider parsing the name before calling beginMethod
+      // rather than passing the name token into beginMethod.
+      listener.beginMethod(
+        kind,
+        augmentToken,
+        externalToken,
+        staticToken,
+        covariantToken,
+        varFinalOrConst,
+        getOrSet,
+        name,
+        enclosingDeclarationName,
+      );
+    }
 
     Token token = typeInfo.parseType(beforeType, this);
     assert(
diff --git a/pkg/analyzer/lib/src/fasta/ast_builder.dart b/pkg/analyzer/lib/src/fasta/ast_builder.dart
index 111b3c4..5e225b0 100644
--- a/pkg/analyzer/lib/src/fasta/ast_builder.dart
+++ b/pkg/analyzer/lib/src/fasta/ast_builder.dart
@@ -341,6 +341,31 @@
   void beginConstantPattern(Token? constKeyword) {}
 
   @override
+  void beginConstructor(
+    DeclarationKind declarationKind,
+    Token? augmentToken,
+    Token? externalToken,
+    Token? staticToken,
+    Token? covariantToken,
+    Token? varFinalOrConst,
+    Token? getOrSet,
+    Token name,
+    String? enclosingDeclarationName,
+  ) {
+    _beginMethod(
+      declarationKind,
+      augmentToken,
+      externalToken,
+      staticToken,
+      covariantToken,
+      varFinalOrConst,
+      getOrSet,
+      name,
+      enclosingDeclarationName,
+    );
+  }
+
+  @override
   void beginEnumDeclaration(
     Token beginToken,
     Token? augmentToken,
@@ -471,33 +496,17 @@
     Token name,
     String? enclosingDeclarationName,
   ) {
-    _Modifiers modifiers = _Modifiers();
-    if (augmentToken != null) {
-      assert(augmentToken.isModifier);
-      modifiers.augmentKeyword = augmentToken;
-    }
-    if (externalToken != null) {
-      assert(externalToken.isModifier);
-      modifiers.externalKeyword = externalToken;
-    }
-    if (staticToken != null) {
-      assert(staticToken.isModifier);
-      var builder = _classLikeBuilder;
-      if (builder is! _ClassDeclarationBuilder ||
-          builder.name.lexeme != name.lexeme ||
-          getOrSet != null) {
-        modifiers.staticKeyword = staticToken;
-      }
-    }
-    if (covariantToken != null) {
-      assert(covariantToken.isModifier);
-      modifiers.covariantKeyword = covariantToken;
-    }
-    if (varFinalOrConst != null) {
-      assert(varFinalOrConst.isModifier);
-      modifiers.finalConstOrVarKeyword = varFinalOrConst;
-    }
-    push(modifiers);
+    _beginMethod(
+      declarationKind,
+      augmentToken,
+      externalToken,
+      staticToken,
+      covariantToken,
+      varFinalOrConst,
+      getOrSet,
+      name,
+      enclosingDeclarationName,
+    );
   }
 
   @override
@@ -5888,6 +5897,46 @@
     }
   }
 
+  void _beginMethod(
+    DeclarationKind declarationKind,
+    Token? augmentToken,
+    Token? externalToken,
+    Token? staticToken,
+    Token? covariantToken,
+    Token? varFinalOrConst,
+    Token? getOrSet,
+    Token name,
+    String? enclosingDeclarationName,
+  ) {
+    _Modifiers modifiers = _Modifiers();
+    if (augmentToken != null) {
+      assert(augmentToken.isModifier);
+      modifiers.augmentKeyword = augmentToken;
+    }
+    if (externalToken != null) {
+      assert(externalToken.isModifier);
+      modifiers.externalKeyword = externalToken;
+    }
+    if (staticToken != null) {
+      assert(staticToken.isModifier);
+      var builder = _classLikeBuilder;
+      if (builder is! _ClassDeclarationBuilder ||
+          builder.name.lexeme != name.lexeme ||
+          getOrSet != null) {
+        modifiers.staticKeyword = staticToken;
+      }
+    }
+    if (covariantToken != null) {
+      assert(covariantToken.isModifier);
+      modifiers.covariantKeyword = covariantToken;
+    }
+    if (varFinalOrConst != null) {
+      assert(varFinalOrConst.isModifier);
+      modifiers.finalConstOrVarKeyword = varFinalOrConst;
+    }
+    push(modifiers);
+  }
+
   ConstructorDeclarationImpl _buildConstructorDeclaration({
     required Token beginToken,
     required Token endToken,
diff --git a/pkg/analyzer/test/generated/parser_fasta_listener.dart b/pkg/analyzer/test/generated/parser_fasta_listener.dart
index 409ca7b..71bd344 100644
--- a/pkg/analyzer/test/generated/parser_fasta_listener.dart
+++ b/pkg/analyzer/test/generated/parser_fasta_listener.dart
@@ -164,6 +164,32 @@
   }
 
   @override
+  void beginConstructor(
+    DeclarationKind declarationKind,
+    Token? augmentToken,
+    Token? externalToken,
+    Token? staticToken,
+    Token? covariantToken,
+    Token? varFinalOrConst,
+    Token? getOrSet,
+    Token name,
+    String? enclosingDeclarationName,
+  ) {
+    super.beginConstructor(
+      declarationKind,
+      augmentToken,
+      externalToken,
+      staticToken,
+      covariantToken,
+      varFinalOrConst,
+      getOrSet,
+      name,
+      enclosingDeclarationName,
+    );
+    begin('Method');
+  }
+
+  @override
   void beginConstructorReference(Token start) {
     super.beginConstructorReference(start);
     begin('ConstructorReference');
diff --git a/pkg/front_end/lib/src/source/outline_builder.dart b/pkg/front_end/lib/src/source/outline_builder.dart
index 607e289..7486bf7 100644
--- a/pkg/front_end/lib/src/source/outline_builder.dart
+++ b/pkg/front_end/lib/src/source/outline_builder.dart
@@ -2181,6 +2181,31 @@
   }
 
   @override
+  void beginConstructor(
+    DeclarationKind declarationKind,
+    Token? augmentToken,
+    Token? externalToken,
+    Token? staticToken,
+    Token? covariantToken,
+    Token? varFinalOrConst,
+    Token? getOrSet,
+    Token name,
+    String? enclosingDeclarationName,
+  ) {
+    _beginMethod(
+      declarationKind,
+      augmentToken,
+      externalToken,
+      staticToken,
+      covariantToken,
+      varFinalOrConst,
+      getOrSet,
+      name,
+      enclosingDeclarationName,
+    );
+  }
+
+  @override
   void beginMethod(
     DeclarationKind declarationKind,
     Token? augmentToken,
@@ -2192,6 +2217,30 @@
     Token name,
     String? enclosingDeclarationName,
   ) {
+    _beginMethod(
+      declarationKind,
+      augmentToken,
+      externalToken,
+      staticToken,
+      covariantToken,
+      varFinalOrConst,
+      getOrSet,
+      name,
+      enclosingDeclarationName,
+    );
+  }
+
+  void _beginMethod(
+    DeclarationKind declarationKind,
+    Token? augmentToken,
+    Token? externalToken,
+    Token? staticToken,
+    Token? covariantToken,
+    Token? varFinalOrConst,
+    Token? getOrSet,
+    Token name,
+    String? enclosingDeclarationName,
+  ) {
     inConstructor = name.lexeme == enclosingDeclarationName && getOrSet == null;
     DeclarationContext declarationContext;
     switch (declarationKind) {
diff --git a/pkg/front_end/lib/src/util/parser_ast.dart b/pkg/front_end/lib/src/util/parser_ast.dart
index 356cc5d..10ed15a 100644
--- a/pkg/front_end/lib/src/util/parser_ast.dart
+++ b/pkg/front_end/lib/src/util/parser_ast.dart
@@ -1776,8 +1776,6 @@
           // beginExtensionDeclarationPrelude,
           // beginClassOrNamedMixinApplicationPrelude
           // beginTopLevelMember or beginUncategorizedTopLevelDeclaration.
-        } else if (begin == "Method" && end == "Constructor") {
-          // beginMethod is ended by one of endMethod or endConstructor.
         } else if (begin == "Fields" && end == "TopLevelFields") {
           // beginFields is ended by one of endTopLevelFields or endFields.
         } else if (begin == "ForStatement" && end == "ForIn") {
diff --git a/pkg/front_end/lib/src/util/parser_ast_helper.dart b/pkg/front_end/lib/src/util/parser_ast_helper.dart
index 748f3fb..21530f9 100644
--- a/pkg/front_end/lib/src/util/parser_ast_helper.dart
+++ b/pkg/front_end/lib/src/util/parser_ast_helper.dart
@@ -1925,6 +1925,33 @@
   }
 
   @override
+  void beginConstructor(
+    DeclarationKind declarationKind,
+    Token? augmentToken,
+    Token? externalToken,
+    Token? staticToken,
+    Token? covariantToken,
+    Token? varFinalOrConst,
+    Token? getOrSet,
+    Token name,
+    String? enclosingDeclarationName,
+  ) {
+    ConstructorBegin data = new ConstructorBegin(
+      ParserAstType.BEGIN,
+      declarationKind: declarationKind,
+      augmentToken: augmentToken,
+      externalToken: externalToken,
+      staticToken: staticToken,
+      covariantToken: covariantToken,
+      varFinalOrConst: varFinalOrConst,
+      getOrSet: getOrSet,
+      name: name,
+      enclosingDeclarationName: enclosingDeclarationName,
+    );
+    seen(data);
+  }
+
+  @override
   void endConstructor(
     DeclarationKind kind,
     Token beginToken,
@@ -7077,6 +7104,47 @@
   R accept<R>(ParserAstVisitor<R> v) => v.visitMethodEnd(this);
 }
 
+class ConstructorBegin extends ParserAstNode {
+  final DeclarationKind declarationKind;
+  final Token? augmentToken;
+  final Token? externalToken;
+  final Token? staticToken;
+  final Token? covariantToken;
+  final Token? varFinalOrConst;
+  final Token? getOrSet;
+  final Token name;
+  final String? enclosingDeclarationName;
+
+  ConstructorBegin(
+    ParserAstType type, {
+    required this.declarationKind,
+    this.augmentToken,
+    this.externalToken,
+    this.staticToken,
+    this.covariantToken,
+    this.varFinalOrConst,
+    this.getOrSet,
+    required this.name,
+    this.enclosingDeclarationName,
+  }) : super("Constructor", type);
+
+  @override
+  Map<String, Object?> get deprecatedArguments => {
+    "declarationKind": declarationKind,
+    "augmentToken": augmentToken,
+    "externalToken": externalToken,
+    "staticToken": staticToken,
+    "covariantToken": covariantToken,
+    "varFinalOrConst": varFinalOrConst,
+    "getOrSet": getOrSet,
+    "name": name,
+    "enclosingDeclarationName": enclosingDeclarationName,
+  };
+
+  @override
+  R accept<R>(ParserAstVisitor<R> v) => v.visitConstructorBegin(this);
+}
+
 class ConstructorEnd extends ParserAstNode
     implements BeginAndEndTokenParserAstNode {
   final DeclarationKind kind;
@@ -10716,6 +10784,7 @@
   R visitMemberEnd(MemberEnd node);
   R visitMethodBegin(MethodBegin node);
   R visitMethodEnd(MethodEnd node);
+  R visitConstructorBegin(ConstructorBegin node);
   R visitConstructorEnd(ConstructorEnd node);
   R visitMetadataStarBegin(MetadataStarBegin node);
   R visitMetadataStarEnd(MetadataStarEnd node);
@@ -11581,6 +11650,9 @@
   void visitMethodEnd(MethodEnd node) => node.visitChildren(this);
 
   @override
+  void visitConstructorBegin(ConstructorBegin node) => node.visitChildren(this);
+
+  @override
   void visitConstructorEnd(ConstructorEnd node) => node.visitChildren(this);
 
   @override
@@ -13016,6 +13088,10 @@
   Future<void> visitMethodEnd(MethodEnd node) => defaultNode(node);
 
   @override
+  Future<void> visitConstructorBegin(ConstructorBegin node) =>
+      defaultNode(node);
+
+  @override
   Future<void> visitConstructorEnd(ConstructorEnd node) => defaultNode(node);
 
   @override
diff --git a/pkg/front_end/parser_testcases/declaring_constructors/class_primary_constructor_body_error.dart.expect b/pkg/front_end/parser_testcases/declaring_constructors/class_primary_constructor_body_error.dart.expect
index fbd146b..b451225 100644
--- a/pkg/front_end/parser_testcases/declaring_constructors/class_primary_constructor_body_error.dart.expect
+++ b/pkg/front_end/parser_testcases/declaring_constructors/class_primary_constructor_body_error.dart.expect
@@ -79,7 +79,7 @@
         beginMetadataStar(this)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, this, C2)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, this, C2)
             handleNoType({)
             handleRecoverableError(Message[Template(ExpectedIdentifierButGotKeyword), 'this' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: this}], this, this)
             handleIdentifier(this, methodDeclaration)
@@ -167,7 +167,7 @@
         beginMetadataStar(this)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, this, C4)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, this, C4)
             handleNoType({)
             handleRecoverableError(Message[Template(ExpectedIdentifierButGotKeyword), 'this' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: this}], this, this)
             handleIdentifier(this, methodDeclaration)
diff --git a/pkg/front_end/parser_testcases/declaring_constructors/class_primary_constructor_body_error.dart.intertwined.expect b/pkg/front_end/parser_testcases/declaring_constructors/class_primary_constructor_body_error.dart.intertwined.expect
index 7a49598..57d94a1 100644
--- a/pkg/front_end/parser_testcases/declaring_constructors/class_primary_constructor_body_error.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/declaring_constructors/class_primary_constructor_body_error.dart.intertwined.expect
@@ -106,7 +106,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseMethod({, null, null, null, null, null, null, null, {, NoType(), null, this, DeclarationKind.Class, C2, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, this, C2)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, this, C2)
                 listener: handleNoType({)
                 ensureIdentifierPotentiallyRecovered({, methodDeclaration, false)
                   reportRecoverableErrorWithToken(this, Template(ExpectedIdentifierButGotKeyword))
@@ -275,7 +275,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseMethod({, null, null, null, null, null, null, null, {, NoType(), null, this, DeclarationKind.Class, C4, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, this, C4)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, this, C4)
                 listener: handleNoType({)
                 ensureIdentifierPotentiallyRecovered({, methodDeclaration, false)
                   reportRecoverableErrorWithToken(this, Template(ExpectedIdentifierButGotKeyword))
diff --git a/pkg/front_end/parser_testcases/declaring_constructors/declaring_parameter_error.dart.expect b/pkg/front_end/parser_testcases/declaring_constructors/declaring_parameter_error.dart.expect
index 5c51915..f40ee99 100644
--- a/pkg/front_end/parser_testcases/declaring_constructors/declaring_parameter_error.dart.expect
+++ b/pkg/front_end/parser_testcases/declaring_constructors/declaring_parameter_error.dart.expect
@@ -173,7 +173,7 @@
         beginMetadataStar(C)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, C, C)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, C, C)
             handleNoType({)
             handleIdentifier(C, methodDeclaration)
             handleNoTypeVariables(()
@@ -835,7 +835,7 @@
         beginMetadataStar(ET)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.ExtensionType, null, null, null, null, null, null, ET, ET)
+          beginConstructor(DeclarationKind.ExtensionType, null, null, null, null, null, null, ET, ET)
             handleNoType({)
             handleIdentifier(ET, methodDeclaration)
             handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/declaring_constructors/declaring_parameter_error.dart.intertwined.expect b/pkg/front_end/parser_testcases/declaring_constructors/declaring_parameter_error.dart.intertwined.expect
index 6535f51..9ed79fa 100644
--- a/pkg/front_end/parser_testcases/declaring_constructors/declaring_parameter_error.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/declaring_constructors/declaring_parameter_error.dart.intertwined.expect
@@ -77,7 +77,7 @@
               listener: beginMember()
               isReservedKeyword(()
               parseMethod({, null, null, null, null, null, null, null, {, NoType(), null, C, DeclarationKind.Class, C, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, C, C)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, C, C)
                 listener: handleNoType({)
                 ensureIdentifierPotentiallyRecovered({, methodDeclaration, false)
                   listener: handleIdentifier(C, methodDeclaration)
@@ -1130,7 +1130,7 @@
               listener: beginMember()
               isReservedKeyword(()
               parseMethod({, null, null, null, null, null, null, null, {, NoType(), null, ET, DeclarationKind.ExtensionType, ET, false)
-                listener: beginMethod(DeclarationKind.ExtensionType, null, null, null, null, null, null, ET, ET)
+                listener: beginConstructor(DeclarationKind.ExtensionType, null, null, null, null, null, null, ET, ET)
                 listener: handleNoType({)
                 ensureIdentifierPotentiallyRecovered({, methodDeclaration, false)
                   listener: handleIdentifier(ET, methodDeclaration)
diff --git a/pkg/front_end/parser_testcases/declaring_constructors/extension_type_primary_constructor_body_error.dart.expect b/pkg/front_end/parser_testcases/declaring_constructors/extension_type_primary_constructor_body_error.dart.expect
index f4dc99b..2f130e5 100644
--- a/pkg/front_end/parser_testcases/declaring_constructors/extension_type_primary_constructor_body_error.dart.expect
+++ b/pkg/front_end/parser_testcases/declaring_constructors/extension_type_primary_constructor_body_error.dart.expect
@@ -98,7 +98,7 @@
         beginMetadataStar(this)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.ExtensionType, null, null, null, null, null, null, this, E2)
+          beginConstructor(DeclarationKind.ExtensionType, null, null, null, null, null, null, this, E2)
             handleNoType({)
             handleRecoverableError(Message[Template(ExpectedIdentifierButGotKeyword), 'this' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: this}], this, this)
             handleIdentifier(this, methodDeclaration)
@@ -200,7 +200,7 @@
         beginMetadataStar(this)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.ExtensionType, null, null, null, null, null, null, this, E4)
+          beginConstructor(DeclarationKind.ExtensionType, null, null, null, null, null, null, this, E4)
             handleNoType({)
             handleRecoverableError(Message[Template(ExpectedIdentifierButGotKeyword), 'this' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: this}], this, this)
             handleIdentifier(this, methodDeclaration)
diff --git a/pkg/front_end/parser_testcases/declaring_constructors/extension_type_primary_constructor_body_error.dart.intertwined.expect b/pkg/front_end/parser_testcases/declaring_constructors/extension_type_primary_constructor_body_error.dart.intertwined.expect
index cde698f..f5c7288 100644
--- a/pkg/front_end/parser_testcases/declaring_constructors/extension_type_primary_constructor_body_error.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/declaring_constructors/extension_type_primary_constructor_body_error.dart.intertwined.expect
@@ -122,7 +122,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseMethod({, null, null, null, null, null, null, null, {, NoType(), null, this, DeclarationKind.ExtensionType, E2, false)
-                listener: beginMethod(DeclarationKind.ExtensionType, null, null, null, null, null, null, this, E2)
+                listener: beginConstructor(DeclarationKind.ExtensionType, null, null, null, null, null, null, this, E2)
                 listener: handleNoType({)
                 ensureIdentifierPotentiallyRecovered({, methodDeclaration, false)
                   reportRecoverableErrorWithToken(this, Template(ExpectedIdentifierButGotKeyword))
@@ -307,7 +307,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseMethod({, null, null, null, null, null, null, null, {, NoType(), null, this, DeclarationKind.ExtensionType, E4, false)
-                listener: beginMethod(DeclarationKind.ExtensionType, null, null, null, null, null, null, this, E4)
+                listener: beginConstructor(DeclarationKind.ExtensionType, null, null, null, null, null, null, this, E4)
                 listener: handleNoType({)
                 ensureIdentifierPotentiallyRecovered({, methodDeclaration, false)
                   reportRecoverableErrorWithToken(this, Template(ExpectedIdentifierButGotKeyword))
diff --git a/pkg/front_end/parser_testcases/dot_shorthands/const_no_identifier_recovery.dart.expect b/pkg/front_end/parser_testcases/dot_shorthands/const_no_identifier_recovery.dart.expect
index dfaa4c1..f5f4be4 100644
--- a/pkg/front_end/parser_testcases/dot_shorthands/const_no_identifier_recovery.dart.expect
+++ b/pkg/front_end/parser_testcases/dot_shorthands/const_no_identifier_recovery.dart.expect
@@ -32,7 +32,7 @@
         beginMetadataStar(const)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, const, null, Color, Color)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, const, null, Color, Color)
             handleNoType(const)
             handleIdentifier(Color, methodDeclaration)
             handleIdentifier(red, methodDeclarationContinuation)
diff --git a/pkg/front_end/parser_testcases/dot_shorthands/const_no_identifier_recovery.dart.intertwined.expect b/pkg/front_end/parser_testcases/dot_shorthands/const_no_identifier_recovery.dart.intertwined.expect
index cdc3183..f702dc4 100644
--- a/pkg/front_end/parser_testcases/dot_shorthands/const_no_identifier_recovery.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/dot_shorthands/const_no_identifier_recovery.dart.intertwined.expect
@@ -53,7 +53,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseMethod(;, null, null, null, null, null, null, const, const, NoType(), null, Color, DeclarationKind.Class, Color, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, const, null, Color, Color)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, const, null, Color, Color)
                 listener: handleNoType(const)
                 ensureIdentifierPotentiallyRecovered(const, methodDeclaration, false)
                   listener: handleIdentifier(Color, methodDeclaration)
diff --git a/pkg/front_end/parser_testcases/dot_shorthands/const_property_recovery.dart.expect b/pkg/front_end/parser_testcases/dot_shorthands/const_property_recovery.dart.expect
index 603b8d1..3637e2a 100644
--- a/pkg/front_end/parser_testcases/dot_shorthands/const_property_recovery.dart.expect
+++ b/pkg/front_end/parser_testcases/dot_shorthands/const_property_recovery.dart.expect
@@ -32,7 +32,7 @@
         beginMetadataStar(const)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, const, null, Color, Color)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, const, null, Color, Color)
             handleNoType(const)
             handleIdentifier(Color, methodDeclaration)
             handleIdentifier(red, methodDeclarationContinuation)
diff --git a/pkg/front_end/parser_testcases/dot_shorthands/const_property_recovery.dart.intertwined.expect b/pkg/front_end/parser_testcases/dot_shorthands/const_property_recovery.dart.intertwined.expect
index 48e8898..ec96619 100644
--- a/pkg/front_end/parser_testcases/dot_shorthands/const_property_recovery.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/dot_shorthands/const_property_recovery.dart.intertwined.expect
@@ -53,7 +53,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseMethod(;, null, null, null, null, null, null, const, const, NoType(), null, Color, DeclarationKind.Class, Color, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, const, null, Color, Color)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, const, null, Color, Color)
                 listener: handleNoType(const)
                 ensureIdentifierPotentiallyRecovered(const, methodDeclaration, false)
                   listener: handleIdentifier(Color, methodDeclaration)
diff --git a/pkg/front_end/parser_testcases/enhanced_enums/entries_with_type_arguments.dart.expect b/pkg/front_end/parser_testcases/enhanced_enums/entries_with_type_arguments.dart.expect
index 29148bf..8792a67 100644
--- a/pkg/front_end/parser_testcases/enhanced_enums/entries_with_type_arguments.dart.expect
+++ b/pkg/front_end/parser_testcases/enhanced_enums/entries_with_type_arguments.dart.expect
@@ -83,7 +83,7 @@
         beginMetadataStar(const)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
+          beginConstructor(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
             handleNoType(const)
             handleIdentifier(E, methodDeclaration)
             handleNoTypeVariables(()
@@ -97,7 +97,7 @@
         beginMetadataStar(const)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
+          beginConstructor(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
             handleNoType(const)
             handleIdentifier(E, methodDeclaration)
             handleIdentifier(named, methodDeclarationContinuation)
diff --git a/pkg/front_end/parser_testcases/enhanced_enums/entries_with_type_arguments.dart.intertwined.expect b/pkg/front_end/parser_testcases/enhanced_enums/entries_with_type_arguments.dart.intertwined.expect
index f2d93698..2493d75 100644
--- a/pkg/front_end/parser_testcases/enhanced_enums/entries_with_type_arguments.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/enhanced_enums/entries_with_type_arguments.dart.intertwined.expect
@@ -127,7 +127,7 @@
             listener: endMetadataStar(0)
           listener: beginMember()
           parseMethod(;, null, null, null, null, null, null, const, const, NoType(), null, E, DeclarationKind.Enum, E, false)
-            listener: beginMethod(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
+            listener: beginConstructor(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
             listener: handleNoType(const)
             ensureIdentifierPotentiallyRecovered(const, methodDeclaration, false)
               listener: handleIdentifier(E, methodDeclaration)
@@ -156,7 +156,7 @@
             listener: endMetadataStar(0)
           listener: beginMember()
           parseMethod(;, null, null, null, null, null, null, const, const, NoType(), null, E, DeclarationKind.Enum, E, false)
-            listener: beginMethod(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
+            listener: beginConstructor(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
             listener: handleNoType(const)
             ensureIdentifierPotentiallyRecovered(const, methodDeclaration, false)
               listener: handleIdentifier(E, methodDeclaration)
diff --git a/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_01.dart.expect b/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_01.dart.expect
index 70c396a..aa9ffe7 100644
--- a/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_01.dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_01.dart.expect
@@ -25,7 +25,7 @@
         beginMetadataStar(C)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, C, C)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, C, C)
             handleNoType({)
             handleIdentifier(C, methodDeclaration)
             handleNoTypeVariables(()
@@ -126,7 +126,7 @@
         beginMetadataStar(D)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, D, D)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, D, D)
             handleNoType({)
             handleIdentifier(D, methodDeclaration)
             handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_01.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_01.dart.intertwined.expect
index 944f27d..5c50ddc 100644
--- a/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_01.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_01.dart.intertwined.expect
@@ -35,7 +35,7 @@
               listener: beginMember()
               isReservedKeyword(()
               parseMethod({, null, null, null, null, null, null, null, {, NoType(), null, C, DeclarationKind.Class, C, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, C, C)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, C, C)
                 listener: handleNoType({)
                 ensureIdentifierPotentiallyRecovered({, methodDeclaration, false)
                   listener: handleIdentifier(C, methodDeclaration)
@@ -308,7 +308,7 @@
               listener: beginMember()
               isReservedKeyword(()
               parseMethod({, null, null, null, null, null, null, null, {, NoType(), null, D, DeclarationKind.Class, D, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, D, D)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, D, D)
                 listener: handleNoType({)
                 ensureIdentifierPotentiallyRecovered({, methodDeclaration, false)
                   listener: handleIdentifier(D, methodDeclaration)
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 df41900..a90a611 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
@@ -137,7 +137,7 @@
         beginMetadataStar(foo)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, foo, Foo)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, foo, Foo)
             handleNoType({)
             handleIdentifier(foo, methodDeclaration)
             handleIdentifier(x, methodDeclarationContinuation)
@@ -155,7 +155,7 @@
         beginMetadataStar(foo)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, foo, Foo)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, foo, Foo)
             handleNoType(})
             handleIdentifier(foo, methodDeclaration)
             handleIdentifier(x, methodDeclarationContinuation)
@@ -182,7 +182,7 @@
         beginMetadataStar(foo)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, foo, Foo)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, foo, Foo)
             handleNoType(})
             handleIdentifier(foo, methodDeclaration)
             handleNoTypeVariables(()
@@ -240,7 +240,7 @@
         beginMetadataStar(get)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, get, Foo, Foo)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, get, Foo, Foo)
             handleNoType(})
             handleIdentifier(Foo, methodDeclaration)
             handleIdentifier(X, methodDeclarationContinuation)
@@ -259,7 +259,7 @@
         beginMetadataStar(get)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, get, Foo, Foo)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, get, Foo, Foo)
             handleNoType(;)
             handleIdentifier(Foo, methodDeclaration)
             handleIdentifier(X, methodDeclarationContinuation)
@@ -281,7 +281,7 @@
         beginMetadataStar(get)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, get, Foo, Foo)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, get, Foo, Foo)
             handleNoType(})
             handleIdentifier(Foo, methodDeclaration)
             handleNoTypeVariables(:)
@@ -307,7 +307,7 @@
         beginMetadataStar(get)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, get, Foo, Foo)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, get, Foo, Foo)
             handleNoType(;)
             handleIdentifier(Foo, methodDeclaration)
             handleIdentifier(X, methodDeclarationContinuation)
@@ -375,7 +375,7 @@
         beginMetadataStar(set)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, set, Foo, Foo)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, set, Foo, Foo)
             handleNoType(})
             handleIdentifier(Foo, methodDeclaration)
             handleIdentifier(X, methodDeclarationContinuation)
@@ -394,7 +394,7 @@
         beginMetadataStar(set)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, set, Foo, Foo)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, set, Foo, Foo)
             handleNoType(;)
             handleIdentifier(Foo, methodDeclaration)
             handleIdentifier(X, methodDeclarationContinuation)
@@ -416,7 +416,7 @@
         beginMetadataStar(set)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, set, Foo, Foo)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, set, Foo, Foo)
             handleNoType(})
             handleIdentifier(Foo, methodDeclaration)
             handleNoTypeVariables(:)
@@ -442,7 +442,7 @@
         beginMetadataStar(set)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, set, Foo, Foo)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, set, Foo, Foo)
             handleNoType(;)
             handleIdentifier(Foo, methodDeclaration)
             handleIdentifier(X, methodDeclarationContinuation)
@@ -473,7 +473,7 @@
         beginMetadataStar(external)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, external, null, null, null, null, Foo, Foo)
+          beginConstructor(DeclarationKind.Class, null, external, null, null, null, null, Foo, Foo)
             handleNoType(external)
             handleIdentifier(Foo, methodDeclaration)
             handleNoTypeVariables(()
@@ -497,7 +497,7 @@
         beginMetadataStar(external)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, external, null, null, null, null, Foo, Foo)
+          beginConstructor(DeclarationKind.Class, null, external, null, null, null, null, Foo, Foo)
             handleNoType(external)
             handleIdentifier(Foo, methodDeclaration)
             handleIdentifier(X, methodDeclarationContinuation)
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 83184dd..388cc48 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
@@ -35,7 +35,7 @@
               listener: beginMember()
               isReservedKeyword(.)
               parseMethod({, null, null, null, null, null, null, null, {, NoType(), null, foo, DeclarationKind.Class, Foo, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, foo, Foo)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, foo, Foo)
                 listener: handleNoType({)
                 ensureIdentifierPotentiallyRecovered({, methodDeclaration, false)
                   listener: handleIdentifier(foo, methodDeclaration)
@@ -73,7 +73,7 @@
               listener: beginMember()
               isReservedKeyword(.)
               parseMethod(}, null, null, null, null, null, null, null, }, NoType(), null, foo, DeclarationKind.Class, Foo, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, foo, Foo)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, foo, Foo)
                 listener: handleNoType(})
                 ensureIdentifierPotentiallyRecovered(}, methodDeclaration, false)
                   listener: handleIdentifier(foo, methodDeclaration)
@@ -138,7 +138,7 @@
               listener: beginMember()
               isReservedKeyword(()
               parseMethod(}, null, null, null, null, null, null, null, }, NoType(), null, foo, DeclarationKind.Class, Foo, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, foo, Foo)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, foo, Foo)
                 listener: handleNoType(})
                 ensureIdentifierPotentiallyRecovered(}, methodDeclaration, false)
                   listener: handleIdentifier(foo, methodDeclaration)
@@ -283,7 +283,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseMethod(}, null, null, null, null, null, null, null, }, NoType(), get, Foo, DeclarationKind.Class, Foo, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, get, Foo, Foo)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, get, Foo, Foo)
                 listener: handleNoType(})
                 ensureIdentifierPotentiallyRecovered(get, methodDeclaration, false)
                   listener: handleIdentifier(Foo, methodDeclaration)
@@ -332,7 +332,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseMethod(;, null, null, null, null, null, null, null, ;, NoType(), get, Foo, DeclarationKind.Class, Foo, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, get, Foo, Foo)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, get, Foo, Foo)
                 listener: handleNoType(;)
                 ensureIdentifierPotentiallyRecovered(get, methodDeclaration, false)
                   listener: handleIdentifier(Foo, methodDeclaration)
@@ -388,7 +388,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseMethod(}, null, null, null, null, null, null, null, }, NoType(), get, Foo, DeclarationKind.Class, Foo, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, get, Foo, Foo)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, get, Foo, Foo)
                 listener: handleNoType(})
                 ensureIdentifierPotentiallyRecovered(get, methodDeclaration, false)
                   listener: handleIdentifier(Foo, methodDeclaration)
@@ -460,7 +460,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseMethod(;, null, null, null, null, null, null, null, ;, NoType(), get, Foo, DeclarationKind.Class, Foo, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, get, Foo, Foo)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, get, Foo, Foo)
                 listener: handleNoType(;)
                 ensureIdentifierPotentiallyRecovered(get, methodDeclaration, false)
                   listener: handleIdentifier(Foo, methodDeclaration)
@@ -640,7 +640,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseMethod(}, null, null, null, null, null, null, null, }, NoType(), set, Foo, DeclarationKind.Class, Foo, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, set, Foo, Foo)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, set, Foo, Foo)
                 listener: handleNoType(})
                 ensureIdentifierPotentiallyRecovered(set, methodDeclaration, false)
                   listener: handleIdentifier(Foo, methodDeclaration)
@@ -689,7 +689,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseMethod(;, null, null, null, null, null, null, null, ;, NoType(), set, Foo, DeclarationKind.Class, Foo, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, set, Foo, Foo)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, set, Foo, Foo)
                 listener: handleNoType(;)
                 ensureIdentifierPotentiallyRecovered(set, methodDeclaration, false)
                   listener: handleIdentifier(Foo, methodDeclaration)
@@ -745,7 +745,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseMethod(}, null, null, null, null, null, null, null, }, NoType(), set, Foo, DeclarationKind.Class, Foo, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, set, Foo, Foo)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, set, Foo, Foo)
                 listener: handleNoType(})
                 ensureIdentifierPotentiallyRecovered(set, methodDeclaration, false)
                   listener: handleIdentifier(Foo, methodDeclaration)
@@ -817,7 +817,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseMethod(;, null, null, null, null, null, null, null, ;, NoType(), set, Foo, DeclarationKind.Class, Foo, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, set, Foo, Foo)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, set, Foo, Foo)
                 listener: handleNoType(;)
                 ensureIdentifierPotentiallyRecovered(set, methodDeclaration, false)
                   listener: handleIdentifier(Foo, methodDeclaration)
@@ -901,7 +901,7 @@
               listener: beginMember()
               isReservedKeyword(()
               parseMethod(}, null, null, external, null, null, null, null, external, NoType(), null, Foo, DeclarationKind.Class, Foo, false)
-                listener: beginMethod(DeclarationKind.Class, null, external, null, null, null, null, Foo, Foo)
+                listener: beginConstructor(DeclarationKind.Class, null, external, null, null, null, null, Foo, Foo)
                 listener: handleNoType(external)
                 ensureIdentifierPotentiallyRecovered(external, methodDeclaration, false)
                   listener: handleIdentifier(Foo, methodDeclaration)
@@ -960,7 +960,7 @@
               listener: beginMember()
               isReservedKeyword(.)
               parseMethod(;, null, null, external, null, null, null, null, external, NoType(), null, Foo, DeclarationKind.Class, Foo, false)
-                listener: beginMethod(DeclarationKind.Class, null, external, null, null, null, null, Foo, Foo)
+                listener: beginConstructor(DeclarationKind.Class, null, external, null, null, null, null, Foo, Foo)
                 listener: handleNoType(external)
                 ensureIdentifierPotentiallyRecovered(external, methodDeclaration, false)
                   listener: handleIdentifier(Foo, methodDeclaration)
diff --git a/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_bad_name_get.crash_dart.expect b/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_bad_name_get.crash_dart.expect
index c31b7c4..951b09d 100644
--- a/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_bad_name_get.crash_dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_bad_name_get.crash_dart.expect
@@ -45,7 +45,7 @@
         beginMetadataStar(get)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, get, foo, Foo)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, get, foo, Foo)
             handleNoType({)
             handleIdentifier(foo, methodDeclaration)
             handleIdentifier(x, methodDeclarationContinuation)
@@ -64,7 +64,7 @@
         beginMetadataStar(get)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, get, foo, Foo)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, get, foo, Foo)
             handleNoType(})
             handleIdentifier(foo, methodDeclaration)
             handleIdentifier(x, methodDeclarationContinuation)
@@ -92,7 +92,7 @@
         beginMetadataStar(get)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, get, foo, Foo)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, get, foo, Foo)
             handleNoType(})
             handleIdentifier(foo, methodDeclaration)
             handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_bad_name_get.crash_dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_bad_name_get.crash_dart.intertwined.expect
index f4a7e67..1b06a3a 100644
--- a/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_bad_name_get.crash_dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_bad_name_get.crash_dart.intertwined.expect
@@ -34,7 +34,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseMethod({, null, null, null, null, null, null, null, {, NoType(), get, foo, DeclarationKind.Class, Foo, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, get, foo, Foo)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, get, foo, Foo)
                 listener: handleNoType({)
                 ensureIdentifierPotentiallyRecovered(get, methodDeclaration, false)
                   listener: handleIdentifier(foo, methodDeclaration)
@@ -73,7 +73,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseMethod(}, null, null, null, null, null, null, null, }, NoType(), get, foo, DeclarationKind.Class, Foo, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, get, foo, Foo)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, get, foo, Foo)
                 listener: handleNoType(})
                 ensureIdentifierPotentiallyRecovered(get, methodDeclaration, false)
                   listener: handleIdentifier(foo, methodDeclaration)
@@ -139,7 +139,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseMethod(}, null, null, null, null, null, null, null, }, NoType(), get, foo, DeclarationKind.Class, Foo, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, get, foo, Foo)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, get, foo, Foo)
                 listener: handleNoType(})
                 ensureIdentifierPotentiallyRecovered(get, methodDeclaration, false)
                   listener: handleIdentifier(foo, methodDeclaration)
diff --git a/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_bad_name_return_type.crash_dart.expect b/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_bad_name_return_type.crash_dart.expect
index 7e79e15..91c48f0 100644
--- a/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_bad_name_return_type.crash_dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_bad_name_return_type.crash_dart.expect
@@ -41,7 +41,7 @@
         beginMetadataStar(void)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, foo, Foo)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, foo, Foo)
             handleVoidKeyword(void)
             handleIdentifier(foo, methodDeclaration)
             handleIdentifier(x, methodDeclarationContinuation)
@@ -60,7 +60,7 @@
         beginMetadataStar(void)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, foo, Foo)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, foo, Foo)
             handleVoidKeyword(void)
             handleIdentifier(foo, methodDeclaration)
             handleIdentifier(x, methodDeclarationContinuation)
@@ -88,7 +88,7 @@
         beginMetadataStar(void)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, foo, Foo)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, foo, Foo)
             handleVoidKeyword(void)
             handleIdentifier(foo, methodDeclaration)
             handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_bad_name_return_type.crash_dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_bad_name_return_type.crash_dart.intertwined.expect
index d07101d..06a5010 100644
--- a/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_bad_name_return_type.crash_dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_bad_name_return_type.crash_dart.intertwined.expect
@@ -34,7 +34,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseMethod({, null, null, null, null, null, null, null, {, VoidType(), null, foo, DeclarationKind.Class, Foo, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, foo, Foo)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, foo, Foo)
                 listener: handleVoidKeyword(void)
                 ensureIdentifierPotentiallyRecovered(void, methodDeclaration, false)
                   listener: handleIdentifier(foo, methodDeclaration)
@@ -73,7 +73,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseMethod(}, null, null, null, null, null, null, null, }, VoidType(), null, foo, DeclarationKind.Class, Foo, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, foo, Foo)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, foo, Foo)
                 listener: handleVoidKeyword(void)
                 ensureIdentifierPotentiallyRecovered(void, methodDeclaration, false)
                   listener: handleIdentifier(foo, methodDeclaration)
@@ -139,7 +139,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseMethod(}, null, null, null, null, null, null, null, }, VoidType(), null, foo, DeclarationKind.Class, Foo, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, foo, Foo)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, foo, Foo)
                 listener: handleVoidKeyword(void)
                 ensureIdentifierPotentiallyRecovered(void, methodDeclaration, false)
                   listener: handleIdentifier(foo, methodDeclaration)
diff --git a/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_bad_name_set.crash_dart.expect b/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_bad_name_set.crash_dart.expect
index d5a5f0d..b7ebdaa 100644
--- a/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_bad_name_set.crash_dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_bad_name_set.crash_dart.expect
@@ -41,7 +41,7 @@
         beginMetadataStar(set)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, set, foo, Foo)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, set, foo, Foo)
             handleNoType({)
             handleIdentifier(foo, methodDeclaration)
             handleIdentifier(x, methodDeclarationContinuation)
@@ -60,7 +60,7 @@
         beginMetadataStar(set)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, set, foo, Foo)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, set, foo, Foo)
             handleNoType(})
             handleIdentifier(foo, methodDeclaration)
             handleIdentifier(x, methodDeclarationContinuation)
@@ -88,7 +88,7 @@
         beginMetadataStar(set)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, set, foo, Foo)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, set, foo, Foo)
             handleNoType(})
             handleIdentifier(foo, methodDeclaration)
             handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_bad_name_set.crash_dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_bad_name_set.crash_dart.intertwined.expect
index 23c0627..6024d7c 100644
--- a/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_bad_name_set.crash_dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_bad_name_set.crash_dart.intertwined.expect
@@ -34,7 +34,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseMethod({, null, null, null, null, null, null, null, {, NoType(), set, foo, DeclarationKind.Class, Foo, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, set, foo, Foo)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, set, foo, Foo)
                 listener: handleNoType({)
                 ensureIdentifierPotentiallyRecovered(set, methodDeclaration, false)
                   listener: handleIdentifier(foo, methodDeclaration)
@@ -73,7 +73,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseMethod(}, null, null, null, null, null, null, null, }, NoType(), set, foo, DeclarationKind.Class, Foo, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, set, foo, Foo)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, set, foo, Foo)
                 listener: handleNoType(})
                 ensureIdentifierPotentiallyRecovered(set, methodDeclaration, false)
                   listener: handleIdentifier(foo, methodDeclaration)
@@ -139,7 +139,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseMethod(}, null, null, null, null, null, null, null, }, NoType(), set, foo, DeclarationKind.Class, Foo, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, set, foo, Foo)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, set, foo, Foo)
                 listener: handleNoType(})
                 ensureIdentifierPotentiallyRecovered(set, methodDeclaration, false)
                   listener: handleIdentifier(foo, methodDeclaration)
diff --git a/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_get.dart.expect b/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_get.dart.expect
index ad4bd5d..737c624 100644
--- a/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_get.dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_get.dart.expect
@@ -58,7 +58,7 @@
         beginMetadataStar(get)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, get, Foo, Foo)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, get, Foo, Foo)
             handleNoType(})
             handleIdentifier(Foo, methodDeclaration)
             handleNoTypeVariables(()
@@ -84,7 +84,7 @@
         beginMetadataStar(get)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, get, Foo, Foo)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, get, Foo, Foo)
             handleNoType(})
             handleIdentifier(Foo, methodDeclaration)
             handleIdentifier(x, methodDeclarationContinuation)
@@ -102,7 +102,7 @@
         beginMetadataStar(get)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, get, Foo, Foo)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, get, Foo, Foo)
             handleNoType(})
             handleIdentifier(Foo, methodDeclaration)
             handleIdentifier(x, methodDeclarationContinuation)
diff --git a/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_get.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_get.dart.intertwined.expect
index f6a9261..75a81a5 100644
--- a/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_get.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_get.dart.intertwined.expect
@@ -69,7 +69,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseMethod(}, null, null, null, null, null, null, null, }, NoType(), get, Foo, DeclarationKind.Class, Foo, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, get, Foo, Foo)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, get, Foo, Foo)
                 listener: handleNoType(})
                 ensureIdentifierPotentiallyRecovered(get, methodDeclaration, false)
                   listener: handleIdentifier(Foo, methodDeclaration)
@@ -131,7 +131,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseMethod(}, null, null, null, null, null, null, null, }, NoType(), get, Foo, DeclarationKind.Class, Foo, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, get, Foo, Foo)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, get, Foo, Foo)
                 listener: handleNoType(})
                 ensureIdentifierPotentiallyRecovered(get, methodDeclaration, false)
                   listener: handleIdentifier(Foo, methodDeclaration)
@@ -168,7 +168,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseMethod(}, null, null, null, null, null, null, null, }, NoType(), get, Foo, DeclarationKind.Class, Foo, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, get, Foo, Foo)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, get, Foo, Foo)
                 listener: handleNoType(})
                 ensureIdentifierPotentiallyRecovered(get, methodDeclaration, false)
                   listener: handleIdentifier(Foo, methodDeclaration)
diff --git a/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_ok.dart.expect b/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_ok.dart.expect
index 2e5d646..6cfad81 100644
--- a/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_ok.dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_ok.dart.expect
@@ -15,7 +15,7 @@
         beginMetadataStar(Foo)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
             handleNoType({)
             handleIdentifier(Foo, methodDeclaration)
             handleNoTypeVariables(()
@@ -30,7 +30,7 @@
         beginMetadataStar(Foo)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
             handleNoType(})
             handleIdentifier(Foo, methodDeclaration)
             handleNoTypeVariables(()
@@ -54,7 +54,7 @@
         beginMetadataStar(Foo)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
             handleNoType(})
             handleIdentifier(Foo, methodDeclaration)
             handleIdentifier(x, methodDeclarationContinuation)
@@ -71,7 +71,7 @@
         beginMetadataStar(Foo)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
             handleNoType(})
             handleIdentifier(Foo, methodDeclaration)
             handleIdentifier(x, methodDeclarationContinuation)
diff --git a/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_ok.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_ok.dart.intertwined.expect
index 8636c8e..3e5ccdd 100644
--- a/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_ok.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_ok.dart.intertwined.expect
@@ -35,7 +35,7 @@
               listener: beginMember()
               isReservedKeyword(()
               parseMethod({, null, null, null, null, null, null, null, {, NoType(), null, Foo, DeclarationKind.Class, Foo, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
                 listener: handleNoType({)
                 ensureIdentifierPotentiallyRecovered({, methodDeclaration, false)
                   listener: handleIdentifier(Foo, methodDeclaration)
@@ -67,7 +67,7 @@
               listener: beginMember()
               isReservedKeyword(()
               parseMethod(}, null, null, null, null, null, null, null, }, NoType(), null, Foo, DeclarationKind.Class, Foo, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
                 listener: handleNoType(})
                 ensureIdentifierPotentiallyRecovered(}, methodDeclaration, false)
                   listener: handleIdentifier(Foo, methodDeclaration)
@@ -126,7 +126,7 @@
               listener: beginMember()
               isReservedKeyword(.)
               parseMethod(}, null, null, null, null, null, null, null, }, NoType(), null, Foo, DeclarationKind.Class, Foo, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
                 listener: handleNoType(})
                 ensureIdentifierPotentiallyRecovered(}, methodDeclaration, false)
                   listener: handleIdentifier(Foo, methodDeclaration)
@@ -162,7 +162,7 @@
               listener: beginMember()
               isReservedKeyword(.)
               parseMethod(}, null, null, null, null, null, null, null, }, NoType(), null, Foo, DeclarationKind.Class, Foo, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
                 listener: handleNoType(})
                 ensureIdentifierPotentiallyRecovered(}, methodDeclaration, false)
                   listener: handleIdentifier(Foo, methodDeclaration)
diff --git a/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_operator.crash_dart.expect b/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_operator.crash_dart.expect
index 93a829f..9178d29 100644
--- a/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_operator.crash_dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_operator.crash_dart.expect
@@ -89,7 +89,7 @@
         beginMetadataStar(Foo)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
             handleNoType({)
             handleIdentifier(Foo, methodDeclaration)
             handleNoTypeVariables(()
@@ -105,7 +105,7 @@
         endMetadataStar(0)
         beginMember()
           handleRecoverableError(MissingOperatorKeyword, /, /)
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, operator, Foo)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, operator, Foo)
             handleNoType(})
             handleOperatorName(operator, /)
             handleNoTypeVariables(:)
@@ -130,7 +130,7 @@
         beginMetadataStar(Foo)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
             handleNoType(})
             handleIdentifier(Foo, methodDeclaration)
             handleNoTypeVariables(()
@@ -152,7 +152,7 @@
         endMetadataStar(0)
         beginMember()
           handleRecoverableError(MissingOperatorKeyword, /, /)
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, operator, Foo)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, operator, Foo)
             handleNoType(.)
             handleOperatorName(operator, /)
             handleNoTypeVariables(:)
@@ -193,7 +193,7 @@
         endMetadataStar(0)
         beginMember()
           handleRecoverableError(MissingOperatorKeyword, /, /)
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, operator, Foo)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, operator, Foo)
             handleNoType(})
             handleOperatorName(operator, /)
             handleNoTypeVariables(:)
@@ -240,7 +240,7 @@
         endMetadataStar(0)
         beginMember()
           handleRecoverableError(MissingOperatorKeyword, /, /)
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, operator, Foo)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, operator, Foo)
             handleNoType(.)
             handleOperatorName(operator, /)
             handleNoTypeVariables(:)
diff --git a/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_operator.crash_dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_operator.crash_dart.intertwined.expect
index 3ca02fa..d5eb17b 100644
--- a/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_operator.crash_dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_operator.crash_dart.intertwined.expect
@@ -35,7 +35,7 @@
               listener: beginMember()
               isReservedKeyword(()
               parseMethod({, null, null, null, null, null, null, null, {, NoType(), null, Foo, DeclarationKind.Class, Foo, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
                 listener: handleNoType({)
                 ensureIdentifierPotentiallyRecovered({, methodDeclaration, false)
                   listener: handleIdentifier(Foo, methodDeclaration)
@@ -75,7 +75,7 @@
                     listener: handleRecoverableError(MissingOperatorKeyword, /, /)
                   rewriter()
                   parseMethod(}, null, null, null, null, null, null, null, }, NoType(), null, operator, DeclarationKind.Class, Foo, false)
-                    listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, operator, Foo)
+                    listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, operator, Foo)
                     listener: handleNoType(})
                     parseOperatorName(})
                       listener: handleOperatorName(operator, /)
@@ -132,7 +132,7 @@
               listener: beginMember()
               isReservedKeyword(()
               parseMethod(}, null, null, null, null, null, null, null, }, NoType(), null, Foo, DeclarationKind.Class, Foo, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
                 listener: handleNoType(})
                 ensureIdentifierPotentiallyRecovered(}, methodDeclaration, false)
                   listener: handleIdentifier(Foo, methodDeclaration)
@@ -183,7 +183,7 @@
                     listener: handleRecoverableError(MissingOperatorKeyword, /, /)
                   rewriter()
                   parseMethod(., null, null, null, null, null, null, null, ., NoType(), null, operator, DeclarationKind.Class, Foo, false)
-                    listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, operator, Foo)
+                    listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, operator, Foo)
                     listener: handleNoType(.)
                     parseOperatorName(.)
                       listener: handleOperatorName(operator, /)
@@ -280,7 +280,7 @@
                     listener: handleRecoverableError(MissingOperatorKeyword, /, /)
                   rewriter()
                   parseMethod(}, null, null, null, null, null, null, null, }, NoType(), null, operator, DeclarationKind.Class, Foo, false)
-                    listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, operator, Foo)
+                    listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, operator, Foo)
                     listener: handleNoType(})
                     parseOperatorName(})
                       listener: handleOperatorName(operator, /)
@@ -388,7 +388,7 @@
                     listener: handleRecoverableError(MissingOperatorKeyword, /, /)
                   rewriter()
                   parseMethod(., null, null, null, null, null, null, null, ., NoType(), null, operator, DeclarationKind.Class, Foo, false)
-                    listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, operator, Foo)
+                    listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, operator, Foo)
                     listener: handleNoType(.)
                     parseOperatorName(.)
                       listener: handleOperatorName(operator, /)
diff --git a/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_return_type.dart.expect b/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_return_type.dart.expect
index 66811e2..6348123 100644
--- a/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_return_type.dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_return_type.dart.expect
@@ -33,7 +33,7 @@
         beginMetadataStar(void)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
             handleVoidKeyword(void)
             handleIdentifier(Foo, methodDeclaration)
             handleNoTypeVariables(()
@@ -49,7 +49,7 @@
         beginMetadataStar(void)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
             handleVoidKeyword(void)
             handleIdentifier(Foo, methodDeclaration)
             handleNoTypeVariables(()
@@ -74,7 +74,7 @@
         beginMetadataStar(void)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
             handleVoidKeyword(void)
             handleIdentifier(Foo, methodDeclaration)
             handleIdentifier(x, methodDeclarationContinuation)
@@ -92,7 +92,7 @@
         beginMetadataStar(void)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
             handleVoidKeyword(void)
             handleIdentifier(Foo, methodDeclaration)
             handleIdentifier(x, methodDeclarationContinuation)
diff --git a/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_return_type.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_return_type.dart.intertwined.expect
index 185e537..1e5a86c 100644
--- a/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_return_type.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_return_type.dart.intertwined.expect
@@ -34,7 +34,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseMethod({, null, null, null, null, null, null, null, {, VoidType(), null, Foo, DeclarationKind.Class, Foo, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
                 listener: handleVoidKeyword(void)
                 ensureIdentifierPotentiallyRecovered(void, methodDeclaration, false)
                   listener: handleIdentifier(Foo, methodDeclaration)
@@ -67,7 +67,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseMethod(}, null, null, null, null, null, null, null, }, VoidType(), null, Foo, DeclarationKind.Class, Foo, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
                 listener: handleVoidKeyword(void)
                 ensureIdentifierPotentiallyRecovered(void, methodDeclaration, false)
                   listener: handleIdentifier(Foo, methodDeclaration)
@@ -127,7 +127,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseMethod(}, null, null, null, null, null, null, null, }, VoidType(), null, Foo, DeclarationKind.Class, Foo, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
                 listener: handleVoidKeyword(void)
                 ensureIdentifierPotentiallyRecovered(void, methodDeclaration, false)
                   listener: handleIdentifier(Foo, methodDeclaration)
@@ -164,7 +164,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseMethod(}, null, null, null, null, null, null, null, }, VoidType(), null, Foo, DeclarationKind.Class, Foo, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
                 listener: handleVoidKeyword(void)
                 ensureIdentifierPotentiallyRecovered(void, methodDeclaration, false)
                   listener: handleIdentifier(Foo, methodDeclaration)
diff --git a/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_set.dart.expect b/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_set.dart.expect
index aa5bc99..7d651d4 100644
--- a/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_set.dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_set.dart.expect
@@ -49,7 +49,7 @@
         beginMetadataStar(set)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, set, Foo, Foo)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, set, Foo, Foo)
             handleNoType(})
             handleIdentifier(Foo, methodDeclaration)
             handleNoTypeVariables(()
@@ -74,7 +74,7 @@
         beginMetadataStar(set)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, set, Foo, Foo)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, set, Foo, Foo)
             handleNoType(})
             handleIdentifier(Foo, methodDeclaration)
             handleIdentifier(x, methodDeclarationContinuation)
@@ -92,7 +92,7 @@
         beginMetadataStar(set)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, set, Foo, Foo)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, set, Foo, Foo)
             handleNoType(})
             handleIdentifier(Foo, methodDeclaration)
             handleIdentifier(x, methodDeclarationContinuation)
diff --git a/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_set.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_set.dart.intertwined.expect
index d1cbfdf..3bc26bb 100644
--- a/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_set.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_set.dart.intertwined.expect
@@ -67,7 +67,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseMethod(}, null, null, null, null, null, null, null, }, NoType(), set, Foo, DeclarationKind.Class, Foo, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, set, Foo, Foo)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, set, Foo, Foo)
                 listener: handleNoType(})
                 ensureIdentifierPotentiallyRecovered(set, methodDeclaration, false)
                   listener: handleIdentifier(Foo, methodDeclaration)
@@ -127,7 +127,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseMethod(}, null, null, null, null, null, null, null, }, NoType(), set, Foo, DeclarationKind.Class, Foo, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, set, Foo, Foo)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, set, Foo, Foo)
                 listener: handleNoType(})
                 ensureIdentifierPotentiallyRecovered(set, methodDeclaration, false)
                   listener: handleIdentifier(Foo, methodDeclaration)
@@ -164,7 +164,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseMethod(}, null, null, null, null, null, null, null, }, NoType(), set, Foo, DeclarationKind.Class, Foo, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, set, Foo, Foo)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, set, Foo, Foo)
                 listener: handleNoType(})
                 ensureIdentifierPotentiallyRecovered(set, methodDeclaration, false)
                   listener: handleIdentifier(Foo, methodDeclaration)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_22313.dart.expect b/pkg/front_end/parser_testcases/error_recovery/issue_22313.dart.expect
index 09b3064..b09b1bc 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_22313.dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_22313.dart.expect
@@ -75,7 +75,7 @@
         beginMetadataStar(Foo)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
             handleNoType({)
             handleIdentifier(Foo, methodDeclaration)
             handleNoTypeVariables(()
@@ -118,7 +118,7 @@
         beginMetadataStar(Bar)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Bar, Bar)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Bar, Bar)
             handleNoType({)
             handleIdentifier(Bar, methodDeclaration)
             handleNoTypeVariables(()
@@ -161,7 +161,7 @@
         beginMetadataStar(Baz)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Baz, Baz)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Baz, Baz)
             handleNoType({)
             handleIdentifier(Baz, methodDeclaration)
             handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_22313.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_22313.dart.intertwined.expect
index e60d1d0..46ce15a 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_22313.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_22313.dart.intertwined.expect
@@ -101,7 +101,7 @@
               listener: beginMember()
               isReservedKeyword(()
               parseMethod({, null, null, null, null, null, null, null, {, NoType(), null, Foo, DeclarationKind.Class, Foo, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
                 listener: handleNoType({)
                 ensureIdentifierPotentiallyRecovered({, methodDeclaration, false)
                   listener: handleIdentifier(Foo, methodDeclaration)
@@ -187,7 +187,7 @@
               listener: beginMember()
               isReservedKeyword(()
               parseMethod({, null, null, null, null, null, null, null, {, NoType(), null, Bar, DeclarationKind.Class, Bar, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Bar, Bar)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Bar, Bar)
                 listener: handleNoType({)
                 ensureIdentifierPotentiallyRecovered({, methodDeclaration, false)
                   listener: handleIdentifier(Bar, methodDeclaration)
@@ -273,7 +273,7 @@
               listener: beginMember()
               isReservedKeyword(()
               parseMethod({, null, null, null, null, null, null, null, {, NoType(), null, Baz, DeclarationKind.Class, Baz, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Baz, Baz)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Baz, Baz)
                 listener: handleNoType({)
                 ensureIdentifierPotentiallyRecovered({, methodDeclaration, false)
                   listener: handleIdentifier(Baz, methodDeclaration)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_22314.dart.expect b/pkg/front_end/parser_testcases/error_recovery/issue_22314.dart.expect
index 6ad3eef..29a4076 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_22314.dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_22314.dart.expect
@@ -47,7 +47,7 @@
         beginMetadataStar(const)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, const, null, Annotation, Annotation)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, const, null, Annotation, Annotation)
             handleNoType(const)
             handleIdentifier(Annotation, methodDeclaration)
             handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_22314.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_22314.dart.intertwined.expect
index 9f00932..dc1adb6 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_22314.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_22314.dart.intertwined.expect
@@ -77,7 +77,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseMethod(;, null, null, null, null, null, null, const, const, NoType(), null, Annotation, DeclarationKind.Class, Annotation, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, const, null, Annotation, Annotation)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, const, null, Annotation, Annotation)
                 listener: handleNoType(const)
                 ensureIdentifierPotentiallyRecovered(const, methodDeclaration, false)
                   listener: handleIdentifier(Annotation, methodDeclaration)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_26810.dart.expect b/pkg/front_end/parser_testcases/error_recovery/issue_26810.dart.expect
index 0afdad2..91ddd9a 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_26810.dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_26810.dart.expect
@@ -979,7 +979,7 @@
         beginMetadataStar(Key)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Key, Key)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Key, Key)
             handleNoType(})
             handleIdentifier(Key, methodDeclaration)
             handleNoTypeVariables(()
@@ -1070,7 +1070,7 @@
         beginMetadataStar(Key)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Key, Key)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Key, Key)
             handleNoType(})
             handleIdentifier(Key, methodDeclaration)
             handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_26810.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_26810.dart.intertwined.expect
index c00ad4e..a4b4d9f 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_26810.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_26810.dart.intertwined.expect
@@ -2102,7 +2102,7 @@
               listener: beginMember()
               isReservedKeyword(()
               parseMethod(}, null, null, null, null, null, null, null, }, NoType(), null, Key, DeclarationKind.Class, Key, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Key, Key)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Key, Key)
                 listener: handleNoType(})
                 ensureIdentifierPotentiallyRecovered(}, methodDeclaration, false)
                   listener: handleIdentifier(Key, methodDeclaration)
@@ -2350,7 +2350,7 @@
               listener: beginMember()
               isReservedKeyword(()
               parseMethod(}, null, null, null, null, null, null, null, }, NoType(), null, Key, DeclarationKind.Class, Key, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Key, Key)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Key, Key)
                 listener: handleNoType(})
                 ensureIdentifierPotentiallyRecovered(}, methodDeclaration, false)
                   listener: handleIdentifier(Key, methodDeclaration)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_26810_and.dart.expect b/pkg/front_end/parser_testcases/error_recovery/issue_26810_and.dart.expect
index ee8ce0a..363c439 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_26810_and.dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_26810_and.dart.expect
@@ -979,7 +979,7 @@
         beginMetadataStar(Key)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Key, Key)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Key, Key)
             handleNoType(})
             handleIdentifier(Key, methodDeclaration)
             handleNoTypeVariables(()
@@ -1070,7 +1070,7 @@
         beginMetadataStar(Key)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Key, Key)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Key, Key)
             handleNoType(})
             handleIdentifier(Key, methodDeclaration)
             handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_26810_and.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_26810_and.dart.intertwined.expect
index 7d45481..451b420 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_26810_and.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_26810_and.dart.intertwined.expect
@@ -2106,7 +2106,7 @@
               listener: beginMember()
               isReservedKeyword(()
               parseMethod(}, null, null, null, null, null, null, null, }, NoType(), null, Key, DeclarationKind.Class, Key, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Key, Key)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Key, Key)
                 listener: handleNoType(})
                 ensureIdentifierPotentiallyRecovered(}, methodDeclaration, false)
                   listener: handleIdentifier(Key, methodDeclaration)
@@ -2354,7 +2354,7 @@
               listener: beginMember()
               isReservedKeyword(()
               parseMethod(}, null, null, null, null, null, null, null, }, NoType(), null, Key, DeclarationKind.Class, Key, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Key, Key)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Key, Key)
                 listener: handleNoType(})
                 ensureIdentifierPotentiallyRecovered(}, methodDeclaration, false)
                   listener: handleIdentifier(Key, methodDeclaration)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_26810_or.dart.expect b/pkg/front_end/parser_testcases/error_recovery/issue_26810_or.dart.expect
index 37bc72a..b2d9116 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_26810_or.dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_26810_or.dart.expect
@@ -979,7 +979,7 @@
         beginMetadataStar(Key)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Key, Key)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Key, Key)
             handleNoType(})
             handleIdentifier(Key, methodDeclaration)
             handleNoTypeVariables(()
@@ -1070,7 +1070,7 @@
         beginMetadataStar(Key)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Key, Key)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Key, Key)
             handleNoType(})
             handleIdentifier(Key, methodDeclaration)
             handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_26810_or.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_26810_or.dart.intertwined.expect
index 799d9f4..f515181 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_26810_or.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_26810_or.dart.intertwined.expect
@@ -2106,7 +2106,7 @@
               listener: beginMember()
               isReservedKeyword(()
               parseMethod(}, null, null, null, null, null, null, null, }, NoType(), null, Key, DeclarationKind.Class, Key, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Key, Key)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Key, Key)
                 listener: handleNoType(})
                 ensureIdentifierPotentiallyRecovered(}, methodDeclaration, false)
                   listener: handleIdentifier(Key, methodDeclaration)
@@ -2354,7 +2354,7 @@
               listener: beginMember()
               isReservedKeyword(()
               parseMethod(}, null, null, null, null, null, null, null, }, NoType(), null, Key, DeclarationKind.Class, Key, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Key, Key)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Key, Key)
                 listener: handleNoType(})
                 ensureIdentifierPotentiallyRecovered(}, methodDeclaration, false)
                   listener: handleIdentifier(Key, methodDeclaration)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_39230.crash_dart.expect b/pkg/front_end/parser_testcases/error_recovery/issue_39230.crash_dart.expect
index b8b0db5..378568f 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_39230.crash_dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_39230.crash_dart.expect
@@ -33,7 +33,7 @@
         beginMetadataStar(C)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, C, C)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, C, C)
             handleNoType({)
             handleIdentifier(C, methodDeclaration)
             handleNoTypeVariables(()
@@ -49,7 +49,7 @@
         endMetadataStar(0)
         beginMember()
           handleRecoverableError(MissingOperatorKeyword, /, /)
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, operator, C)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, operator, C)
             handleNoType(})
             handleOperatorName(operator, /)
             handleNoTypeVariables(:)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_39230.crash_dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_39230.crash_dart.intertwined.expect
index 08dc724..aa1c8b0 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_39230.crash_dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_39230.crash_dart.intertwined.expect
@@ -35,7 +35,7 @@
               listener: beginMember()
               isReservedKeyword(()
               parseMethod({, null, null, null, null, null, null, null, {, NoType(), null, C, DeclarationKind.Class, C, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, C, C)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, C, C)
                 listener: handleNoType({)
                 ensureIdentifierPotentiallyRecovered({, methodDeclaration, false)
                   listener: handleIdentifier(C, methodDeclaration)
@@ -75,7 +75,7 @@
                     listener: handleRecoverableError(MissingOperatorKeyword, /, /)
                   rewriter()
                   parseMethod(}, null, null, null, null, null, null, null, }, NoType(), null, operator, DeclarationKind.Class, C, false)
-                    listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, operator, C)
+                    listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, operator, C)
                     listener: handleNoType(})
                     parseOperatorName(})
                       listener: handleOperatorName(operator, /)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_48380_1.dart.expect b/pkg/front_end/parser_testcases/error_recovery/issue_48380_1.dart.expect
index 78cf9c4..206dc76 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_48380_1.dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_48380_1.dart.expect
@@ -49,7 +49,7 @@
         beginMetadataStar(const)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
+          beginConstructor(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
             handleNoType(const)
             handleIdentifier(E, methodDeclaration)
             handleNoTypeVariables(()
@@ -63,7 +63,7 @@
         beginMetadataStar(const)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
+          beginConstructor(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
             handleNoType(const)
             handleIdentifier(E, methodDeclaration)
             handleIdentifier(foo, methodDeclarationContinuation)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_48380_1.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_48380_1.dart.intertwined.expect
index 2592250..1e62086 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_48380_1.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_48380_1.dart.intertwined.expect
@@ -66,7 +66,7 @@
             listener: endMetadataStar(0)
           listener: beginMember()
           parseMethod(;, null, null, null, null, null, null, const, const, NoType(), null, E, DeclarationKind.Enum, E, false)
-            listener: beginMethod(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
+            listener: beginConstructor(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
             listener: handleNoType(const)
             ensureIdentifierPotentiallyRecovered(const, methodDeclaration, false)
               listener: handleIdentifier(E, methodDeclaration)
@@ -95,7 +95,7 @@
             listener: endMetadataStar(0)
           listener: beginMember()
           parseMethod(;, null, null, null, null, null, null, const, const, NoType(), null, E, DeclarationKind.Enum, E, false)
-            listener: beginMethod(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
+            listener: beginConstructor(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
             listener: handleNoType(const)
             ensureIdentifierPotentiallyRecovered(const, methodDeclaration, false)
               listener: handleIdentifier(E, methodDeclaration)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_48380_1_comma.dart.expect b/pkg/front_end/parser_testcases/error_recovery/issue_48380_1_comma.dart.expect
index 80c6897..9e8d211 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_48380_1_comma.dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_48380_1_comma.dart.expect
@@ -64,7 +64,7 @@
         beginMetadataStar(const)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
+          beginConstructor(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
             handleNoType(const)
             handleIdentifier(E, methodDeclaration)
             handleNoTypeVariables(()
@@ -78,7 +78,7 @@
         beginMetadataStar(const)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
+          beginConstructor(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
             handleNoType(const)
             handleIdentifier(E, methodDeclaration)
             handleIdentifier(foo, methodDeclarationContinuation)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_48380_1_comma.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_48380_1_comma.dart.intertwined.expect
index b77dc96..2e7f38e 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_48380_1_comma.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_48380_1_comma.dart.intertwined.expect
@@ -87,7 +87,7 @@
             listener: endMetadataStar(0)
           listener: beginMember()
           parseMethod(;, null, null, null, null, null, null, const, const, NoType(), null, E, DeclarationKind.Enum, E, false)
-            listener: beginMethod(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
+            listener: beginConstructor(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
             listener: handleNoType(const)
             ensureIdentifierPotentiallyRecovered(const, methodDeclaration, false)
               listener: handleIdentifier(E, methodDeclaration)
@@ -116,7 +116,7 @@
             listener: endMetadataStar(0)
           listener: beginMember()
           parseMethod(;, null, null, null, null, null, null, const, const, NoType(), null, E, DeclarationKind.Enum, E, false)
-            listener: beginMethod(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
+            listener: beginConstructor(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
             listener: handleNoType(const)
             ensureIdentifierPotentiallyRecovered(const, methodDeclaration, false)
               listener: handleIdentifier(E, methodDeclaration)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_48380_1_comma_ok.dart.expect b/pkg/front_end/parser_testcases/error_recovery/issue_48380_1_comma_ok.dart.expect
index e2f2230..44652a4 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_48380_1_comma_ok.dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_48380_1_comma_ok.dart.expect
@@ -52,7 +52,7 @@
         beginMetadataStar(const)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
+          beginConstructor(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
             handleNoType(const)
             handleIdentifier(E, methodDeclaration)
             handleNoTypeVariables(()
@@ -66,7 +66,7 @@
         beginMetadataStar(const)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
+          beginConstructor(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
             handleNoType(const)
             handleIdentifier(E, methodDeclaration)
             handleIdentifier(foo, methodDeclarationContinuation)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_48380_1_comma_ok.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_48380_1_comma_ok.dart.intertwined.expect
index 05234a6..69bbe43 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_48380_1_comma_ok.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_48380_1_comma_ok.dart.intertwined.expect
@@ -80,7 +80,7 @@
             listener: endMetadataStar(0)
           listener: beginMember()
           parseMethod(;, null, null, null, null, null, null, const, const, NoType(), null, E, DeclarationKind.Enum, E, false)
-            listener: beginMethod(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
+            listener: beginConstructor(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
             listener: handleNoType(const)
             ensureIdentifierPotentiallyRecovered(const, methodDeclaration, false)
               listener: handleIdentifier(E, methodDeclaration)
@@ -109,7 +109,7 @@
             listener: endMetadataStar(0)
           listener: beginMember()
           parseMethod(;, null, null, null, null, null, null, const, const, NoType(), null, E, DeclarationKind.Enum, E, false)
-            listener: beginMethod(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
+            listener: beginConstructor(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
             listener: handleNoType(const)
             ensureIdentifierPotentiallyRecovered(const, methodDeclaration, false)
               listener: handleIdentifier(E, methodDeclaration)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_48380_1_ok.dart.expect b/pkg/front_end/parser_testcases/error_recovery/issue_48380_1_ok.dart.expect
index 0747a17..921af98 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_48380_1_ok.dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_48380_1_ok.dart.expect
@@ -37,7 +37,7 @@
         beginMetadataStar(const)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
+          beginConstructor(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
             handleNoType(const)
             handleIdentifier(E, methodDeclaration)
             handleNoTypeVariables(()
@@ -51,7 +51,7 @@
         beginMetadataStar(const)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
+          beginConstructor(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
             handleNoType(const)
             handleIdentifier(E, methodDeclaration)
             handleIdentifier(foo, methodDeclarationContinuation)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_48380_1_ok.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_48380_1_ok.dart.intertwined.expect
index a2f9951..21287c9 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_48380_1_ok.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_48380_1_ok.dart.intertwined.expect
@@ -59,7 +59,7 @@
             listener: endMetadataStar(0)
           listener: beginMember()
           parseMethod(;, null, null, null, null, null, null, const, const, NoType(), null, E, DeclarationKind.Enum, E, false)
-            listener: beginMethod(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
+            listener: beginConstructor(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
             listener: handleNoType(const)
             ensureIdentifierPotentiallyRecovered(const, methodDeclaration, false)
               listener: handleIdentifier(E, methodDeclaration)
@@ -88,7 +88,7 @@
             listener: endMetadataStar(0)
           listener: beginMember()
           parseMethod(;, null, null, null, null, null, null, const, const, NoType(), null, E, DeclarationKind.Enum, E, false)
-            listener: beginMethod(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
+            listener: beginConstructor(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
             listener: handleNoType(const)
             ensureIdentifierPotentiallyRecovered(const, methodDeclaration, false)
               listener: handleIdentifier(E, methodDeclaration)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_48380_2.dart.expect b/pkg/front_end/parser_testcases/error_recovery/issue_48380_2.dart.expect
index 4ff37f4..3c789ed 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_48380_2.dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_48380_2.dart.expect
@@ -44,7 +44,7 @@
         beginMetadataStar(const)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
+          beginConstructor(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
             handleNoType(const)
             handleIdentifier(E, methodDeclaration)
             handleNoTypeVariables(()
@@ -58,7 +58,7 @@
         beginMetadataStar(const)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
+          beginConstructor(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
             handleNoType(const)
             handleIdentifier(E, methodDeclaration)
             handleIdentifier(foo, methodDeclarationContinuation)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_48380_2.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_48380_2.dart.intertwined.expect
index 883f17e..38dfd05 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_48380_2.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_48380_2.dart.intertwined.expect
@@ -61,7 +61,7 @@
             listener: endMetadataStar(0)
           listener: beginMember()
           parseMethod(;, null, null, null, null, null, null, const, const, NoType(), null, E, DeclarationKind.Enum, E, false)
-            listener: beginMethod(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
+            listener: beginConstructor(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
             listener: handleNoType(const)
             ensureIdentifierPotentiallyRecovered(const, methodDeclaration, false)
               listener: handleIdentifier(E, methodDeclaration)
@@ -90,7 +90,7 @@
             listener: endMetadataStar(0)
           listener: beginMember()
           parseMethod(;, null, null, null, null, null, null, const, const, NoType(), null, E, DeclarationKind.Enum, E, false)
-            listener: beginMethod(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
+            listener: beginConstructor(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
             listener: handleNoType(const)
             ensureIdentifierPotentiallyRecovered(const, methodDeclaration, false)
               listener: handleIdentifier(E, methodDeclaration)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_48380_2_comma.dart.expect b/pkg/front_end/parser_testcases/error_recovery/issue_48380_2_comma.dart.expect
index 9704986..44424c8 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_48380_2_comma.dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_48380_2_comma.dart.expect
@@ -59,7 +59,7 @@
         beginMetadataStar(const)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
+          beginConstructor(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
             handleNoType(const)
             handleIdentifier(E, methodDeclaration)
             handleNoTypeVariables(()
@@ -73,7 +73,7 @@
         beginMetadataStar(const)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
+          beginConstructor(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
             handleNoType(const)
             handleIdentifier(E, methodDeclaration)
             handleIdentifier(foo, methodDeclarationContinuation)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_48380_2_comma.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_48380_2_comma.dart.intertwined.expect
index 6aa12ed..4aafa63 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_48380_2_comma.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_48380_2_comma.dart.intertwined.expect
@@ -82,7 +82,7 @@
             listener: endMetadataStar(0)
           listener: beginMember()
           parseMethod(;, null, null, null, null, null, null, const, const, NoType(), null, E, DeclarationKind.Enum, E, false)
-            listener: beginMethod(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
+            listener: beginConstructor(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
             listener: handleNoType(const)
             ensureIdentifierPotentiallyRecovered(const, methodDeclaration, false)
               listener: handleIdentifier(E, methodDeclaration)
@@ -111,7 +111,7 @@
             listener: endMetadataStar(0)
           listener: beginMember()
           parseMethod(;, null, null, null, null, null, null, const, const, NoType(), null, E, DeclarationKind.Enum, E, false)
-            listener: beginMethod(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
+            listener: beginConstructor(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
             listener: handleNoType(const)
             ensureIdentifierPotentiallyRecovered(const, methodDeclaration, false)
               listener: handleIdentifier(E, methodDeclaration)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_48380_2_comma_ok.dart.expect b/pkg/front_end/parser_testcases/error_recovery/issue_48380_2_comma_ok.dart.expect
index e3bc3ad..21b8a4b 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_48380_2_comma_ok.dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_48380_2_comma_ok.dart.expect
@@ -52,7 +52,7 @@
         beginMetadataStar(const)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
+          beginConstructor(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
             handleNoType(const)
             handleIdentifier(E, methodDeclaration)
             handleNoTypeVariables(()
@@ -66,7 +66,7 @@
         beginMetadataStar(const)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
+          beginConstructor(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
             handleNoType(const)
             handleIdentifier(E, methodDeclaration)
             handleIdentifier(foo, methodDeclarationContinuation)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_48380_2_comma_ok.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_48380_2_comma_ok.dart.intertwined.expect
index a0e7140..6d76932 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_48380_2_comma_ok.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_48380_2_comma_ok.dart.intertwined.expect
@@ -79,7 +79,7 @@
             listener: endMetadataStar(0)
           listener: beginMember()
           parseMethod(;, null, null, null, null, null, null, const, const, NoType(), null, E, DeclarationKind.Enum, E, false)
-            listener: beginMethod(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
+            listener: beginConstructor(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
             listener: handleNoType(const)
             ensureIdentifierPotentiallyRecovered(const, methodDeclaration, false)
               listener: handleIdentifier(E, methodDeclaration)
@@ -108,7 +108,7 @@
             listener: endMetadataStar(0)
           listener: beginMember()
           parseMethod(;, null, null, null, null, null, null, const, const, NoType(), null, E, DeclarationKind.Enum, E, false)
-            listener: beginMethod(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
+            listener: beginConstructor(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
             listener: handleNoType(const)
             ensureIdentifierPotentiallyRecovered(const, methodDeclaration, false)
               listener: handleIdentifier(E, methodDeclaration)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_48380_2_ok.dart.expect b/pkg/front_end/parser_testcases/error_recovery/issue_48380_2_ok.dart.expect
index e909672..46fb3a2 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_48380_2_ok.dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_48380_2_ok.dart.expect
@@ -37,7 +37,7 @@
         beginMetadataStar(const)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
+          beginConstructor(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
             handleNoType(const)
             handleIdentifier(E, methodDeclaration)
             handleNoTypeVariables(()
@@ -51,7 +51,7 @@
         beginMetadataStar(const)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
+          beginConstructor(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
             handleNoType(const)
             handleIdentifier(E, methodDeclaration)
             handleIdentifier(foo, methodDeclarationContinuation)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_48380_2_ok.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_48380_2_ok.dart.intertwined.expect
index dd4f11b..4c8bcb7 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_48380_2_ok.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_48380_2_ok.dart.intertwined.expect
@@ -58,7 +58,7 @@
             listener: endMetadataStar(0)
           listener: beginMember()
           parseMethod(;, null, null, null, null, null, null, const, const, NoType(), null, E, DeclarationKind.Enum, E, false)
-            listener: beginMethod(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
+            listener: beginConstructor(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
             listener: handleNoType(const)
             ensureIdentifierPotentiallyRecovered(const, methodDeclaration, false)
               listener: handleIdentifier(E, methodDeclaration)
@@ -87,7 +87,7 @@
             listener: endMetadataStar(0)
           listener: beginMember()
           parseMethod(;, null, null, null, null, null, null, const, const, NoType(), null, E, DeclarationKind.Enum, E, false)
-            listener: beginMethod(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
+            listener: beginConstructor(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
             listener: handleNoType(const)
             ensureIdentifierPotentiallyRecovered(const, methodDeclaration, false)
               listener: handleIdentifier(E, methodDeclaration)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_48380_3.dart.expect b/pkg/front_end/parser_testcases/error_recovery/issue_48380_3.dart.expect
index b63245f..e7a95c2 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_48380_3.dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_48380_3.dart.expect
@@ -37,7 +37,7 @@
         beginMetadataStar(const)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
+          beginConstructor(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
             handleNoType(const)
             handleIdentifier(E, methodDeclaration)
             handleNoTypeVariables(()
@@ -51,7 +51,7 @@
         beginMetadataStar(const)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
+          beginConstructor(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
             handleNoType(const)
             handleIdentifier(E, methodDeclaration)
             handleIdentifier(foo, methodDeclarationContinuation)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_48380_3.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_48380_3.dart.intertwined.expect
index a2d5cb8..9b1c76a 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_48380_3.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_48380_3.dart.intertwined.expect
@@ -54,7 +54,7 @@
             listener: endMetadataStar(0)
           listener: beginMember()
           parseMethod(;, null, null, null, null, null, null, const, const, NoType(), null, E, DeclarationKind.Enum, E, false)
-            listener: beginMethod(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
+            listener: beginConstructor(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
             listener: handleNoType(const)
             ensureIdentifierPotentiallyRecovered(const, methodDeclaration, false)
               listener: handleIdentifier(E, methodDeclaration)
@@ -83,7 +83,7 @@
             listener: endMetadataStar(0)
           listener: beginMember()
           parseMethod(;, null, null, null, null, null, null, const, const, NoType(), null, E, DeclarationKind.Enum, E, false)
-            listener: beginMethod(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
+            listener: beginConstructor(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
             listener: handleNoType(const)
             ensureIdentifierPotentiallyRecovered(const, methodDeclaration, false)
               listener: handleIdentifier(E, methodDeclaration)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_48380_3_comma.dart.expect b/pkg/front_end/parser_testcases/error_recovery/issue_48380_3_comma.dart.expect
index a4ecf8e..d17cc49 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_48380_3_comma.dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_48380_3_comma.dart.expect
@@ -48,7 +48,7 @@
         beginMetadataStar(const)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
+          beginConstructor(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
             handleNoType(const)
             handleIdentifier(E, methodDeclaration)
             handleNoTypeVariables(()
@@ -62,7 +62,7 @@
         beginMetadataStar(const)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
+          beginConstructor(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
             handleNoType(const)
             handleIdentifier(E, methodDeclaration)
             handleIdentifier(foo, methodDeclarationContinuation)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_48380_3_comma.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_48380_3_comma.dart.intertwined.expect
index 665bbc5..f588858 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_48380_3_comma.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_48380_3_comma.dart.intertwined.expect
@@ -71,7 +71,7 @@
             listener: endMetadataStar(0)
           listener: beginMember()
           parseMethod(;, null, null, null, null, null, null, const, const, NoType(), null, E, DeclarationKind.Enum, E, false)
-            listener: beginMethod(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
+            listener: beginConstructor(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
             listener: handleNoType(const)
             ensureIdentifierPotentiallyRecovered(const, methodDeclaration, false)
               listener: handleIdentifier(E, methodDeclaration)
@@ -100,7 +100,7 @@
             listener: endMetadataStar(0)
           listener: beginMember()
           parseMethod(;, null, null, null, null, null, null, const, const, NoType(), null, E, DeclarationKind.Enum, E, false)
-            listener: beginMethod(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
+            listener: beginConstructor(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
             listener: handleNoType(const)
             ensureIdentifierPotentiallyRecovered(const, methodDeclaration, false)
               listener: handleIdentifier(E, methodDeclaration)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_48380_3_comma_ok.dart.expect b/pkg/front_end/parser_testcases/error_recovery/issue_48380_3_comma_ok.dart.expect
index 6279f79..43b5c99 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_48380_3_comma_ok.dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_48380_3_comma_ok.dart.expect
@@ -36,7 +36,7 @@
         beginMetadataStar(const)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
+          beginConstructor(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
             handleNoType(const)
             handleIdentifier(E, methodDeclaration)
             handleNoTypeVariables(()
@@ -50,7 +50,7 @@
         beginMetadataStar(const)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
+          beginConstructor(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
             handleNoType(const)
             handleIdentifier(E, methodDeclaration)
             handleIdentifier(foo, methodDeclarationContinuation)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_48380_3_comma_ok.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_48380_3_comma_ok.dart.intertwined.expect
index 6fe0eaa..574f6b4 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_48380_3_comma_ok.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_48380_3_comma_ok.dart.intertwined.expect
@@ -64,7 +64,7 @@
             listener: endMetadataStar(0)
           listener: beginMember()
           parseMethod(;, null, null, null, null, null, null, const, const, NoType(), null, E, DeclarationKind.Enum, E, false)
-            listener: beginMethod(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
+            listener: beginConstructor(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
             listener: handleNoType(const)
             ensureIdentifierPotentiallyRecovered(const, methodDeclaration, false)
               listener: handleIdentifier(E, methodDeclaration)
@@ -93,7 +93,7 @@
             listener: endMetadataStar(0)
           listener: beginMember()
           parseMethod(;, null, null, null, null, null, null, const, const, NoType(), null, E, DeclarationKind.Enum, E, false)
-            listener: beginMethod(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
+            listener: beginConstructor(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
             listener: handleNoType(const)
             ensureIdentifierPotentiallyRecovered(const, methodDeclaration, false)
               listener: handleIdentifier(E, methodDeclaration)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_48380_3_ok.dart.expect b/pkg/front_end/parser_testcases/error_recovery/issue_48380_3_ok.dart.expect
index 83f6273..4871f23 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_48380_3_ok.dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_48380_3_ok.dart.expect
@@ -25,7 +25,7 @@
         beginMetadataStar(const)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
+          beginConstructor(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
             handleNoType(const)
             handleIdentifier(E, methodDeclaration)
             handleNoTypeVariables(()
@@ -39,7 +39,7 @@
         beginMetadataStar(const)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
+          beginConstructor(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
             handleNoType(const)
             handleIdentifier(E, methodDeclaration)
             handleIdentifier(foo, methodDeclarationContinuation)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_48380_3_ok.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_48380_3_ok.dart.intertwined.expect
index 26e3894..37d96f9 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_48380_3_ok.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_48380_3_ok.dart.intertwined.expect
@@ -47,7 +47,7 @@
             listener: endMetadataStar(0)
           listener: beginMember()
           parseMethod(;, null, null, null, null, null, null, const, const, NoType(), null, E, DeclarationKind.Enum, E, false)
-            listener: beginMethod(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
+            listener: beginConstructor(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
             listener: handleNoType(const)
             ensureIdentifierPotentiallyRecovered(const, methodDeclaration, false)
               listener: handleIdentifier(E, methodDeclaration)
@@ -76,7 +76,7 @@
             listener: endMetadataStar(0)
           listener: beginMember()
           parseMethod(;, null, null, null, null, null, null, const, const, NoType(), null, E, DeclarationKind.Enum, E, false)
-            listener: beginMethod(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
+            listener: beginConstructor(DeclarationKind.Enum, null, null, null, null, const, null, E, E)
             listener: handleNoType(const)
             ensureIdentifierPotentiallyRecovered(const, methodDeclaration, false)
               listener: handleIdentifier(E, methodDeclaration)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_48411.dart.expect b/pkg/front_end/parser_testcases/error_recovery/issue_48411.dart.expect
index 318d750..0357bbd 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_48411.dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_48411.dart.expect
@@ -41,7 +41,7 @@
         beginMetadataStar(A)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, A, A)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, A, A)
             handleNoType({)
             handleIdentifier(A, methodDeclaration)
             handleNoTypeVariables(()
@@ -64,7 +64,7 @@
         beginMetadataStar(A)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, A, A)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, A, A)
             handleNoType(;)
             handleIdentifier(A, methodDeclaration)
             handleIdentifier(y, methodDeclarationContinuation)
@@ -107,7 +107,7 @@
         beginMetadataStar(B)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, B, B)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, B, B)
             handleNoType({)
             handleIdentifier(B, methodDeclaration)
             handleNoTypeVariables(()
@@ -172,7 +172,7 @@
         beginMetadataStar(B2)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, B2, B2)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, B2, B2)
             handleNoType({)
             handleIdentifier(B2, methodDeclaration)
             handleNoTypeVariables(()
@@ -239,7 +239,7 @@
         beginMetadataStar(B3)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, B3, B3)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, B3, B3)
             handleNoType({)
             handleIdentifier(B3, methodDeclaration)
             handleNoTypeVariables(()
@@ -288,7 +288,7 @@
         beginMetadataStar(B3)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, B3, B3)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, B3, B3)
             handleNoType(;)
             handleIdentifier(B3, methodDeclaration)
             handleIdentifier(y, methodDeclarationContinuation)
@@ -342,7 +342,7 @@
         beginMetadataStar(C)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, C, C)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, C, C)
             handleNoType(;)
             handleIdentifier(C, methodDeclaration)
             handleNoTypeVariables(()
@@ -407,7 +407,7 @@
         beginMetadataStar(D)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, D, D)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, D, D)
             handleNoType({)
             handleIdentifier(D, methodDeclaration)
             handleNoTypeVariables(()
@@ -486,7 +486,7 @@
         beginMetadataStar(E)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, E, E)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, E, E)
             handleNoType(;)
             handleIdentifier(E, methodDeclaration)
             handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_48411.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_48411.dart.intertwined.expect
index 50c9410..4908be6 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_48411.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_48411.dart.intertwined.expect
@@ -35,7 +35,7 @@
               listener: beginMember()
               isReservedKeyword(()
               parseMethod({, null, null, null, null, null, null, null, {, NoType(), null, A, DeclarationKind.Class, A, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, A, A)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, A, A)
                 listener: handleNoType({)
                 ensureIdentifierPotentiallyRecovered({, methodDeclaration, false)
                   listener: handleIdentifier(A, methodDeclaration)
@@ -77,7 +77,7 @@
               listener: beginMember()
               isReservedKeyword(.)
               parseMethod(;, null, null, null, null, null, null, null, ;, NoType(), null, A, DeclarationKind.Class, A, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, A, A)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, A, A)
                 listener: handleNoType(;)
                 ensureIdentifierPotentiallyRecovered(;, methodDeclaration, false)
                   listener: handleIdentifier(A, methodDeclaration)
@@ -155,7 +155,7 @@
               listener: beginMember()
               isReservedKeyword(()
               parseMethod({, null, null, null, null, null, null, null, {, NoType(), null, B, DeclarationKind.Class, B, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, B, B)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, B, B)
                 listener: handleNoType({)
                 ensureIdentifierPotentiallyRecovered({, methodDeclaration, false)
                   listener: handleIdentifier(B, methodDeclaration)
@@ -286,7 +286,7 @@
               listener: beginMember()
               isReservedKeyword(()
               parseMethod({, null, null, null, null, null, null, null, {, NoType(), null, B2, DeclarationKind.Class, B2, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, B2, B2)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, B2, B2)
                 listener: handleNoType({)
                 ensureIdentifierPotentiallyRecovered({, methodDeclaration, false)
                   listener: handleIdentifier(B2, methodDeclaration)
@@ -424,7 +424,7 @@
               listener: beginMember()
               isReservedKeyword(()
               parseMethod({, null, null, null, null, null, null, null, {, NoType(), null, B3, DeclarationKind.Class, B3, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, B3, B3)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, B3, B3)
                 listener: handleNoType({)
                 ensureIdentifierPotentiallyRecovered({, methodDeclaration, false)
                   listener: handleIdentifier(B3, methodDeclaration)
@@ -529,7 +529,7 @@
               listener: beginMember()
               isReservedKeyword(.)
               parseMethod(;, null, null, null, null, null, null, null, ;, NoType(), null, B3, DeclarationKind.Class, B3, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, B3, B3)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, B3, B3)
                 listener: handleNoType(;)
                 ensureIdentifierPotentiallyRecovered(;, methodDeclaration, false)
                   listener: handleIdentifier(B3, methodDeclaration)
@@ -624,7 +624,7 @@
               listener: beginMember()
               isReservedKeyword(()
               parseMethod(;, null, null, null, null, null, null, null, ;, NoType(), null, C, DeclarationKind.Class, C, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, C, C)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, C, C)
                 listener: handleNoType(;)
                 ensureIdentifierPotentiallyRecovered(;, methodDeclaration, false)
                   listener: handleIdentifier(C, methodDeclaration)
@@ -763,7 +763,7 @@
               listener: beginMember()
               isReservedKeyword(()
               parseMethod({, null, null, null, null, null, null, null, {, NoType(), null, D, DeclarationKind.Class, D, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, D, D)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, D, D)
                 listener: handleNoType({)
                 ensureIdentifierPotentiallyRecovered({, methodDeclaration, false)
                   listener: handleIdentifier(D, methodDeclaration)
@@ -924,7 +924,7 @@
               listener: beginMember()
               isReservedKeyword(()
               parseMethod(;, null, null, null, null, null, null, null, ;, NoType(), null, E, DeclarationKind.Class, E, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, E, E)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, E, E)
                 listener: handleNoType(;)
                 ensureIdentifierPotentiallyRecovered(;, methodDeclaration, false)
                   listener: handleIdentifier(E, methodDeclaration)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_48411_prime.dart.expect b/pkg/front_end/parser_testcases/error_recovery/issue_48411_prime.dart.expect
index 691213d..9c19ba8 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_48411_prime.dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_48411_prime.dart.expect
@@ -15,7 +15,7 @@
         beginMetadataStar(A)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, A, A)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, A, A)
             handleNoType({)
             handleIdentifier(A, methodDeclaration)
             handleNoTypeVariables(()
@@ -38,7 +38,7 @@
         beginMetadataStar(A)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, A, A)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, A, A)
             handleNoType(;)
             handleIdentifier(A, methodDeclaration)
             handleIdentifier(y, methodDeclarationContinuation)
@@ -81,7 +81,7 @@
         beginMetadataStar(B)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, B, B)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, B, B)
             handleNoType({)
             handleIdentifier(B, methodDeclaration)
             handleNoTypeVariables(()
@@ -145,7 +145,7 @@
         beginMetadataStar(B2)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, B2, B2)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, B2, B2)
             handleNoType({)
             handleIdentifier(B2, methodDeclaration)
             handleNoTypeVariables(()
@@ -211,7 +211,7 @@
         beginMetadataStar(B3)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, B3, B3)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, B3, B3)
             handleNoType({)
             handleIdentifier(B3, methodDeclaration)
             handleNoTypeVariables(()
@@ -259,7 +259,7 @@
         beginMetadataStar(B3)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, B3, B3)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, B3, B3)
             handleNoType(;)
             handleIdentifier(B3, methodDeclaration)
             handleIdentifier(y, methodDeclarationContinuation)
@@ -313,7 +313,7 @@
         beginMetadataStar(C)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, C, C)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, C, C)
             handleNoType(;)
             handleIdentifier(C, methodDeclaration)
             handleNoTypeVariables(()
@@ -377,7 +377,7 @@
         beginMetadataStar(D)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, D, D)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, D, D)
             handleNoType({)
             handleIdentifier(D, methodDeclaration)
             handleNoTypeVariables(()
@@ -455,7 +455,7 @@
         beginMetadataStar(E)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, E, E)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, E, E)
             handleNoType(;)
             handleIdentifier(E, methodDeclaration)
             handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_48411_prime.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_48411_prime.dart.intertwined.expect
index 1e24cd9..836e09d 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_48411_prime.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_48411_prime.dart.intertwined.expect
@@ -35,7 +35,7 @@
               listener: beginMember()
               isReservedKeyword(()
               parseMethod({, null, null, null, null, null, null, null, {, NoType(), null, A, DeclarationKind.Class, A, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, A, A)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, A, A)
                 listener: handleNoType({)
                 ensureIdentifierPotentiallyRecovered({, methodDeclaration, false)
                   listener: handleIdentifier(A, methodDeclaration)
@@ -77,7 +77,7 @@
               listener: beginMember()
               isReservedKeyword(.)
               parseMethod(;, null, null, null, null, null, null, null, ;, NoType(), null, A, DeclarationKind.Class, A, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, A, A)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, A, A)
                 listener: handleNoType(;)
                 ensureIdentifierPotentiallyRecovered(;, methodDeclaration, false)
                   listener: handleIdentifier(A, methodDeclaration)
@@ -155,7 +155,7 @@
               listener: beginMember()
               isReservedKeyword(()
               parseMethod({, null, null, null, null, null, null, null, {, NoType(), null, B, DeclarationKind.Class, B, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, B, B)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, B, B)
                 listener: handleNoType({)
                 ensureIdentifierPotentiallyRecovered({, methodDeclaration, false)
                   listener: handleIdentifier(B, methodDeclaration)
@@ -283,7 +283,7 @@
               listener: beginMember()
               isReservedKeyword(()
               parseMethod({, null, null, null, null, null, null, null, {, NoType(), null, B2, DeclarationKind.Class, B2, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, B2, B2)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, B2, B2)
                 listener: handleNoType({)
                 ensureIdentifierPotentiallyRecovered({, methodDeclaration, false)
                   listener: handleIdentifier(B2, methodDeclaration)
@@ -418,7 +418,7 @@
               listener: beginMember()
               isReservedKeyword(()
               parseMethod({, null, null, null, null, null, null, null, {, NoType(), null, B3, DeclarationKind.Class, B3, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, B3, B3)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, B3, B3)
                 listener: handleNoType({)
                 ensureIdentifierPotentiallyRecovered({, methodDeclaration, false)
                   listener: handleIdentifier(B3, methodDeclaration)
@@ -520,7 +520,7 @@
               listener: beginMember()
               isReservedKeyword(.)
               parseMethod(;, null, null, null, null, null, null, null, ;, NoType(), null, B3, DeclarationKind.Class, B3, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, B3, B3)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, B3, B3)
                 listener: handleNoType(;)
                 ensureIdentifierPotentiallyRecovered(;, methodDeclaration, false)
                   listener: handleIdentifier(B3, methodDeclaration)
@@ -615,7 +615,7 @@
               listener: beginMember()
               isReservedKeyword(()
               parseMethod(;, null, null, null, null, null, null, null, ;, NoType(), null, C, DeclarationKind.Class, C, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, C, C)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, C, C)
                 listener: handleNoType(;)
                 ensureIdentifierPotentiallyRecovered(;, methodDeclaration, false)
                   listener: handleIdentifier(C, methodDeclaration)
@@ -751,7 +751,7 @@
               listener: beginMember()
               isReservedKeyword(()
               parseMethod({, null, null, null, null, null, null, null, {, NoType(), null, D, DeclarationKind.Class, D, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, D, D)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, D, D)
                 listener: handleNoType({)
                 ensureIdentifierPotentiallyRecovered({, methodDeclaration, false)
                   listener: handleIdentifier(D, methodDeclaration)
@@ -909,7 +909,7 @@
               listener: beginMember()
               isReservedKeyword(()
               parseMethod(;, null, null, null, null, null, null, null, ;, NoType(), null, E, DeclarationKind.Class, E, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, E, E)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, E, E)
                 listener: handleNoType(;)
                 ensureIdentifierPotentiallyRecovered(;, methodDeclaration, false)
                   listener: handleIdentifier(E, methodDeclaration)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_48411_prime_1.dart.expect b/pkg/front_end/parser_testcases/error_recovery/issue_48411_prime_1.dart.expect
index dd19b20..2bb3d4f 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_48411_prime_1.dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_48411_prime_1.dart.expect
@@ -85,7 +85,7 @@
         beginMetadataStar(C)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, C, C)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, C, C)
             handleNoType({)
             handleIdentifier(C, methodDeclaration)
             handleNoTypeVariables(()
@@ -146,7 +146,7 @@
         beginMetadataStar(C)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, C, C)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, C, C)
             handleNoType({)
             handleIdentifier(C, methodDeclaration)
             handleNoTypeVariables(()
@@ -226,7 +226,7 @@
         beginMetadataStar(C)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, C, C)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, C, C)
             handleNoType({)
             handleIdentifier(C, methodDeclaration)
             handleNoTypeVariables(()
@@ -262,7 +262,7 @@
         beginMetadataStar(C)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, C, C)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, C, C)
             handleNoType({)
             handleIdentifier(C, methodDeclaration)
             handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_48411_prime_1.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_48411_prime_1.dart.intertwined.expect
index 5f44148..8a335f4 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_48411_prime_1.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_48411_prime_1.dart.intertwined.expect
@@ -35,7 +35,7 @@
               listener: beginMember()
               isReservedKeyword(()
               parseMethod({, null, null, null, null, null, null, null, {, NoType(), null, C, DeclarationKind.Class, C, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, C, C)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, C, C)
                 listener: handleNoType({)
                 ensureIdentifierPotentiallyRecovered({, methodDeclaration, false)
                   listener: handleIdentifier(C, methodDeclaration)
@@ -160,7 +160,7 @@
               listener: beginMember()
               isReservedKeyword(()
               parseMethod({, null, null, null, null, null, null, null, {, NoType(), null, C, DeclarationKind.Class, C, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, C, C)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, C, C)
                 listener: handleNoType({)
                 ensureIdentifierPotentiallyRecovered({, methodDeclaration, false)
                   listener: handleIdentifier(C, methodDeclaration)
@@ -342,7 +342,7 @@
               listener: beginMember()
               isReservedKeyword(()
               parseMethod({, null, null, null, null, null, null, null, {, NoType(), null, C, DeclarationKind.Class, C, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, C, C)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, C, C)
                 listener: handleNoType({)
                 ensureIdentifierPotentiallyRecovered({, methodDeclaration, false)
                   listener: handleIdentifier(C, methodDeclaration)
@@ -422,7 +422,7 @@
               listener: beginMember()
               isReservedKeyword(()
               parseMethod({, null, null, null, null, null, null, null, {, NoType(), null, C, DeclarationKind.Class, C, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, C, C)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, C, C)
                 listener: handleNoType({)
                 ensureIdentifierPotentiallyRecovered({, methodDeclaration, false)
                   listener: handleIdentifier(C, methodDeclaration)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_54284.dart.expect b/pkg/front_end/parser_testcases/error_recovery/issue_54284.dart.expect
index ff38df7..4a8049b 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_54284.dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_54284.dart.expect
@@ -86,7 +86,7 @@
         beginMetadataStar(A)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, A, A)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, A, A)
             handleNoType(;)
             handleIdentifier(A, methodDeclaration)
             handleNoTypeVariables(()
@@ -115,7 +115,7 @@
         beginMetadataStar(A)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, A, A)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, A, A)
             handleNoType(;)
             handleIdentifier(A, methodDeclaration)
             handleNoTypeVariables(()
@@ -171,7 +171,7 @@
         beginMetadataStar(A)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, A, A)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, A, A)
             handleNoType(;)
             handleIdentifier(A, methodDeclaration)
             handleNoTypeVariables(()
@@ -204,7 +204,7 @@
         beginMetadataStar(A)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, A, A)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, A, A)
             handleNoType(;)
             handleIdentifier(A, methodDeclaration)
             handleNoTypeVariables(()
@@ -264,7 +264,7 @@
         beginMetadataStar(A)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, A, A)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, A, A)
             handleNoType(;)
             handleIdentifier(A, methodDeclaration)
             handleNoTypeVariables(()
@@ -295,7 +295,7 @@
         beginMetadataStar(A)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, A, A)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, A, A)
             handleNoType(;)
             handleIdentifier(A, methodDeclaration)
             handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_54284.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_54284.dart.intertwined.expect
index e7297bd..e0fd74f 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_54284.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_54284.dart.intertwined.expect
@@ -209,7 +209,7 @@
               listener: beginMember()
               isReservedKeyword(()
               parseMethod(;, null, null, null, null, null, null, null, ;, NoType(), null, A, DeclarationKind.Class, A, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, A, A)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, A, A)
                 listener: handleNoType(;)
                 ensureIdentifierPotentiallyRecovered(;, methodDeclaration, false)
                   listener: handleIdentifier(A, methodDeclaration)
@@ -281,7 +281,7 @@
               listener: beginMember()
               isReservedKeyword(()
               parseMethod(;, null, null, null, null, null, null, null, ;, NoType(), null, A, DeclarationKind.Class, A, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, A, A)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, A, A)
                 listener: handleNoType(;)
                 ensureIdentifierPotentiallyRecovered(;, methodDeclaration, false)
                   listener: handleIdentifier(A, methodDeclaration)
@@ -402,7 +402,7 @@
               listener: beginMember()
               isReservedKeyword(()
               parseMethod(;, null, null, null, null, null, null, null, ;, NoType(), null, A, DeclarationKind.Class, A, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, A, A)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, A, A)
                 listener: handleNoType(;)
                 ensureIdentifierPotentiallyRecovered(;, methodDeclaration, false)
                   listener: handleIdentifier(A, methodDeclaration)
@@ -487,7 +487,7 @@
               listener: beginMember()
               isReservedKeyword(()
               parseMethod(;, null, null, null, null, null, null, null, ;, NoType(), null, A, DeclarationKind.Class, A, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, A, A)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, A, A)
                 listener: handleNoType(;)
                 ensureIdentifierPotentiallyRecovered(;, methodDeclaration, false)
                   listener: handleIdentifier(A, methodDeclaration)
@@ -621,7 +621,7 @@
               listener: beginMember()
               isReservedKeyword(()
               parseMethod(;, null, null, null, null, null, null, null, ;, NoType(), null, A, DeclarationKind.Class, A, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, A, A)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, A, A)
                 listener: handleNoType(;)
                 ensureIdentifierPotentiallyRecovered(;, methodDeclaration, false)
                   listener: handleIdentifier(A, methodDeclaration)
@@ -695,7 +695,7 @@
               listener: beginMember()
               isReservedKeyword(()
               parseMethod(;, null, null, null, null, null, null, null, ;, NoType(), null, A, DeclarationKind.Class, A, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, A, A)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, A, A)
                 listener: handleNoType(;)
                 ensureIdentifierPotentiallyRecovered(;, methodDeclaration, false)
                   listener: handleIdentifier(A, methodDeclaration)
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 fadc5db..9e1811c 100644
--- a/pkg/front_end/parser_testcases/general/issue_41121.dart.expect
+++ b/pkg/front_end/parser_testcases/general/issue_41121.dart.expect
@@ -68,7 +68,7 @@
         beginMetadataStar(ConfigurationService)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, ConfigurationService, ConfigurationService)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, ConfigurationService, ConfigurationService)
             handleNoType(;)
             handleIdentifier(ConfigurationService, methodDeclaration)
             handleNoTypeVariables(()
@@ -115,7 +115,7 @@
         beginMetadataStar(void)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, set, configuration, ConfigurationService)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, set, configuration, ConfigurationService)
             handleVoidKeyword(void)
             handleIdentifier(configuration, methodDeclaration)
             handleNoTypeVariables(()
@@ -165,7 +165,7 @@
         beginMetadataStar(Configuration)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, get, configuration, ConfigurationService)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, get, configuration, ConfigurationService)
             handleIdentifier(Configuration, typeReference)
             handleNoTypeArguments(get)
             handleType(Configuration, null)
@@ -220,7 +220,7 @@
         beginMetadataStar(void)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, method, ConfigurationService)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, method, ConfigurationService)
             handleVoidKeyword(void)
             handleIdentifier(method, methodDeclaration)
             handleNoTypeVariables(()
@@ -246,7 +246,7 @@
         beginMetadataStar(Foo)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Foo, ConfigurationService)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Foo, ConfigurationService)
             handleNoType(})
             handleIdentifier(Foo, methodDeclaration)
             handleNoTypeVariables(()
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 6ecbd7c..1feafcc 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
@@ -52,7 +52,7 @@
               listener: beginMember()
               isReservedKeyword(()
               parseMethod(;, null, null, null, null, null, null, null, ;, NoType(), null, ConfigurationService, DeclarationKind.Class, ConfigurationService, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, ConfigurationService, ConfigurationService)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, ConfigurationService, ConfigurationService)
                 listener: handleNoType(;)
                 ensureIdentifierPotentiallyRecovered(;, methodDeclaration, false)
                   listener: handleIdentifier(ConfigurationService, methodDeclaration)
@@ -156,7 +156,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseMethod(}, null, null, null, null, null, null, null, }, VoidType(), set, configuration, DeclarationKind.Class, ConfigurationService, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, set, configuration, ConfigurationService)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, set, configuration, ConfigurationService)
                 listener: handleVoidKeyword(void)
                 ensureIdentifierPotentiallyRecovered(set, methodDeclaration, false)
                   listener: handleIdentifier(configuration, methodDeclaration)
@@ -266,7 +266,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseMethod(}, null, null, null, null, null, null, null, }, SimpleType(), get, configuration, DeclarationKind.Class, ConfigurationService, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, get, configuration, ConfigurationService)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, get, configuration, ConfigurationService)
                 listener: handleIdentifier(Configuration, typeReference)
                 listener: handleNoTypeArguments(get)
                 listener: handleType(Configuration, null)
@@ -402,7 +402,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseMethod(}, null, null, null, null, null, null, null, }, VoidType(), null, method, DeclarationKind.Class, ConfigurationService, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, method, ConfigurationService)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, method, ConfigurationService)
                 listener: handleVoidKeyword(void)
                 ensureIdentifierPotentiallyRecovered(void, methodDeclaration, false)
                   listener: handleIdentifier(method, methodDeclaration)
@@ -465,7 +465,7 @@
               listener: beginMember()
               isReservedKeyword(()
               parseMethod(}, null, null, null, null, null, null, null, }, NoType(), null, Foo, DeclarationKind.Class, ConfigurationService, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Foo, ConfigurationService)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Foo, ConfigurationService)
                 listener: handleNoType(})
                 ensureIdentifierPotentiallyRecovered(}, methodDeclaration, false)
                   listener: handleIdentifier(Foo, methodDeclaration)
diff --git a/pkg/front_end/parser_testcases/general/new_as_identifier.dart.expect b/pkg/front_end/parser_testcases/general/new_as_identifier.dart.expect
index 95aa80d..8691833 100644
--- a/pkg/front_end/parser_testcases/general/new_as_identifier.dart.expect
+++ b/pkg/front_end/parser_testcases/general/new_as_identifier.dart.expect
@@ -57,7 +57,7 @@
         beginMetadataStar(C)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, C, C)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, C, C)
             handleNoType({)
             handleIdentifier(C, methodDeclaration)
             handleNewAsIdentifier(new)
@@ -74,7 +74,7 @@
         beginMetadataStar(C)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, C, C)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, C, C)
             handleNoType(;)
             handleIdentifier(C, methodDeclaration)
             handleIdentifier(constructor_field_initializer, methodDeclarationContinuation)
@@ -277,7 +277,7 @@
         beginMetadataStar(D)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, D, D)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, D, D)
             handleNoType(;)
             handleIdentifier(D, methodDeclaration)
             handleIdentifier(super_invocation, methodDeclarationContinuation)
@@ -304,7 +304,7 @@
         beginMetadataStar(D)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, D, D)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, D, D)
             handleNoType(;)
             handleIdentifier(D, methodDeclaration)
             handleIdentifier(this_redirection, methodDeclarationContinuation)
diff --git a/pkg/front_end/parser_testcases/general/new_as_identifier.dart.intertwined.expect b/pkg/front_end/parser_testcases/general/new_as_identifier.dart.intertwined.expect
index 3cdee45..7dc12ba 100644
--- a/pkg/front_end/parser_testcases/general/new_as_identifier.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/general/new_as_identifier.dart.intertwined.expect
@@ -35,7 +35,7 @@
               listener: beginMember()
               isReservedKeyword(.)
               parseMethod({, null, null, null, null, null, null, null, {, NoType(), null, C, DeclarationKind.Class, C, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, C, C)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, C, C)
                 listener: handleNoType({)
                 ensureIdentifierPotentiallyRecovered({, methodDeclaration, false)
                   listener: handleIdentifier(C, methodDeclaration)
@@ -71,7 +71,7 @@
               listener: beginMember()
               isReservedKeyword(.)
               parseMethod(;, null, null, null, null, null, null, null, ;, NoType(), null, C, DeclarationKind.Class, C, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, C, C)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, C, C)
                 listener: handleNoType(;)
                 ensureIdentifierPotentiallyRecovered(;, methodDeclaration, false)
                   listener: handleIdentifier(C, methodDeclaration)
@@ -504,7 +504,7 @@
               listener: beginMember()
               isReservedKeyword(.)
               parseMethod(;, null, null, null, null, null, null, null, ;, NoType(), null, D, DeclarationKind.Class, D, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, D, D)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, D, D)
                 listener: handleNoType(;)
                 ensureIdentifierPotentiallyRecovered(;, methodDeclaration, false)
                   listener: handleIdentifier(D, methodDeclaration)
@@ -568,7 +568,7 @@
               listener: beginMember()
               isReservedKeyword(.)
               parseMethod(;, null, null, null, null, null, null, null, ;, NoType(), null, D, DeclarationKind.Class, D, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, D, D)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, D, D)
                 listener: handleNoType(;)
                 ensureIdentifierPotentiallyRecovered(;, methodDeclaration, false)
                   listener: handleIdentifier(D, methodDeclaration)
diff --git a/pkg/front_end/parser_testcases/general/operator_hat_class.crash_dart.expect b/pkg/front_end/parser_testcases/general/operator_hat_class.crash_dart.expect
index 0597456..2c1283c 100644
--- a/pkg/front_end/parser_testcases/general/operator_hat_class.crash_dart.expect
+++ b/pkg/front_end/parser_testcases/general/operator_hat_class.crash_dart.expect
@@ -22,7 +22,7 @@
         beginMetadataStar(operator)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, operator, operator)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, operator, operator)
             handleNoType({)
             handleOperatorName(operator, ^)
             handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/general/operator_hat_class.crash_dart.intertwined.expect b/pkg/front_end/parser_testcases/general/operator_hat_class.crash_dart.intertwined.expect
index dc7f9df..64ad2ed 100644
--- a/pkg/front_end/parser_testcases/general/operator_hat_class.crash_dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/general/operator_hat_class.crash_dart.intertwined.expect
@@ -36,7 +36,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseMethod({, null, null, null, null, null, null, null, {, NoType(), null, operator, DeclarationKind.Class, operator, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, operator, operator)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, operator, operator)
                 listener: handleNoType({)
                 parseOperatorName({)
                   listener: handleOperatorName(operator, ^)
diff --git a/pkg/front_end/parser_testcases/inline_class/extension_type.dart.expect b/pkg/front_end/parser_testcases/inline_class/extension_type.dart.expect
index 358d232..652a24f 100644
--- a/pkg/front_end/parser_testcases/inline_class/extension_type.dart.expect
+++ b/pkg/front_end/parser_testcases/inline_class/extension_type.dart.expect
@@ -113,7 +113,7 @@
         beginMetadataStar(ExtensionType4)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.ExtensionType, null, null, null, null, null, null, ExtensionType4, ExtensionType4)
+          beginConstructor(DeclarationKind.ExtensionType, null, null, null, null, null, null, ExtensionType4, ExtensionType4)
             handleNoType({)
             handleIdentifier(ExtensionType4, methodDeclaration)
             handleIdentifier(constructor, methodDeclarationContinuation)
@@ -136,7 +136,7 @@
         beginMetadataStar(ExtensionType4)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.ExtensionType, null, null, null, null, null, null, ExtensionType4, ExtensionType4)
+          beginConstructor(DeclarationKind.ExtensionType, null, null, null, null, null, null, ExtensionType4, ExtensionType4)
             handleNoType(;)
             handleIdentifier(ExtensionType4, methodDeclaration)
             handleIdentifier(redirect, methodDeclarationContinuation)
diff --git a/pkg/front_end/parser_testcases/inline_class/extension_type.dart.intertwined.expect b/pkg/front_end/parser_testcases/inline_class/extension_type.dart.intertwined.expect
index fa827a5..49ff613 100644
--- a/pkg/front_end/parser_testcases/inline_class/extension_type.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/inline_class/extension_type.dart.intertwined.expect
@@ -172,7 +172,7 @@
               listener: beginMember()
               isReservedKeyword(.)
               parseMethod({, null, null, null, null, null, null, null, {, NoType(), null, ExtensionType4, DeclarationKind.ExtensionType, ExtensionType4, false)
-                listener: beginMethod(DeclarationKind.ExtensionType, null, null, null, null, null, null, ExtensionType4, ExtensionType4)
+                listener: beginConstructor(DeclarationKind.ExtensionType, null, null, null, null, null, null, ExtensionType4, ExtensionType4)
                 listener: handleNoType({)
                 ensureIdentifierPotentiallyRecovered({, methodDeclaration, false)
                   listener: handleIdentifier(ExtensionType4, methodDeclaration)
@@ -216,7 +216,7 @@
               listener: beginMember()
               isReservedKeyword(.)
               parseMethod(;, null, null, null, null, null, null, null, ;, NoType(), null, ExtensionType4, DeclarationKind.ExtensionType, ExtensionType4, false)
-                listener: beginMethod(DeclarationKind.ExtensionType, null, null, null, null, null, null, ExtensionType4, ExtensionType4)
+                listener: beginConstructor(DeclarationKind.ExtensionType, null, null, null, null, null, null, ExtensionType4, ExtensionType4)
                 listener: handleNoType(;)
                 ensureIdentifierPotentiallyRecovered(;, methodDeclaration, false)
                   listener: handleIdentifier(ExtensionType4, methodDeclaration)
diff --git a/pkg/front_end/parser_testcases/inline_class/extension_type_const.dart.expect b/pkg/front_end/parser_testcases/inline_class/extension_type_const.dart.expect
index 90566ab..a469018 100644
--- a/pkg/front_end/parser_testcases/inline_class/extension_type_const.dart.expect
+++ b/pkg/front_end/parser_testcases/inline_class/extension_type_const.dart.expect
@@ -113,7 +113,7 @@
         beginMetadataStar(const)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.ExtensionType, null, null, null, null, const, null, ExtensionType4, ExtensionType4)
+          beginConstructor(DeclarationKind.ExtensionType, null, null, null, null, const, null, ExtensionType4, ExtensionType4)
             handleNoType(const)
             handleIdentifier(ExtensionType4, methodDeclaration)
             handleIdentifier(constructor, methodDeclarationContinuation)
@@ -136,7 +136,7 @@
         beginMetadataStar(const)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.ExtensionType, null, null, null, null, const, null, ExtensionType4, ExtensionType4)
+          beginConstructor(DeclarationKind.ExtensionType, null, null, null, null, const, null, ExtensionType4, ExtensionType4)
             handleNoType(const)
             handleIdentifier(ExtensionType4, methodDeclaration)
             handleIdentifier(redirect, methodDeclarationContinuation)
diff --git a/pkg/front_end/parser_testcases/inline_class/extension_type_const.dart.intertwined.expect b/pkg/front_end/parser_testcases/inline_class/extension_type_const.dart.intertwined.expect
index e98a18f..7388f34 100644
--- a/pkg/front_end/parser_testcases/inline_class/extension_type_const.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/inline_class/extension_type_const.dart.intertwined.expect
@@ -171,7 +171,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseMethod({, null, null, null, null, null, null, const, const, NoType(), null, ExtensionType4, DeclarationKind.ExtensionType, ExtensionType4, false)
-                listener: beginMethod(DeclarationKind.ExtensionType, null, null, null, null, const, null, ExtensionType4, ExtensionType4)
+                listener: beginConstructor(DeclarationKind.ExtensionType, null, null, null, null, const, null, ExtensionType4, ExtensionType4)
                 listener: handleNoType(const)
                 ensureIdentifierPotentiallyRecovered(const, methodDeclaration, false)
                   listener: handleIdentifier(ExtensionType4, methodDeclaration)
@@ -214,7 +214,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseMethod(;, null, null, null, null, null, null, const, const, NoType(), null, ExtensionType4, DeclarationKind.ExtensionType, ExtensionType4, false)
-                listener: beginMethod(DeclarationKind.ExtensionType, null, null, null, null, const, null, ExtensionType4, ExtensionType4)
+                listener: beginConstructor(DeclarationKind.ExtensionType, null, null, null, null, const, null, ExtensionType4, ExtensionType4)
                 listener: handleNoType(const)
                 ensureIdentifierPotentiallyRecovered(const, methodDeclaration, false)
                   listener: handleIdentifier(ExtensionType4, methodDeclaration)
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 da6bf2f..ca52ce6 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
@@ -37,7 +37,7 @@
         beginMetadataStar(Foo)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
             handleNoType(;)
             handleIdentifier(Foo, methodDeclaration)
             handleNoTypeVariables(()
@@ -86,7 +86,7 @@
         beginMetadataStar(Foo)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
             handleNoType(;)
             handleIdentifier(Foo, methodDeclaration)
             handleIdentifier(a, methodDeclarationContinuation)
@@ -150,7 +150,7 @@
         beginMetadataStar(Foo)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
             handleNoType(;)
             handleIdentifier(Foo, methodDeclaration)
             handleIdentifier(b, methodDeclarationContinuation)
@@ -214,7 +214,7 @@
         beginMetadataStar(Foo)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
             handleNoType(;)
             handleIdentifier(Foo, methodDeclaration)
             handleIdentifier(c, methodDeclarationContinuation)
@@ -278,7 +278,7 @@
         beginMetadataStar(Foo)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
             handleNoType(;)
             handleIdentifier(Foo, methodDeclaration)
             handleIdentifier(d, methodDeclarationContinuation)
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 cc44854..49dfbd4 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
@@ -69,7 +69,7 @@
               listener: beginMember()
               isReservedKeyword(()
               parseMethod(;, null, null, null, null, null, null, null, ;, NoType(), null, Foo, DeclarationKind.Class, Foo, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
                 listener: handleNoType(;)
                 ensureIdentifierPotentiallyRecovered(;, methodDeclaration, false)
                   listener: handleIdentifier(Foo, methodDeclaration)
@@ -178,7 +178,7 @@
               listener: beginMember()
               isReservedKeyword(.)
               parseMethod(;, null, null, null, null, null, null, null, ;, NoType(), null, Foo, DeclarationKind.Class, Foo, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
                 listener: handleNoType(;)
                 ensureIdentifierPotentiallyRecovered(;, methodDeclaration, false)
                   listener: handleIdentifier(Foo, methodDeclaration)
@@ -324,7 +324,7 @@
               listener: beginMember()
               isReservedKeyword(.)
               parseMethod(;, null, null, null, null, null, null, null, ;, NoType(), null, Foo, DeclarationKind.Class, Foo, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
                 listener: handleNoType(;)
                 ensureIdentifierPotentiallyRecovered(;, methodDeclaration, false)
                   listener: handleIdentifier(Foo, methodDeclaration)
@@ -470,7 +470,7 @@
               listener: beginMember()
               isReservedKeyword(.)
               parseMethod(;, null, null, null, null, null, null, null, ;, NoType(), null, Foo, DeclarationKind.Class, Foo, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
                 listener: handleNoType(;)
                 ensureIdentifierPotentiallyRecovered(;, methodDeclaration, false)
                   listener: handleIdentifier(Foo, methodDeclaration)
@@ -616,7 +616,7 @@
               listener: beginMember()
               isReservedKeyword(.)
               parseMethod(;, null, null, null, null, null, null, null, ;, NoType(), null, Foo, DeclarationKind.Class, Foo, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
                 listener: handleNoType(;)
                 ensureIdentifierPotentiallyRecovered(;, methodDeclaration, false)
                   listener: handleIdentifier(Foo, methodDeclaration)
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 36f0e1b..331cfab 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
@@ -37,7 +37,7 @@
         beginMetadataStar(Foo)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
             handleNoType(;)
             handleIdentifier(Foo, methodDeclaration)
             handleNoTypeVariables(()
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 78ca4b1..9e5f924 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
@@ -69,7 +69,7 @@
               listener: beginMember()
               isReservedKeyword(()
               parseMethod(;, null, null, null, null, null, null, null, ;, NoType(), null, Foo, DeclarationKind.Class, Foo, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
                 listener: handleNoType(;)
                 ensureIdentifierPotentiallyRecovered(;, methodDeclaration, false)
                   listener: handleIdentifier(Foo, methodDeclaration)
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 d593b37..c18d0f1 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
@@ -37,7 +37,7 @@
         beginMetadataStar(Foo)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
             handleNoType(;)
             handleIdentifier(Foo, methodDeclaration)
             handleNoTypeVariables(()
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 9a97a0a..f6b31d4 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
@@ -69,7 +69,7 @@
               listener: beginMember()
               isReservedKeyword(()
               parseMethod(;, null, null, null, null, null, null, null, ;, NoType(), null, Foo, DeclarationKind.Class, Foo, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
                 listener: handleNoType(;)
                 ensureIdentifierPotentiallyRecovered(;, methodDeclaration, false)
                   listener: handleIdentifier(Foo, methodDeclaration)
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 5fa3db5..6912c6f 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_41597.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_41597.dart.expect
@@ -83,7 +83,7 @@
         beginMetadataStar(C)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, C, C)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, C, C)
             handleNoType({)
             handleIdentifier(C, methodDeclaration)
             handleIdentifier(c0, methodDeclarationContinuation)
@@ -107,7 +107,7 @@
         beginMetadataStar(C)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, C, C)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, C, C)
             handleNoType(;)
             handleIdentifier(C, methodDeclaration)
             handleIdentifier(c1, methodDeclarationContinuation)
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 e1aa699..ccdd80b 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
@@ -218,7 +218,7 @@
               listener: beginMember()
               isReservedKeyword(.)
               parseMethod({, null, null, null, null, null, null, null, {, NoType(), null, C, DeclarationKind.Class, C, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, C, C)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, C, C)
                 listener: handleNoType({)
                 ensureIdentifierPotentiallyRecovered({, methodDeclaration, false)
                   listener: handleIdentifier(C, methodDeclaration)
@@ -273,7 +273,7 @@
               listener: beginMember()
               isReservedKeyword(.)
               parseMethod(;, null, null, null, null, null, null, null, ;, NoType(), null, C, DeclarationKind.Class, C, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, C, C)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, C, C)
                 listener: handleNoType(;)
                 ensureIdentifierPotentiallyRecovered(;, methodDeclaration, false)
                   listener: handleIdentifier(C, methodDeclaration)
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_49132.dart.expect b/pkg/front_end/parser_testcases/nnbd/issue_49132.dart.expect
index 85619e7..948820f 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_49132.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_49132.dart.expect
@@ -15,7 +15,7 @@
         beginMetadataStar(Foo)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
             handleNoType({)
             handleIdentifier(Foo, methodDeclaration)
             handleIdentifier(foo1, methodDeclarationContinuation)
@@ -84,7 +84,7 @@
         beginMetadataStar(Foo)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
             handleNoType(;)
             handleIdentifier(Foo, methodDeclaration)
             handleIdentifier(foo2, methodDeclarationContinuation)
@@ -153,7 +153,7 @@
         beginMetadataStar(Foo)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
             handleNoType(;)
             handleIdentifier(Foo, methodDeclaration)
             handleIdentifier(foo3, methodDeclarationContinuation)
@@ -222,7 +222,7 @@
         beginMetadataStar(Foo)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
             handleNoType(;)
             handleIdentifier(Foo, methodDeclaration)
             handleIdentifier(foo4, methodDeclarationContinuation)
@@ -291,7 +291,7 @@
         beginMetadataStar(Foo)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
             handleNoType(;)
             handleIdentifier(Foo, methodDeclaration)
             handleIdentifier(bar1, methodDeclarationContinuation)
@@ -361,7 +361,7 @@
         beginMetadataStar(Foo)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
             handleNoType(})
             handleIdentifier(Foo, methodDeclaration)
             handleIdentifier(bar2, methodDeclarationContinuation)
@@ -431,7 +431,7 @@
         beginMetadataStar(Foo)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
             handleNoType(})
             handleIdentifier(Foo, methodDeclaration)
             handleIdentifier(bar3, methodDeclarationContinuation)
@@ -501,7 +501,7 @@
         beginMetadataStar(Foo)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
             handleNoType(})
             handleIdentifier(Foo, methodDeclaration)
             handleIdentifier(bar4, methodDeclarationContinuation)
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_49132.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/issue_49132.dart.intertwined.expect
index c1414ce..c530e6c 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_49132.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_49132.dart.intertwined.expect
@@ -35,7 +35,7 @@
               listener: beginMember()
               isReservedKeyword(.)
               parseMethod({, null, null, null, null, null, null, null, {, NoType(), null, Foo, DeclarationKind.Class, Foo, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
                 listener: handleNoType({)
                 ensureIdentifierPotentiallyRecovered({, methodDeclaration, false)
                   listener: handleIdentifier(Foo, methodDeclaration)
@@ -175,7 +175,7 @@
               listener: beginMember()
               isReservedKeyword(.)
               parseMethod(;, null, null, null, null, null, null, null, ;, NoType(), null, Foo, DeclarationKind.Class, Foo, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
                 listener: handleNoType(;)
                 ensureIdentifierPotentiallyRecovered(;, methodDeclaration, false)
                   listener: handleIdentifier(Foo, methodDeclaration)
@@ -315,7 +315,7 @@
               listener: beginMember()
               isReservedKeyword(.)
               parseMethod(;, null, null, null, null, null, null, null, ;, NoType(), null, Foo, DeclarationKind.Class, Foo, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
                 listener: handleNoType(;)
                 ensureIdentifierPotentiallyRecovered(;, methodDeclaration, false)
                   listener: handleIdentifier(Foo, methodDeclaration)
@@ -455,7 +455,7 @@
               listener: beginMember()
               isReservedKeyword(.)
               parseMethod(;, null, null, null, null, null, null, null, ;, NoType(), null, Foo, DeclarationKind.Class, Foo, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
                 listener: handleNoType(;)
                 ensureIdentifierPotentiallyRecovered(;, methodDeclaration, false)
                   listener: handleIdentifier(Foo, methodDeclaration)
@@ -595,7 +595,7 @@
               listener: beginMember()
               isReservedKeyword(.)
               parseMethod(;, null, null, null, null, null, null, null, ;, NoType(), null, Foo, DeclarationKind.Class, Foo, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
                 listener: handleNoType(;)
                 ensureIdentifierPotentiallyRecovered(;, methodDeclaration, false)
                   listener: handleIdentifier(Foo, methodDeclaration)
@@ -743,7 +743,7 @@
               listener: beginMember()
               isReservedKeyword(.)
               parseMethod(}, null, null, null, null, null, null, null, }, NoType(), null, Foo, DeclarationKind.Class, Foo, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
                 listener: handleNoType(})
                 ensureIdentifierPotentiallyRecovered(}, methodDeclaration, false)
                   listener: handleIdentifier(Foo, methodDeclaration)
@@ -891,7 +891,7 @@
               listener: beginMember()
               isReservedKeyword(.)
               parseMethod(}, null, null, null, null, null, null, null, }, NoType(), null, Foo, DeclarationKind.Class, Foo, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
                 listener: handleNoType(})
                 ensureIdentifierPotentiallyRecovered(}, methodDeclaration, false)
                   listener: handleIdentifier(Foo, methodDeclaration)
@@ -1033,7 +1033,7 @@
               listener: beginMember()
               isReservedKeyword(.)
               parseMethod(}, null, null, null, null, null, null, null, }, NoType(), null, Foo, DeclarationKind.Class, Foo, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
                 listener: handleNoType(})
                 ensureIdentifierPotentiallyRecovered(}, methodDeclaration, false)
                   listener: handleIdentifier(Foo, methodDeclaration)
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_49132_not_nullable.dart.expect b/pkg/front_end/parser_testcases/nnbd/issue_49132_not_nullable.dart.expect
index 38613936e..289a3cd 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_49132_not_nullable.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_49132_not_nullable.dart.expect
@@ -26,7 +26,7 @@
         beginMetadataStar(Foo)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
             handleNoType(;)
             handleIdentifier(Foo, methodDeclaration)
             handleIdentifier(foo1, methodDeclarationContinuation)
@@ -77,7 +77,7 @@
         beginMetadataStar(Foo)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
             handleNoType(})
             handleIdentifier(Foo, methodDeclaration)
             handleIdentifier(foo2, methodDeclarationContinuation)
@@ -137,7 +137,7 @@
         beginMetadataStar(Foo)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
             handleNoType(})
             handleIdentifier(Foo, methodDeclaration)
             handleIdentifier(foo3, methodDeclarationContinuation)
@@ -188,7 +188,7 @@
         beginMetadataStar(Foo)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
             handleNoType(})
             handleIdentifier(Foo, methodDeclaration)
             handleIdentifier(foo4, methodDeclarationContinuation)
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_49132_not_nullable.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/issue_49132_not_nullable.dart.intertwined.expect
index df8dcde..58ebd26 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_49132_not_nullable.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_49132_not_nullable.dart.intertwined.expect
@@ -52,7 +52,7 @@
               listener: beginMember()
               isReservedKeyword(.)
               parseMethod(;, null, null, null, null, null, null, null, ;, NoType(), null, Foo, DeclarationKind.Class, Foo, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
                 listener: handleNoType(;)
                 ensureIdentifierPotentiallyRecovered(;, methodDeclaration, false)
                   listener: handleIdentifier(Foo, methodDeclaration)
@@ -178,7 +178,7 @@
               listener: beginMember()
               isReservedKeyword(.)
               parseMethod(}, null, null, null, null, null, null, null, }, NoType(), null, Foo, DeclarationKind.Class, Foo, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
                 listener: handleNoType(})
                 ensureIdentifierPotentiallyRecovered(}, methodDeclaration, false)
                   listener: handleIdentifier(Foo, methodDeclaration)
@@ -371,7 +371,7 @@
               listener: beginMember()
               isReservedKeyword(.)
               parseMethod(}, null, null, null, null, null, null, null, }, NoType(), null, Foo, DeclarationKind.Class, Foo, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
                 listener: handleNoType(})
                 ensureIdentifierPotentiallyRecovered(}, methodDeclaration, false)
                   listener: handleIdentifier(Foo, methodDeclaration)
@@ -497,7 +497,7 @@
               listener: beginMember()
               isReservedKeyword(.)
               parseMethod(}, null, null, null, null, null, null, null, }, NoType(), null, Foo, DeclarationKind.Class, Foo, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
                 listener: handleNoType(})
                 ensureIdentifierPotentiallyRecovered(}, methodDeclaration, false)
                   listener: handleIdentifier(Foo, methodDeclaration)
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_49132_prime.dart.expect b/pkg/front_end/parser_testcases/nnbd/issue_49132_prime.dart.expect
index 5d0e863..90d9449 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_49132_prime.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_49132_prime.dart.expect
@@ -15,7 +15,7 @@
         beginMetadataStar(Foo)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
             handleNoType({)
             handleIdentifier(Foo, methodDeclaration)
             handleIdentifier(foo1, methodDeclarationContinuation)
@@ -88,7 +88,7 @@
         beginMetadataStar(Foo)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
             handleNoType(;)
             handleIdentifier(Foo, methodDeclaration)
             handleIdentifier(foo2, methodDeclarationContinuation)
@@ -161,7 +161,7 @@
         beginMetadataStar(Foo)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
             handleNoType(;)
             handleIdentifier(Foo, methodDeclaration)
             handleIdentifier(foo3, methodDeclarationContinuation)
@@ -234,7 +234,7 @@
         beginMetadataStar(Foo)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
             handleNoType(;)
             handleIdentifier(Foo, methodDeclaration)
             handleIdentifier(foo4, methodDeclarationContinuation)
@@ -307,7 +307,7 @@
         beginMetadataStar(Foo)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
             handleNoType(;)
             handleIdentifier(Foo, methodDeclaration)
             handleIdentifier(bar1, methodDeclarationContinuation)
@@ -381,7 +381,7 @@
         beginMetadataStar(Foo)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
             handleNoType(})
             handleIdentifier(Foo, methodDeclaration)
             handleIdentifier(bar2, methodDeclarationContinuation)
@@ -455,7 +455,7 @@
         beginMetadataStar(Foo)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
             handleNoType(})
             handleIdentifier(Foo, methodDeclaration)
             handleIdentifier(bar3, methodDeclarationContinuation)
@@ -529,7 +529,7 @@
         beginMetadataStar(Foo)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
             handleNoType(})
             handleIdentifier(Foo, methodDeclaration)
             handleIdentifier(bar4, methodDeclarationContinuation)
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_49132_prime.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/issue_49132_prime.dart.intertwined.expect
index 5311e20..0fcf13b 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_49132_prime.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_49132_prime.dart.intertwined.expect
@@ -35,7 +35,7 @@
               listener: beginMember()
               isReservedKeyword(.)
               parseMethod({, null, null, null, null, null, null, null, {, NoType(), null, Foo, DeclarationKind.Class, Foo, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
                 listener: handleNoType({)
                 ensureIdentifierPotentiallyRecovered({, methodDeclaration, false)
                   listener: handleIdentifier(Foo, methodDeclaration)
@@ -199,7 +199,7 @@
               listener: beginMember()
               isReservedKeyword(.)
               parseMethod(;, null, null, null, null, null, null, null, ;, NoType(), null, Foo, DeclarationKind.Class, Foo, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
                 listener: handleNoType(;)
                 ensureIdentifierPotentiallyRecovered(;, methodDeclaration, false)
                   listener: handleIdentifier(Foo, methodDeclaration)
@@ -363,7 +363,7 @@
               listener: beginMember()
               isReservedKeyword(.)
               parseMethod(;, null, null, null, null, null, null, null, ;, NoType(), null, Foo, DeclarationKind.Class, Foo, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
                 listener: handleNoType(;)
                 ensureIdentifierPotentiallyRecovered(;, methodDeclaration, false)
                   listener: handleIdentifier(Foo, methodDeclaration)
@@ -527,7 +527,7 @@
               listener: beginMember()
               isReservedKeyword(.)
               parseMethod(;, null, null, null, null, null, null, null, ;, NoType(), null, Foo, DeclarationKind.Class, Foo, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
                 listener: handleNoType(;)
                 ensureIdentifierPotentiallyRecovered(;, methodDeclaration, false)
                   listener: handleIdentifier(Foo, methodDeclaration)
@@ -691,7 +691,7 @@
               listener: beginMember()
               isReservedKeyword(.)
               parseMethod(;, null, null, null, null, null, null, null, ;, NoType(), null, Foo, DeclarationKind.Class, Foo, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
                 listener: handleNoType(;)
                 ensureIdentifierPotentiallyRecovered(;, methodDeclaration, false)
                   listener: handleIdentifier(Foo, methodDeclaration)
@@ -857,7 +857,7 @@
               listener: beginMember()
               isReservedKeyword(.)
               parseMethod(}, null, null, null, null, null, null, null, }, NoType(), null, Foo, DeclarationKind.Class, Foo, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
                 listener: handleNoType(})
                 ensureIdentifierPotentiallyRecovered(}, methodDeclaration, false)
                   listener: handleIdentifier(Foo, methodDeclaration)
@@ -1023,7 +1023,7 @@
               listener: beginMember()
               isReservedKeyword(.)
               parseMethod(}, null, null, null, null, null, null, null, }, NoType(), null, Foo, DeclarationKind.Class, Foo, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
                 listener: handleNoType(})
                 ensureIdentifierPotentiallyRecovered(}, methodDeclaration, false)
                   listener: handleIdentifier(Foo, methodDeclaration)
@@ -1189,7 +1189,7 @@
               listener: beginMember()
               isReservedKeyword(.)
               parseMethod(}, null, null, null, null, null, null, null, }, NoType(), null, Foo, DeclarationKind.Class, Foo, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
                 listener: handleNoType(})
                 ensureIdentifierPotentiallyRecovered(}, methodDeclaration, false)
                   listener: handleIdentifier(Foo, methodDeclaration)
diff --git a/pkg/front_end/parser_testcases/patterns/const_patterns.dart.expect b/pkg/front_end/parser_testcases/patterns/const_patterns.dart.expect
index 892f621..95da327 100644
--- a/pkg/front_end/parser_testcases/patterns/const_patterns.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/const_patterns.dart.expect
@@ -262,7 +262,7 @@
         beginMetadataStar(const)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, const, null, Class, Class)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, const, null, Class, Class)
             handleNoType(const)
             handleIdentifier(Class, methodDeclaration)
             handleNoTypeVariables(()
@@ -285,7 +285,7 @@
         beginMetadataStar(const)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, const, null, Class, Class)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, const, null, Class, Class)
             handleNoType(const)
             handleIdentifier(Class, methodDeclaration)
             handleIdentifier(named, methodDeclarationContinuation)
@@ -1765,7 +1765,7 @@
         beginMetadataStar(const)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, const, null, GenericClass, GenericClass)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, const, null, GenericClass, GenericClass)
             handleNoType(const)
             handleIdentifier(GenericClass, methodDeclaration)
             handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/patterns/const_patterns.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/const_patterns.dart.intertwined.expect
index 9c21431..f3bc1c0 100644
--- a/pkg/front_end/parser_testcases/patterns/const_patterns.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/const_patterns.dart.intertwined.expect
@@ -112,7 +112,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseMethod({, null, null, null, null, null, null, const, const, NoType(), null, Class, DeclarationKind.Class, Class, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, const, null, Class, Class)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, const, null, Class, Class)
                 listener: handleNoType(const)
                 ensureIdentifierPotentiallyRecovered(const, methodDeclaration, false)
                   listener: handleIdentifier(Class, methodDeclaration)
@@ -155,7 +155,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseMethod(;, null, null, null, null, null, null, const, const, NoType(), null, Class, DeclarationKind.Class, Class, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, const, null, Class, Class)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, const, null, Class, Class)
                 listener: handleNoType(const)
                 ensureIdentifierPotentiallyRecovered(const, methodDeclaration, false)
                   listener: handleIdentifier(Class, methodDeclaration)
@@ -3217,7 +3217,7 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               parseMethod({, null, null, null, null, null, null, const, const, NoType(), null, GenericClass, DeclarationKind.Class, GenericClass, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, const, null, GenericClass, GenericClass)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, const, null, GenericClass, GenericClass)
                 listener: handleNoType(const)
                 ensureIdentifierPotentiallyRecovered(const, methodDeclaration, false)
                   listener: handleIdentifier(GenericClass, methodDeclaration)
diff --git a/pkg/front_end/parser_testcases/patterns/issue_51169.dart.expect b/pkg/front_end/parser_testcases/patterns/issue_51169.dart.expect
index 32e0896..f0e715b 100644
--- a/pkg/front_end/parser_testcases/patterns/issue_51169.dart.expect
+++ b/pkg/front_end/parser_testcases/patterns/issue_51169.dart.expect
@@ -26,7 +26,7 @@
         beginMetadataStar(Class)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Class, Class)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Class, Class)
             handleNoType(;)
             handleIdentifier(Class, methodDeclaration)
             handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/patterns/issue_51169.dart.intertwined.expect b/pkg/front_end/parser_testcases/patterns/issue_51169.dart.intertwined.expect
index 8861853..bb47a6b 100644
--- a/pkg/front_end/parser_testcases/patterns/issue_51169.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/patterns/issue_51169.dart.intertwined.expect
@@ -52,7 +52,7 @@
               listener: beginMember()
               isReservedKeyword(()
               parseMethod(;, null, null, null, null, null, null, null, ;, NoType(), null, Class, DeclarationKind.Class, Class, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Class, Class)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Class, Class)
                 listener: handleNoType(;)
                 ensureIdentifierPotentiallyRecovered(;, methodDeclaration, false)
                   listener: handleIdentifier(Class, methodDeclaration)
diff --git a/pkg/front_end/parser_testcases/record/field_formal_parameter_with_explicit_record_type.dart.expect b/pkg/front_end/parser_testcases/record/field_formal_parameter_with_explicit_record_type.dart.expect
index 2062ea3..2cbfb34 100644
--- a/pkg/front_end/parser_testcases/record/field_formal_parameter_with_explicit_record_type.dart.expect
+++ b/pkg/front_end/parser_testcases/record/field_formal_parameter_with_explicit_record_type.dart.expect
@@ -15,7 +15,7 @@
         beginMetadataStar(C)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, C, C)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, C, C)
             handleNoType({)
             handleIdentifier(C, methodDeclaration)
             handleNoTypeVariables(()
@@ -55,7 +55,7 @@
         beginMetadataStar(C)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, C, C)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, C, C)
             handleNoType(;)
             handleIdentifier(C, methodDeclaration)
             handleNoTypeVariables(()
@@ -97,7 +97,7 @@
         beginMetadataStar(C)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, C, C)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, C, C)
             handleNoType(;)
             handleIdentifier(C, methodDeclaration)
             handleNoTypeVariables(()
@@ -139,7 +139,7 @@
         beginMetadataStar(C)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, C, C)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, C, C)
             handleNoType(;)
             handleIdentifier(C, methodDeclaration)
             handleNoTypeVariables(()
@@ -179,7 +179,7 @@
         beginMetadataStar(C)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, C, C)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, C, C)
             handleNoType(;)
             handleIdentifier(C, methodDeclaration)
             handleNoTypeVariables(()
@@ -221,7 +221,7 @@
         beginMetadataStar(C)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, C, C)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, C, C)
             handleNoType(;)
             handleIdentifier(C, methodDeclaration)
             handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/record/field_formal_parameter_with_explicit_record_type.dart.intertwined.expect b/pkg/front_end/parser_testcases/record/field_formal_parameter_with_explicit_record_type.dart.intertwined.expect
index a8bd22c..530b3ee 100644
--- a/pkg/front_end/parser_testcases/record/field_formal_parameter_with_explicit_record_type.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/record/field_formal_parameter_with_explicit_record_type.dart.intertwined.expect
@@ -35,7 +35,7 @@
               listener: beginMember()
               isReservedKeyword(()
               parseMethod({, null, null, null, null, null, null, null, {, NoType(), null, C, DeclarationKind.Class, C, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, C, C)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, C, C)
                 listener: handleNoType({)
                 ensureIdentifierPotentiallyRecovered({, methodDeclaration, false)
                   listener: handleIdentifier(C, methodDeclaration)
@@ -103,7 +103,7 @@
               listener: beginMember()
               isReservedKeyword(()
               parseMethod(;, null, null, null, null, null, null, null, ;, NoType(), null, C, DeclarationKind.Class, C, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, C, C)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, C, C)
                 listener: handleNoType(;)
                 ensureIdentifierPotentiallyRecovered(;, methodDeclaration, false)
                   listener: handleIdentifier(C, methodDeclaration)
@@ -175,7 +175,7 @@
               listener: beginMember()
               isReservedKeyword(()
               parseMethod(;, null, null, null, null, null, null, null, ;, NoType(), null, C, DeclarationKind.Class, C, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, C, C)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, C, C)
                 listener: handleNoType(;)
                 ensureIdentifierPotentiallyRecovered(;, methodDeclaration, false)
                   listener: handleIdentifier(C, methodDeclaration)
@@ -247,7 +247,7 @@
               listener: beginMember()
               isReservedKeyword(()
               parseMethod(;, null, null, null, null, null, null, null, ;, NoType(), null, C, DeclarationKind.Class, C, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, C, C)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, C, C)
                 listener: handleNoType(;)
                 ensureIdentifierPotentiallyRecovered(;, methodDeclaration, false)
                   listener: handleIdentifier(C, methodDeclaration)
@@ -315,7 +315,7 @@
               listener: beginMember()
               isReservedKeyword(()
               parseMethod(;, null, null, null, null, null, null, null, ;, NoType(), null, C, DeclarationKind.Class, C, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, C, C)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, C, C)
                 listener: handleNoType(;)
                 ensureIdentifierPotentiallyRecovered(;, methodDeclaration, false)
                   listener: handleIdentifier(C, methodDeclaration)
@@ -387,7 +387,7 @@
               listener: beginMember()
               isReservedKeyword(()
               parseMethod(;, null, null, null, null, null, null, null, ;, NoType(), null, C, DeclarationKind.Class, C, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, C, C)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, C, C)
                 listener: handleNoType(;)
                 ensureIdentifierPotentiallyRecovered(;, methodDeclaration, false)
                   listener: handleIdentifier(C, methodDeclaration)
diff --git a/pkg/front_end/parser_testcases/record/super_parameters_record_type.dart.expect b/pkg/front_end/parser_testcases/record/super_parameters_record_type.dart.expect
index 01ecc62..e4d649c 100644
--- a/pkg/front_end/parser_testcases/record/super_parameters_record_type.dart.expect
+++ b/pkg/front_end/parser_testcases/record/super_parameters_record_type.dart.expect
@@ -17,7 +17,7 @@
         beginMetadataStar(Foo)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
             handleNoType({)
             handleIdentifier(Foo, methodDeclaration)
             handleNoTypeVariables(()
@@ -55,7 +55,7 @@
         beginMetadataStar(Foo)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
             handleNoType(;)
             handleIdentifier(Foo, methodDeclaration)
             handleNoTypeVariables(()
@@ -95,7 +95,7 @@
         beginMetadataStar(Foo)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
             handleNoType(;)
             handleIdentifier(Foo, methodDeclaration)
             handleNoTypeVariables(()
@@ -135,7 +135,7 @@
         beginMetadataStar(Foo)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
+          beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
             handleNoType(;)
             handleIdentifier(Foo, methodDeclaration)
             handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/record/super_parameters_record_type.dart.intertwined.expect b/pkg/front_end/parser_testcases/record/super_parameters_record_type.dart.intertwined.expect
index 3654b43..574d3e5 100644
--- a/pkg/front_end/parser_testcases/record/super_parameters_record_type.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/record/super_parameters_record_type.dart.intertwined.expect
@@ -38,7 +38,7 @@
               listener: beginMember()
               isReservedKeyword(()
               parseMethod({, null, null, null, null, null, null, null, {, NoType(), null, Foo, DeclarationKind.Class, Foo, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
                 listener: handleNoType({)
                 ensureIdentifierPotentiallyRecovered({, methodDeclaration, false)
                   listener: handleIdentifier(Foo, methodDeclaration)
@@ -100,7 +100,7 @@
               listener: beginMember()
               isReservedKeyword(()
               parseMethod(;, null, null, null, null, null, null, null, ;, NoType(), null, Foo, DeclarationKind.Class, Foo, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
                 listener: handleNoType(;)
                 ensureIdentifierPotentiallyRecovered(;, methodDeclaration, false)
                   listener: handleIdentifier(Foo, methodDeclaration)
@@ -166,7 +166,7 @@
               listener: beginMember()
               isReservedKeyword(()
               parseMethod(;, null, null, null, null, null, null, null, ;, NoType(), null, Foo, DeclarationKind.Class, Foo, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
                 listener: handleNoType(;)
                 ensureIdentifierPotentiallyRecovered(;, methodDeclaration, false)
                   listener: handleIdentifier(Foo, methodDeclaration)
@@ -232,7 +232,7 @@
               listener: beginMember()
               isReservedKeyword(()
               parseMethod(;, null, null, null, null, null, null, null, ;, NoType(), null, Foo, DeclarationKind.Class, Foo, false)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
+                listener: beginConstructor(DeclarationKind.Class, null, null, null, null, null, null, Foo, Foo)
                 listener: handleNoType(;)
                 ensureIdentifierPotentiallyRecovered(;, methodDeclaration, false)
                   listener: handleIdentifier(Foo, methodDeclaration)
diff --git a/pkg/front_end/test/parser_test_listener.dart b/pkg/front_end/test/parser_test_listener.dart
index b8fb91d..4b5547c 100644
--- a/pkg/front_end/test/parser_test_listener.dart
+++ b/pkg/front_end/test/parser_test_listener.dart
@@ -2174,6 +2174,40 @@
   }
 
   @override
+  void beginConstructor(
+    DeclarationKind declarationKind,
+    Token? augmentToken,
+    Token? externalToken,
+    Token? staticToken,
+    Token? covariantToken,
+    Token? varFinalOrConst,
+    Token? getOrSet,
+    Token name,
+    String? enclosingDeclarationName,
+  ) {
+    seen(augmentToken);
+    seen(externalToken);
+    seen(staticToken);
+    seen(covariantToken);
+    seen(varFinalOrConst);
+    seen(getOrSet);
+    seen(name);
+    doPrint(
+      'beginConstructor('
+      '$declarationKind, '
+      '$augmentToken, '
+      '$externalToken, '
+      '$staticToken, '
+      '$covariantToken, '
+      '$varFinalOrConst, '
+      '$getOrSet, '
+      '$name, '
+      '$enclosingDeclarationName)',
+    );
+    indent++;
+  }
+
+  @override
   void endConstructor(
     DeclarationKind kind,
     Token beginToken,
diff --git a/pkg/front_end/test/parser_test_listener_creator.dart b/pkg/front_end/test/parser_test_listener_creator.dart
index 9a6694f..4ad8bfb 100644
--- a/pkg/front_end/test/parser_test_listener_creator.dart
+++ b/pkg/front_end/test/parser_test_listener_creator.dart
@@ -157,6 +157,21 @@
   }
 
   @override
+  void beginConstructor(
+    DeclarationKind declarationKind,
+    Token? augmentToken,
+    Token? externalToken,
+    Token? staticToken,
+    Token? covariantToken,
+    Token? varFinalOrConst,
+    Token? getOrSet,
+    Token name,
+    String? enclosingDeclarationName,
+  ) {
+    currentMethodName = name.lexeme;
+  }
+
+  @override
   void beginMethod(
     DeclarationKind declarationKind,
     Token? augmentToken,
diff --git a/pkg/front_end/test/parser_test_parser_creator.dart b/pkg/front_end/test/parser_test_parser_creator.dart
index f7f7fff..998028c 100644
--- a/pkg/front_end/test/parser_test_parser_creator.dart
+++ b/pkg/front_end/test/parser_test_parser_creator.dart
@@ -159,6 +159,21 @@
   }
 
   @override
+  void beginConstructor(
+    DeclarationKind declarationKind,
+    Token? augmentToken,
+    Token? externalToken,
+    Token? staticToken,
+    Token? covariantToken,
+    Token? varFinalOrConst,
+    Token? getOrSet,
+    Token name,
+    String? enclosingDeclarationName,
+  ) {
+    currentMethodName = name.lexeme;
+  }
+
+  @override
   void beginMethod(
     DeclarationKind declarationKind,
     Token? augmentToken,
diff --git a/pkg/front_end/tool/parser_ast_helper_creator.dart b/pkg/front_end/tool/parser_ast_helper_creator.dart
index a720556..0702818 100644
--- a/pkg/front_end/tool/parser_ast_helper_creator.dart
+++ b/pkg/front_end/tool/parser_ast_helper_creator.dart
@@ -219,6 +219,21 @@
   }
 
   @override
+  void beginConstructor(
+    DeclarationKind declarationKind,
+    Token? augmentToken,
+    Token? externalToken,
+    Token? staticToken,
+    Token? covariantToken,
+    Token? varFinalOrConst,
+    Token? getOrSet,
+    Token name,
+    String? enclosingDeclarationName,
+  ) {
+    currentMethodName = name.lexeme;
+  }
+
+  @override
   void beginMethod(
     DeclarationKind declarationKind,
     Token? augmentToken,