Version 2.15.0-119.0.dev

Merge commit 'af18bfacc153dc23528a64fedcc849daac6a26f2' into 'dev'
diff --git a/pkg/_fe_analyzer_shared/lib/src/messages/codes_generated.dart b/pkg/_fe_analyzer_shared/lib/src/messages/codes_generated.dart
index 4cd2f61f..f170c1f 100644
--- a/pkg/_fe_analyzer_shared/lib/src/messages/codes_generated.dart
+++ b/pkg/_fe_analyzer_shared/lib/src/messages/codes_generated.dart
@@ -1805,7 +1805,7 @@
 // DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
 const MessageCode messageConstructorWithTypeArguments = const MessageCode(
     "ConstructorWithTypeArguments",
-    analyzerCodes: <String>["WRONG_NUMBER_OF_TYPE_ARGUMENTS_CONSTRUCTOR"],
+    index: 118,
     message:
         r"""A constructor invocation can't have type arguments after the constructor name.""",
     tip:
diff --git a/pkg/analyzer/lib/error/error.dart b/pkg/analyzer/lib/error/error.dart
index f037f8b..d6fa2dd 100644
--- a/pkg/analyzer/lib/error/error.dart
+++ b/pkg/analyzer/lib/error/error.dart
@@ -685,6 +685,7 @@
   ParserErrorCode.CONST_METHOD,
   ParserErrorCode.CONST_TYPEDEF,
   ParserErrorCode.CONSTRUCTOR_WITH_RETURN_TYPE,
+  ParserErrorCode.CONSTRUCTOR_WITH_TYPE_ARGUMENTS,
   ParserErrorCode.CONTINUE_OUTSIDE_OF_LOOP,
   ParserErrorCode.CONTINUE_WITHOUT_LABEL_IN_CASE,
   ParserErrorCode.COVARIANT_AND_STATIC,
diff --git a/pkg/analyzer/lib/src/dart/error/syntactic_errors.dart b/pkg/analyzer/lib/src/dart/error/syntactic_errors.dart
index e1358f1..a509482 100644
--- a/pkg/analyzer/lib/src/dart/error/syntactic_errors.dart
+++ b/pkg/analyzer/lib/src/dart/error/syntactic_errors.dart
@@ -114,6 +114,9 @@
   static const ParserErrorCode CONSTRUCTOR_WITH_RETURN_TYPE =
       _CONSTRUCTOR_WITH_RETURN_TYPE;
 
+  static const ParserErrorCode CONSTRUCTOR_WITH_TYPE_ARGUMENTS =
+      _CONSTRUCTOR_WITH_TYPE_ARGUMENTS;
+
   static const ParserErrorCode CONTINUE_OUTSIDE_OF_LOOP =
       _CONTINUE_OUTSIDE_OF_LOOP;
 
diff --git a/pkg/analyzer/lib/src/dart/error/syntactic_errors.g.dart b/pkg/analyzer/lib/src/dart/error/syntactic_errors.g.dart
index 8d7a644..a24b695 100644
--- a/pkg/analyzer/lib/src/dart/error/syntactic_errors.g.dart
+++ b/pkg/analyzer/lib/src/dart/error/syntactic_errors.g.dart
@@ -125,6 +125,7 @@
   _LITERAL_WITH_CLASS_AND_NEW,
   _LITERAL_WITH_CLASS,
   _LITERAL_WITH_NEW,
+  _CONSTRUCTOR_WITH_TYPE_ARGUMENTS,
 ];
 
 const ParserErrorCode _ABSTRACT_CLASS_MEMBER = ParserErrorCode(
@@ -196,6 +197,12 @@
     'CONSTRUCTOR_WITH_RETURN_TYPE', r"Constructors can't have a return type.",
     correction: "Try removing the return type.");
 
+const ParserErrorCode _CONSTRUCTOR_WITH_TYPE_ARGUMENTS = ParserErrorCode(
+    'CONSTRUCTOR_WITH_TYPE_ARGUMENTS',
+    r"A constructor invocation can't have type arguments after the constructor name.",
+    correction:
+        "Try removing the type arguments or placing them after the class name.");
+
 const ParserErrorCode _CONST_AND_FINAL = ParserErrorCode('CONST_AND_FINAL',
     r"Members can't be declared to be both 'const' and 'final'.",
     correction: "Try removing either the 'const' or 'final' keyword.");
diff --git a/pkg/analyzer/lib/src/fasta/error_converter.dart b/pkg/analyzer/lib/src/fasta/error_converter.dart
index f5e935f..d4e4833 100644
--- a/pkg/analyzer/lib/src/fasta/error_converter.dart
+++ b/pkg/analyzer/lib/src/fasta/error_converter.dart
@@ -317,13 +317,6 @@
             offset,
             length);
         return;
-      case "WRONG_NUMBER_OF_TYPE_ARGUMENTS_CONSTRUCTOR":
-        errorReporter?.reportErrorMessage(
-            CompileTimeErrorCode.WRONG_NUMBER_OF_TYPE_ARGUMENTS_CONSTRUCTOR,
-            offset,
-            length,
-            message);
-        return;
       case "WRONG_SEPARATOR_FOR_POSITIONAL_PARAMETER":
         errorReporter?.reportErrorForOffset(
             ParserErrorCode.WRONG_SEPARATOR_FOR_POSITIONAL_PARAMETER,
diff --git a/pkg/analyzer/test/generated/expression_parser_test.dart b/pkg/analyzer/test/generated/expression_parser_test.dart
index 14eaa8d..cfcbb34 100644
--- a/pkg/analyzer/test/generated/expression_parser_test.dart
+++ b/pkg/analyzer/test/generated/expression_parser_test.dart
@@ -10,7 +10,6 @@
 import 'package:analyzer/src/dart/ast/ast.dart'
     show InstanceCreationExpressionImpl;
 import 'package:analyzer/src/dart/scanner/scanner.dart';
-import 'package:analyzer/src/error/codes.dart';
 import 'package:analyzer/src/generated/testing/token_factory.dart';
 import 'package:pub_semver/src/version.dart';
 import 'package:test/test.dart';
@@ -1159,8 +1158,7 @@
 
   void test_parseInstanceCreationExpression_type_named_typeArguments_34403() {
     var expression = parseExpression('new a.b.c<C>()', errors: [
-      expectedError(
-          CompileTimeErrorCode.WRONG_NUMBER_OF_TYPE_ARGUMENTS_CONSTRUCTOR, 8, 1)
+      expectedError(ParserErrorCode.CONSTRUCTOR_WITH_TYPE_ARGUMENTS, 8, 1)
     ]) as InstanceCreationExpressionImpl;
     expect(expression, isNotNull);
     expect(expression.keyword!.keyword, Keyword.NEW);
diff --git a/pkg/analyzer/test/generated/statement_parser_test.dart b/pkg/analyzer/test/generated/statement_parser_test.dart
index 02d0f4b..d86564a 100644
--- a/pkg/analyzer/test/generated/statement_parser_test.dart
+++ b/pkg/analyzer/test/generated/statement_parser_test.dart
@@ -6,7 +6,6 @@
 import 'package:analyzer/dart/ast/token.dart' as analyzer;
 import 'package:analyzer/dart/ast/token.dart' show TokenType;
 import 'package:analyzer/src/dart/scanner/scanner.dart';
-import 'package:analyzer/src/error/codes.dart';
 import 'package:test/test.dart';
 import 'package:test_reflective_loader/test_reflective_loader.dart';
 
@@ -995,8 +994,7 @@
 
   void test_parseNonLabeledStatement_const_object_named_typeParameters_34403() {
     var statement = parseStatement('const A<B>.c<C>();') as ExpressionStatement;
-    assertErrorsWithCodes(
-        [CompileTimeErrorCode.WRONG_NUMBER_OF_TYPE_ARGUMENTS_CONSTRUCTOR]);
+    assertErrorsWithCodes([ParserErrorCode.CONSTRUCTOR_WITH_TYPE_ARGUMENTS]);
     expect(statement.expression, isNotNull);
   }
 
diff --git a/pkg/analyzer/test/src/dart/resolution/instance_creation_test.dart b/pkg/analyzer/test/src/dart/resolution/instance_creation_test.dart
index 4d27277..1aa9945 100644
--- a/pkg/analyzer/test/src/dart/resolution/instance_creation_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/instance_creation_test.dart
@@ -201,8 +201,7 @@
   new p.Foo.bar<int>();
 }
 ''', [
-      error(CompileTimeErrorCode.WRONG_NUMBER_OF_TYPE_ARGUMENTS_CONSTRUCTOR, 44,
-          3),
+      error(ParserErrorCode.CONSTRUCTOR_WITH_TYPE_ARGUMENTS, 44, 3),
     ]);
 
     // TODO(brianwilkerson) Test this more carefully after we can re-write the
diff --git a/pkg/front_end/messages.yaml b/pkg/front_end/messages.yaml
index 043ae81..49d1fa6 100644
--- a/pkg/front_end/messages.yaml
+++ b/pkg/front_end/messages.yaml
@@ -1630,7 +1630,8 @@
 ConstructorWithTypeArguments:
   template: "A constructor invocation can't have type arguments after the constructor name."
   tip: "Try removing the type arguments or placing them after the class name."
-  analyzerCode: WRONG_NUMBER_OF_TYPE_ARGUMENTS_CONSTRUCTOR
+  analyzerCode: ParserErrorCode.CONSTRUCTOR_WITH_TYPE_ARGUMENTS
+  index: 118
   script:
     - "class C<X> { C.foo(); } bar() { new C.foo<int>(); }"
     - "class C<X> { C.foo(); } bar() { C.foo<int>(); }"
diff --git a/tests/language/constructor/named_constructor_test.dart b/tests/language/constructor/named_constructor_test.dart
index 5b37427..fba725e 100644
--- a/tests/language/constructor/named_constructor_test.dart
+++ b/tests/language/constructor/named_constructor_test.dart
@@ -29,7 +29,7 @@
   // 'Class<int>.named<int>' doesn't fit the grammar syntax T.id:
   new Class<int>.named<int>().value;
   //             ^^^^^
-  // [analyzer] COMPILE_TIME_ERROR.WRONG_NUMBER_OF_TYPE_ARGUMENTS_CONSTRUCTOR
+  // [analyzer] SYNTACTIC_ERROR.CONSTRUCTOR_WITH_TYPE_ARGUMENTS
   // [cfe] A constructor invocation can't have type arguments after the constructor name.
 
   new prefix.Class().value;
@@ -45,7 +45,7 @@
   //  ^^^^^^
   // [analyzer] COMPILE_TIME_ERROR.CREATION_WITH_NON_TYPE
   //              ^^^^^
-  // [analyzer] COMPILE_TIME_ERROR.WRONG_NUMBER_OF_TYPE_ARGUMENTS_CONSTRUCTOR
+  // [analyzer] SYNTACTIC_ERROR.CONSTRUCTOR_WITH_TYPE_ARGUMENTS
   // [cfe] A constructor invocation can't have type arguments after the constructor name.
   // [cfe] Couldn't find constructor 'prefix.Class'.
 
@@ -65,7 +65,7 @@
   // 'prefix.Class.named<int>' doesn't fit the grammar syntax T.id:
   new prefix.Class.named<int>().value;
   //               ^^^^^
-  // [analyzer] COMPILE_TIME_ERROR.WRONG_NUMBER_OF_TYPE_ARGUMENTS_CONSTRUCTOR
+  // [analyzer] SYNTACTIC_ERROR.CONSTRUCTOR_WITH_TYPE_ARGUMENTS
   // [cfe] A constructor invocation can't have type arguments after the constructor name.
 
   // 'prefix<int>.Class<int>' doesn't fit the grammar syntax T.id:
@@ -73,7 +73,7 @@
   //  ^^^^^^
   // [analyzer] COMPILE_TIME_ERROR.CREATION_WITH_NON_TYPE
   //              ^^^^^
-  // [analyzer] COMPILE_TIME_ERROR.WRONG_NUMBER_OF_TYPE_ARGUMENTS_CONSTRUCTOR
+  // [analyzer] SYNTACTIC_ERROR.CONSTRUCTOR_WITH_TYPE_ARGUMENTS
   // [cfe] A constructor invocation can't have type arguments after the constructor name.
   // [cfe] Couldn't find constructor 'prefix.Class'.
 
@@ -91,7 +91,7 @@
   // 'prefix.Class<int>.named<int>' doesn't fit the grammar syntax T.id:
   new prefix.Class<int>.named<int>().value;
   //                    ^^^^^
-  // [analyzer] COMPILE_TIME_ERROR.WRONG_NUMBER_OF_TYPE_ARGUMENTS_CONSTRUCTOR
+  // [analyzer] SYNTACTIC_ERROR.CONSTRUCTOR_WITH_TYPE_ARGUMENTS
   // [cfe] A constructor invocation can't have type arguments after the constructor name.
 
   // 'prefix<int>.Class<int>.named<int>' doesn't fit the grammar syntax T.id:
@@ -99,7 +99,7 @@
   //  ^^^^^^
   // [analyzer] COMPILE_TIME_ERROR.CREATION_WITH_NON_TYPE
   //              ^^^^^
-  // [analyzer] COMPILE_TIME_ERROR.WRONG_NUMBER_OF_TYPE_ARGUMENTS_CONSTRUCTOR
+  // [analyzer] SYNTACTIC_ERROR.CONSTRUCTOR_WITH_TYPE_ARGUMENTS
   // [cfe] A constructor invocation can't have type arguments after the constructor name.
   // [cfe] Couldn't find constructor 'prefix.Class'.
 }
diff --git a/tests/language/constructor/reference_test.dart b/tests/language/constructor/reference_test.dart
index b15338b..6828160 100644
--- a/tests/language/constructor/reference_test.dart
+++ b/tests/language/constructor/reference_test.dart
@@ -39,7 +39,7 @@
   //  ^^^^^^^
   // [analyzer] COMPILE_TIME_ERROR.CREATION_WITH_NON_TYPE
   //          ^^^
-  // [analyzer] COMPILE_TIME_ERROR.WRONG_NUMBER_OF_TYPE_ARGUMENTS_CONSTRUCTOR
+  // [analyzer] SYNTACTIC_ERROR.CONSTRUCTOR_WITH_TYPE_ARGUMENTS
   // [cfe] A constructor invocation can't have type arguments after the constructor name.
   // [cfe] Couldn't find constructor 'Foo.bar.baz'.
 
@@ -73,7 +73,7 @@
   //    ^^^^^^^
   // [analyzer] COMPILE_TIME_ERROR.CREATION_WITH_NON_TYPE
   //            ^^^
-  // [analyzer] COMPILE_TIME_ERROR.WRONG_NUMBER_OF_TYPE_ARGUMENTS_CONSTRUCTOR
+  // [analyzer] SYNTACTIC_ERROR.CONSTRUCTOR_WITH_TYPE_ARGUMENTS
   // [cfe] A constructor invocation can't have type arguments after the constructor name.
   // [cfe] Couldn't find constructor 'Foo.bar.baz'.
 
diff --git a/tests/language_2/constructor/named_constructor_test.dart b/tests/language_2/constructor/named_constructor_test.dart
index 0cad797..daeb070 100644
--- a/tests/language_2/constructor/named_constructor_test.dart
+++ b/tests/language_2/constructor/named_constructor_test.dart
@@ -31,7 +31,7 @@
   // 'Class<int>.named<int>' doesn't fit the grammar syntax T.id:
   new Class<int>.named<int>().value;
   //             ^^^^^
-  // [analyzer] COMPILE_TIME_ERROR.WRONG_NUMBER_OF_TYPE_ARGUMENTS_CONSTRUCTOR
+  // [analyzer] SYNTACTIC_ERROR.CONSTRUCTOR_WITH_TYPE_ARGUMENTS
   // [cfe] A constructor invocation can't have type arguments after the constructor name.
 
   new prefix.Class().value;
@@ -47,7 +47,7 @@
   //  ^^^^^^
   // [analyzer] COMPILE_TIME_ERROR.CREATION_WITH_NON_TYPE
   //              ^^^^^
-  // [analyzer] COMPILE_TIME_ERROR.WRONG_NUMBER_OF_TYPE_ARGUMENTS_CONSTRUCTOR
+  // [analyzer] SYNTACTIC_ERROR.CONSTRUCTOR_WITH_TYPE_ARGUMENTS
   // [cfe] A constructor invocation can't have type arguments after the constructor name.
   // [cfe] Couldn't find constructor 'prefix.Class'.
 
@@ -67,7 +67,7 @@
   // 'prefix.Class.named<int>' doesn't fit the grammar syntax T.id:
   new prefix.Class.named<int>().value;
   //               ^^^^^
-  // [analyzer] COMPILE_TIME_ERROR.WRONG_NUMBER_OF_TYPE_ARGUMENTS_CONSTRUCTOR
+  // [analyzer] SYNTACTIC_ERROR.CONSTRUCTOR_WITH_TYPE_ARGUMENTS
   // [cfe] A constructor invocation can't have type arguments after the constructor name.
 
   // 'prefix<int>.Class<int>' doesn't fit the grammar syntax T.id:
@@ -75,7 +75,7 @@
   //  ^^^^^^
   // [analyzer] COMPILE_TIME_ERROR.CREATION_WITH_NON_TYPE
   //              ^^^^^
-  // [analyzer] COMPILE_TIME_ERROR.WRONG_NUMBER_OF_TYPE_ARGUMENTS_CONSTRUCTOR
+  // [analyzer] SYNTACTIC_ERROR.CONSTRUCTOR_WITH_TYPE_ARGUMENTS
   // [cfe] A constructor invocation can't have type arguments after the constructor name.
   // [cfe] Couldn't find constructor 'prefix.Class'.
 
@@ -93,7 +93,7 @@
   // 'prefix.Class<int>.named<int>' doesn't fit the grammar syntax T.id:
   new prefix.Class<int>.named<int>().value;
   //                    ^^^^^
-  // [analyzer] COMPILE_TIME_ERROR.WRONG_NUMBER_OF_TYPE_ARGUMENTS_CONSTRUCTOR
+  // [analyzer] SYNTACTIC_ERROR.CONSTRUCTOR_WITH_TYPE_ARGUMENTS
   // [cfe] A constructor invocation can't have type arguments after the constructor name.
 
   // 'prefix<int>.Class<int>.named<int>' doesn't fit the grammar syntax T.id:
@@ -101,7 +101,7 @@
   //  ^^^^^^
   // [analyzer] COMPILE_TIME_ERROR.CREATION_WITH_NON_TYPE
   //              ^^^^^
-  // [analyzer] COMPILE_TIME_ERROR.WRONG_NUMBER_OF_TYPE_ARGUMENTS_CONSTRUCTOR
+  // [analyzer] SYNTACTIC_ERROR.CONSTRUCTOR_WITH_TYPE_ARGUMENTS
   // [cfe] A constructor invocation can't have type arguments after the constructor name.
   // [cfe] Couldn't find constructor 'prefix.Class'.
 }
diff --git a/tests/language_2/constructor/reference_test.dart b/tests/language_2/constructor/reference_test.dart
index 03c68d5..738d450 100644
--- a/tests/language_2/constructor/reference_test.dart
+++ b/tests/language_2/constructor/reference_test.dart
@@ -41,7 +41,7 @@
   //  ^^^^^^^
   // [analyzer] COMPILE_TIME_ERROR.CREATION_WITH_NON_TYPE
   //          ^^^
-  // [analyzer] COMPILE_TIME_ERROR.WRONG_NUMBER_OF_TYPE_ARGUMENTS_CONSTRUCTOR
+  // [analyzer] SYNTACTIC_ERROR.CONSTRUCTOR_WITH_TYPE_ARGUMENTS
   // [cfe] A constructor invocation can't have type arguments after the constructor name.
   // [cfe] Couldn't find constructor 'Foo.bar.baz'.
 
@@ -75,7 +75,7 @@
   //    ^^^^^^^
   // [analyzer] COMPILE_TIME_ERROR.CREATION_WITH_NON_TYPE
   //            ^^^
-  // [analyzer] COMPILE_TIME_ERROR.WRONG_NUMBER_OF_TYPE_ARGUMENTS_CONSTRUCTOR
+  // [analyzer] SYNTACTIC_ERROR.CONSTRUCTOR_WITH_TYPE_ARGUMENTS
   // [cfe] A constructor invocation can't have type arguments after the constructor name.
   // [cfe] Couldn't find constructor 'Foo.bar.baz'.
 
diff --git a/tools/VERSION b/tools/VERSION
index cff4e45..aebd539 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
 MAJOR 2
 MINOR 15
 PATCH 0
-PRERELEASE 118
+PRERELEASE 119
 PRERELEASE_PATCH 0
\ No newline at end of file