Version 2.15.0-132.0.dev

Merge commit '5c719b3bd375fa2560d39eb816681881c525b515' into 'dev'
diff --git a/pkg/compiler/lib/src/diagnostics/generated/shared_messages.dart b/pkg/compiler/lib/src/diagnostics/generated/shared_messages.dart
deleted file mode 100644
index 467a5bf..0000000
--- a/pkg/compiler/lib/src/diagnostics/generated/shared_messages.dart
+++ /dev/null
@@ -1,217 +0,0 @@
-// Copyright (c) 2015, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-/*
-DON'T EDIT. GENERATED. DON'T EDIT.
-This file has been generated by 'publish.dart' in the dart_messages package.
-
-Messages are maintained in `lib/shared_messages.dart` of that same package.
-After any change to that file, run `bin/publish.dart` to generate a new version
-of the json, dart2js and analyzer representations.
-*/
-import '../messages.dart' show MessageKind, MessageTemplate;
-
-const Map<MessageKind, MessageTemplate> TEMPLATES =
-    const <MessageKind, MessageTemplate>{
-  MessageKind.CONST_CONSTRUCTOR_WITH_BODY: const MessageTemplate(
-      MessageKind.CONST_CONSTRUCTOR_WITH_BODY,
-      "Const constructor can't have a body.",
-      howToFix: "Try removing the 'const' keyword or the body.",
-      examples: const [
-        r"""
-         class C {
-           const C() {}
-         }
-
-         main() => new C();""",
-      ]), // Generated. Don't edit.
-  MessageKind.CONST_FACTORY: const MessageTemplate(MessageKind.CONST_FACTORY,
-      "Only redirecting factory constructors can be declared to be 'const'.",
-      howToFix:
-          "Try removing the 'const' keyword or replacing the body with '=' followed by a valid target.",
-      examples: const [
-        r"""
-         class C {
-           const factory C() {}
-         }
-
-         main() => new C();""",
-      ]), // Generated. Don't edit.
-  MessageKind.EXTRANEOUS_MODIFIER: const MessageTemplate(
-      MessageKind.EXTRANEOUS_MODIFIER,
-      "Can't have modifier '#{modifier}' here.",
-      howToFix: "Try removing '#{modifier}'.",
-      examples: const [
-        "var String foo; main(){}",
-        "var final foo; main(){}",
-        "var var foo; main(){}",
-        "var const foo; main(){}",
-        "var abstract foo; main(){}",
-        "var static foo; main(){}",
-        "var external foo; main(){}",
-        "final var foo; main(){}",
-        "var var foo; main(){}",
-        "const var foo; main(){}",
-        "abstract var foo; main(){}",
-        "static var foo; main(){}",
-        "external var foo; main(){}",
-      ]), // Generated. Don't edit.
-  MessageKind.EXTRANEOUS_MODIFIER_REPLACE: const MessageTemplate(
-      MessageKind.EXTRANEOUS_MODIFIER_REPLACE,
-      "Can't have modifier '#{modifier}' here.",
-      howToFix:
-          "Try replacing modifier '#{modifier}' with 'var', 'final', or a type.",
-      examples: const [
-        "set foo; main(){}",
-        "abstract foo; main(){}",
-        "static foo; main(){}",
-        "external foo; main(){}",
-      ]), // Generated. Don't edit.
-  MessageKind.CONSTRUCTOR_WITH_RETURN_TYPE: const MessageTemplate(
-      MessageKind.CONSTRUCTOR_WITH_RETURN_TYPE,
-      "Constructors can't have a return type.",
-      howToFix: "Try removing the return type.",
-      examples: const [
-        "class A { int A() {} } main() { new A(); }",
-      ]), // Generated. Don't edit.
-  MessageKind.MISSING_EXPRESSION_IN_THROW: const MessageTemplate(
-      MessageKind.MISSING_EXPRESSION_IN_THROW,
-      "Missing expression after 'throw'.",
-      howToFix: "Did you mean 'rethrow'?"), // Generated. Don't edit.
-  MessageKind.RETHROW_OUTSIDE_CATCH: const MessageTemplate(
-      MessageKind.RETHROW_OUTSIDE_CATCH,
-      "Rethrow must be inside of catch clause.",
-      howToFix:
-          "Try moving the expression into a catch clause, or using a 'throw' expression.",
-      examples: const [
-        "main() { rethrow; }",
-      ]), // Generated. Don't edit.
-  MessageKind.RETURN_IN_GENERATIVE_CONSTRUCTOR: const MessageTemplate(
-      MessageKind.RETURN_IN_GENERATIVE_CONSTRUCTOR,
-      "Constructors can't return values.",
-      howToFix:
-          "Try removing the return statement or using a factory constructor.",
-      examples: const [
-        r"""
-        class C {
-          C() {
-            return 1;
-          }
-        }
-
-        main() => new C();""",
-      ]), // Generated. Don't edit.
-  MessageKind.RETURN_IN_GENERATOR: const MessageTemplate(
-      MessageKind.RETURN_IN_GENERATOR,
-      "Can't return a value from a generator function (using the '#{modifier}' modifier).",
-      howToFix:
-          "Try removing the value, replacing 'return' with 'yield' or changing the method body modifier.",
-      examples: const [
-        r"""
-        foo() async* { return 0; }
-        main() => foo();
-        """,
-        r"""
-        foo() sync* { return 0; }
-        main() => foo();
-        """,
-      ]), // Generated. Don't edit.
-  MessageKind.NOT_ASSIGNABLE: const MessageTemplate(MessageKind.NOT_ASSIGNABLE,
-      "'#{fromType}' is not assignable to '#{toType}'."), // Generated. Don't edit.
-  MessageKind.FORIN_NOT_ASSIGNABLE: const MessageTemplate(
-      MessageKind.FORIN_NOT_ASSIGNABLE,
-      "The element type '#{currentType}' of '#{expressionType}' is not assignable to '#{elementType}'.",
-      examples: const [
-        r"""
-        main() {
-          List<int> list = <int>[1, 2];
-          for (String x in list) x;
-        }
-        """,
-      ]), // Generated. Don't edit.
-  MessageKind.CANNOT_RESOLVE: const MessageTemplate(MessageKind.CANNOT_RESOLVE,
-      "Can't resolve '#{name}'."), // Generated. Don't edit.
-  MessageKind.UNDEFINED_METHOD: const MessageTemplate(
-      MessageKind.UNDEFINED_METHOD,
-      "The method '#{memberName}' is not defined for the class '#{className}'.",
-      examples: const [
-        r"""
-        class A {
-          foo() { bar(); }
-        }
-        main() { new A().foo(); }
-        """,
-      ]), // Generated. Don't edit.
-  MessageKind.UNDEFINED_GETTER: const MessageTemplate(
-      MessageKind.UNDEFINED_GETTER,
-      "The getter '#{memberName}' is not defined for the class '#{className}'.",
-      examples: const [
-        "class A {} main() { new A().x; }",
-        "class A {} main() { A.x; }",
-      ]), // Generated. Don't edit.
-  MessageKind.UNDEFINED_INSTANCE_GETTER_BUT_SETTER: const MessageTemplate(
-      MessageKind.UNDEFINED_INSTANCE_GETTER_BUT_SETTER,
-      "The setter '#{memberName}' in class '#{className}' can not be used as a getter.",
-      examples: const [
-        "class A { set x(y) {} } main() { new A().x; }",
-      ]), // Generated. Don't edit.
-  MessageKind.UNDEFINED_OPERATOR: const MessageTemplate(
-      MessageKind.UNDEFINED_OPERATOR,
-      "The operator '#{memberName}' is not defined for the class '#{className}'.",
-      examples: const [
-        "class A {} main() { new A() + 3; }",
-      ]), // Generated. Don't edit.
-  MessageKind.UNDEFINED_SETTER: const MessageTemplate(
-      MessageKind.UNDEFINED_SETTER,
-      "The setter '#{memberName}' is not defined for the class '#{className}'.",
-      examples: const [
-        "class A {} main() { new A().x = 499; }",
-      ]), // Generated. Don't edit.
-  MessageKind.NO_SUCH_SUPER_MEMBER: const MessageTemplate(
-      MessageKind.NO_SUCH_SUPER_MEMBER,
-      "Can't resolve '#{memberName}' in a superclass of '#{className}'."), // Generated. Don't edit.
-  MessageKind.UNDEFINED_SUPER_SETTER: const MessageTemplate(
-      MessageKind.UNDEFINED_SUPER_SETTER,
-      "The setter '#{memberName}' is not defined in a superclass of '#{className}'.",
-      examples: const [
-        r"""
-        class A {}
-        class B extends A {
-          foo() { super.x = 499; }
-        }
-        main() { new B().foo(); }
-        """,
-      ]), // Generated. Don't edit.
-  MessageKind.UNDEFINED_STATIC_GETTER_BUT_SETTER: const MessageTemplate(
-      MessageKind.UNDEFINED_STATIC_GETTER_BUT_SETTER,
-      "Cannot resolve getter '#{name}'.",
-      examples: const [
-        "set foo(x) {}  main() { foo; }",
-      ]), // Generated. Don't edit.
-  MessageKind.UNDEFINED_STATIC_SETTER_BUT_GETTER: const MessageTemplate(
-      MessageKind.UNDEFINED_STATIC_SETTER_BUT_GETTER,
-      "Cannot resolve setter '#{name}'.",
-      examples: const [
-        r"""
-        main() {
-          final x = 1;
-          x = 2;
-        }""",
-        r"""
-        main() {
-          const x = 1;
-          x = 2;
-        }
-        """,
-        r"""
-        final x = 1;
-        main() { x = 3; }
-        """,
-        r"""
-        const x = 1;
-        main() { x = 3; }
-        """,
-        "get foo => null  main() { foo = 5; }",
-        "const foo = 0  main() { foo = 5; }",
-      ]), // Generated. Don't edit.
-};
diff --git a/pkg/compiler/lib/src/diagnostics/messages.dart b/pkg/compiler/lib/src/diagnostics/messages.dart
index ffffde6..e4cf222 100644
--- a/pkg/compiler/lib/src/diagnostics/messages.dart
+++ b/pkg/compiler/lib/src/diagnostics/messages.dart
@@ -14,7 +14,6 @@
 /// location of the existing element.
 library dart2js.messages;
 
-import 'generated/shared_messages.dart' as shared_messages;
 import '../commandline_options.dart';
 import '../options.dart';
 import 'invariant.dart' show failedAt;
@@ -25,81 +24,23 @@
 /// Keys for the [MessageTemplate]s.
 enum MessageKind {
   ABSTRACT_GETTER,
-  CANNOT_RESOLVE,
   COMPILER_CRASHED,
   COMPLEX_RETURNING_NSM,
   COMPLEX_THROWING_NSM,
-  CONST_CONSTRUCTOR_WITH_BODY,
-  CONST_FACTORY,
-  CONSTRUCTOR_WITH_RETURN_TYPE,
-  CYCLIC_COMPILE_TIME_CONSTANTS,
   DIRECTLY_THROWING_NSM,
-  EQUAL_MAP_ENTRY_KEY,
-  EQUAL_SET_ENTRY,
-  EXTRANEOUS_MODIFIER,
-  EXTRANEOUS_MODIFIER_REPLACE,
-  FORIN_NOT_ASSIGNABLE,
   GENERIC,
   HIDDEN_HINTS,
   HIDDEN_WARNINGS,
   HIDDEN_WARNINGS_HINTS,
-  IMPLICIT_JS_INTEROP_FIELD_NOT_SUPPORTED,
-  INVALID_ASSERT_VALUE,
-  INVALID_ASSERT_VALUE_MESSAGE,
-  INVALID_BOOL_FROM_ENVIRONMENT_DEFAULT_VALUE_TYPE,
-  INVALID_CONSTANT_CAST,
-  INVALID_CONSTANT_ADD_TYPES,
-  INVALID_CONSTANT_BINARY_INT_TYPE,
-  INVALID_CONSTANT_BINARY_NUM_TYPE,
-  INVALID_CONSTANT_BINARY_PRIMITIVE_TYPE,
-  INVALID_CONSTANT_COMPLEMENT_TYPE,
-  INVALID_CONSTANT_CONDITIONAL_TYPE,
-  INVALID_CONSTANT_CONSTRUCTOR,
-  INVALID_CONSTANT_DIV,
-  INVALID_CONSTANT_INDEX,
-  INVALID_CONSTANT_INTERPOLATION_TYPE,
-  INVALID_CONSTANT_NEGATE_TYPE,
-  INVALID_CONSTANT_NOT_TYPE,
-  INVALID_CONSTANT_STRING_ADD_TYPE,
-  INVALID_CONSTANT_NUM_ADD_TYPE,
-  INVALID_CONSTANT_STRING_LENGTH_TYPE,
-  INVALID_CONSTANT_SHIFT,
-  INVALID_FROM_ENVIRONMENT_NAME_TYPE,
-  INVALID_INT_FROM_ENVIRONMENT_DEFAULT_VALUE_TYPE,
-  INVALID_LOGICAL_AND_OPERAND_TYPE,
-  INVALID_LOGICAL_OR_OPERAND_TYPE,
   INVALID_METADATA,
   INVALID_METADATA_GENERIC,
-  INVALID_PACKAGE_CONFIG,
-  INVALID_PACKAGE_URI,
-  INVALID_STRING_FROM_ENVIRONMENT_DEFAULT_VALUE_TYPE,
-  JS_INTEROP_FIELD_NOT_SUPPORTED,
-  JS_INTEROP_NON_EXTERNAL_MEMBER,
-  JS_OBJECT_LITERAL_CONSTRUCTOR_WITH_POSITIONAL_ARGUMENTS,
   JS_PLACEHOLDER_CAPTURE,
-  LIBRARY_NOT_FOUND,
-  MIRRORS_LIBRARY_NOT_SUPPORT_WITH_CFE,
-  MISSING_EXPRESSION_IN_THROW,
   NATIVE_NON_INSTANCE_IN_NON_NATIVE_CLASS,
-  NO_SUCH_SUPER_MEMBER,
   NON_NATIVE_EXTERNAL,
-  NOT_A_COMPILE_TIME_CONSTANT,
-  NOT_ASSIGNABLE,
   PLEASE_REPORT_THE_CRASH,
   PREAMBLE,
-  RETHROW_OUTSIDE_CATCH,
-  RETURN_IN_GENERATIVE_CONSTRUCTOR,
-  RETURN_IN_GENERATOR,
   RUNTIME_TYPE_TO_STRING,
   STRING_EXPECTED,
-  UNDEFINED_GETTER,
-  UNDEFINED_INSTANCE_GETTER_BUT_SETTER,
-  UNDEFINED_METHOD,
-  UNDEFINED_OPERATOR,
-  UNDEFINED_SETTER,
-  UNDEFINED_STATIC_GETTER_BUT_SETTER,
-  UNDEFINED_STATIC_SETTER_BUT_GETTER,
-  UNDEFINED_SUPER_SETTER,
   WRONG_ARGUMENT_FOR_JS,
   WRONG_ARGUMENT_FOR_JS_FIRST,
   WRONG_ARGUMENT_FOR_JS_SECOND,
@@ -143,174 +84,80 @@
   ///
   /// The map is complete mapping from [MessageKind] to their corresponding
   /// [MessageTemplate].
-  // The key type is a union of MessageKind and SharedMessageKind.
-  static final Map<dynamic, MessageTemplate> TEMPLATES = <dynamic,
-      MessageTemplate>{}
-    ..addAll(shared_messages.TEMPLATES)
-    ..addAll(const <MessageKind, MessageTemplate>{
-      /// Do not use this. It is here for legacy and debugging. It violates item
-      /// 4 of the guide lines for error messages in the beginning of the file.
-      MessageKind.GENERIC: MessageTemplate(MessageKind.GENERIC, '#{text}'),
+  static const Map<MessageKind, MessageTemplate> TEMPLATES = {
+    /// Do not use this. It is here for legacy and debugging. It violates item
+    /// 4 of the guide lines for error messages in the beginning of the file.
+    MessageKind.GENERIC: MessageTemplate(MessageKind.GENERIC, '#{text}'),
 
-      MessageKind.CANNOT_RESOLVE: MessageTemplate(
-          MessageKind.CANNOT_RESOLVE, "Cannot resolve '#{name}'."),
+    MessageKind.STRING_EXPECTED: MessageTemplate(MessageKind.STRING_EXPECTED,
+        "Expected a 'String', but got an instance of '#{type}'."),
 
-      MessageKind.NOT_A_COMPILE_TIME_CONSTANT: MessageTemplate(
-          MessageKind.NOT_A_COMPILE_TIME_CONSTANT,
-          "Not a compile-time constant."),
+    MessageKind.JS_PLACEHOLDER_CAPTURE: MessageTemplate(
+        MessageKind.JS_PLACEHOLDER_CAPTURE,
+        "JS code must not use '#' placeholders inside functions.",
+        howToFix: "Use an immediately called JavaScript function to capture the"
+            " the placeholder values as JavaScript function parameters."),
 
-      MessageKind.CYCLIC_COMPILE_TIME_CONSTANTS: MessageTemplate(
-          MessageKind.CYCLIC_COMPILE_TIME_CONSTANTS,
-          "Cycle in the compile-time constant computation."),
+    MessageKind.WRONG_ARGUMENT_FOR_JS: MessageTemplate(
+        MessageKind.WRONG_ARGUMENT_FOR_JS,
+        "JS expression must take two or more arguments."),
 
-      MessageKind.UNDEFINED_STATIC_SETTER_BUT_GETTER: MessageTemplate(
-          MessageKind.UNDEFINED_STATIC_SETTER_BUT_GETTER,
-          "Cannot resolve setter."),
+    MessageKind.WRONG_ARGUMENT_FOR_JS_FIRST: MessageTemplate(
+        MessageKind.WRONG_ARGUMENT_FOR_JS_FIRST,
+        "JS expression must take two or more arguments."),
 
-      MessageKind.STRING_EXPECTED: MessageTemplate(MessageKind.STRING_EXPECTED,
-          "Expected a 'String', but got an instance of '#{type}'."),
+    MessageKind.WRONG_ARGUMENT_FOR_JS_SECOND: MessageTemplate(
+        MessageKind.WRONG_ARGUMENT_FOR_JS_SECOND,
+        "JS second argument must be a string literal."),
 
-      MessageKind.JS_INTEROP_NON_EXTERNAL_MEMBER: MessageTemplate(
-          MessageKind.JS_INTEROP_NON_EXTERNAL_MEMBER,
-          "Js-interop members must be 'external'."),
+    MessageKind.WRONG_ARGUMENT_FOR_JS_INTERCEPTOR_CONSTANT: MessageTemplate(
+        MessageKind.WRONG_ARGUMENT_FOR_JS_INTERCEPTOR_CONSTANT,
+        "Argument for 'JS_INTERCEPTOR_CONSTANT' must be a type constant."),
 
-      MessageKind.IMPLICIT_JS_INTEROP_FIELD_NOT_SUPPORTED: MessageTemplate(
-          MessageKind.IMPLICIT_JS_INTEROP_FIELD_NOT_SUPPORTED,
-          "Fields in js-interop classes are not supported.",
-          howToFix: "Try replacing the field with an "
-              "external getter and/or setter."),
-      MessageKind.JS_INTEROP_FIELD_NOT_SUPPORTED: MessageTemplate(
-          MessageKind.JS_INTEROP_FIELD_NOT_SUPPORTED,
-          "Field can't be marked as js-interop.",
-          howToFix: "Try replacing the field with an "
-              "external getter and/or setter."),
-
-      MessageKind.LIBRARY_NOT_FOUND: MessageTemplate(
-          MessageKind.LIBRARY_NOT_FOUND, "Library not found '#{resolvedUri}'."),
-
-      MessageKind.INVALID_PACKAGE_CONFIG: MessageTemplate(
-          MessageKind.INVALID_PACKAGE_CONFIG,
-          """Package config file '#{uri}' is invalid.
-#{exception}""",
-          howToFix: DONT_KNOW_HOW_TO_FIX),
-
-      MessageKind.INVALID_PACKAGE_URI: MessageTemplate(
-          MessageKind.INVALID_PACKAGE_URI,
-          "'#{uri}' is not a valid package URI (#{exception}).",
-          howToFix: DONT_KNOW_HOW_TO_FIX,
-          examples: [
-            """
-// can't have a 'top level' package URI
-import 'package:foo.dart';
-
-main() {}
-""",
-            """
-// can't have 2 slashes
-import 'package://foo/foo.dart';
-
-main() {}
-""",
-            """
-// package name must be valid
-import 'package:not\valid/foo.dart';
-
-main() {}
-"""
-          ]),
-
-      MessageKind.JS_PLACEHOLDER_CAPTURE: MessageTemplate(
-          MessageKind.JS_PLACEHOLDER_CAPTURE,
-          "JS code must not use '#' placeholders inside functions.",
-          howToFix:
-              "Use an immediately called JavaScript function to capture the"
-              " the placeholder values as JavaScript function parameters."),
-
-      MessageKind.WRONG_ARGUMENT_FOR_JS: MessageTemplate(
-          MessageKind.WRONG_ARGUMENT_FOR_JS,
-          "JS expression must take two or more arguments."),
-
-      MessageKind.WRONG_ARGUMENT_FOR_JS_FIRST: MessageTemplate(
-          MessageKind.WRONG_ARGUMENT_FOR_JS_FIRST,
-          "JS expression must take two or more arguments."),
-
-      MessageKind.WRONG_ARGUMENT_FOR_JS_SECOND: MessageTemplate(
-          MessageKind.WRONG_ARGUMENT_FOR_JS_SECOND,
-          "JS second argument must be a string literal."),
-
-      MessageKind.WRONG_ARGUMENT_FOR_JS_INTERCEPTOR_CONSTANT: MessageTemplate(
-          MessageKind.WRONG_ARGUMENT_FOR_JS_INTERCEPTOR_CONSTANT,
-          "Argument for 'JS_INTERCEPTOR_CONSTANT' must be a type constant."),
-
-      MessageKind.ABSTRACT_GETTER: MessageTemplate(
-          MessageKind.ABSTRACT_GETTER,
-          "The getter '#{name}' has no implementation in "
-          "class '#{class}'.",
-          howToFix: "Try adding a body to '#{name}' or declaring "
-              "'#{class}' to be 'abstract'.",
-          examples: [
-            """
+    MessageKind.ABSTRACT_GETTER: MessageTemplate(
+        MessageKind.ABSTRACT_GETTER,
+        "The getter '#{name}' has no implementation in "
+        "class '#{class}'.",
+        howToFix: "Try adding a body to '#{name}' or declaring "
+            "'#{class}' to be 'abstract'.",
+        examples: [
+          """
 class Class {
   get getter;
 }
 main() => new Class();
 """
-          ]),
+        ]),
 
-      MessageKind.INVALID_METADATA: MessageTemplate(
-          MessageKind.INVALID_METADATA,
-          "A metadata annotation must be either a reference to a compile-time "
-          "constant variable or a call to a constant constructor.",
-          howToFix:
-              "Try using a different constant value or referencing it through a "
-              "constant variable.",
-          examples: ['@Object main() {}', '@print main() {}']),
+    MessageKind.INVALID_METADATA: MessageTemplate(
+        MessageKind.INVALID_METADATA,
+        "A metadata annotation must be either a reference to a compile-time "
+        "constant variable or a call to a constant constructor.",
+        howToFix:
+            "Try using a different constant value or referencing it through a "
+            "constant variable.",
+        examples: ['@Object main() {}', '@print main() {}']),
 
-      MessageKind.INVALID_METADATA_GENERIC: MessageTemplate(
-          MessageKind.INVALID_METADATA_GENERIC,
-          "A metadata annotation using a constant constructor cannot use type "
-          "arguments.",
-          howToFix:
-              "Try removing the type arguments or referencing the constant "
-              "through a constant variable.",
-          examples: [
-            '''
+    MessageKind.INVALID_METADATA_GENERIC: MessageTemplate(
+        MessageKind.INVALID_METADATA_GENERIC,
+        "A metadata annotation using a constant constructor cannot use type "
+        "arguments.",
+        howToFix: "Try removing the type arguments or referencing the constant "
+            "through a constant variable.",
+        examples: [
+          '''
 class C<T> {
   const C();
 }
 @C<int>() main() {}
 '''
-          ]),
+        ]),
 
-      MessageKind.EQUAL_MAP_ENTRY_KEY: MessageTemplate(
-          MessageKind.EQUAL_MAP_ENTRY_KEY,
-          "An entry with the same key already exists in the map.",
-          howToFix:
-              "Try removing the previous entry or changing the key in one "
-              "of the entries.",
-          examples: [
-            """
-main() {
-  var m = const {'foo': 1, 'foo': 2};
-}"""
-          ]),
+    MessageKind.COMPILER_CRASHED: MessageTemplate(MessageKind.COMPILER_CRASHED,
+        "The compiler crashed when compiling this element."),
 
-      MessageKind.EQUAL_SET_ENTRY: MessageTemplate(
-          MessageKind.EQUAL_SET_ENTRY, "An entry appears twice in the set.",
-          howToFix: "Try removing one of the entries.",
-          examples: [
-            """
-main() {
-  var m = const {'foo', 'bar', 'foo'};
-}"""
-          ]),
-
-      MessageKind.COMPILER_CRASHED: MessageTemplate(
-          MessageKind.COMPILER_CRASHED,
-          "The compiler crashed when compiling this element."),
-
-      MessageKind.PLEASE_REPORT_THE_CRASH:
-          MessageTemplate(MessageKind.PLEASE_REPORT_THE_CRASH, '''
+    MessageKind.PLEASE_REPORT_THE_CRASH:
+        MessageTemplate(MessageKind.PLEASE_REPORT_THE_CRASH, '''
 The compiler is broken.
 
 When compiling the above element, the compiler crashed. It is not
@@ -330,221 +177,77 @@
   below as well as the source location above).
 '''),
 
-      MessageKind.HIDDEN_WARNINGS_HINTS: MessageTemplate(
-          MessageKind.HIDDEN_WARNINGS_HINTS,
-          "#{warnings} warning(s) and #{hints} hint(s) suppressed in #{uri}."),
+    MessageKind.HIDDEN_WARNINGS_HINTS: MessageTemplate(
+        MessageKind.HIDDEN_WARNINGS_HINTS,
+        "#{warnings} warning(s) and #{hints} hint(s) suppressed in #{uri}."),
 
-      MessageKind.HIDDEN_WARNINGS: MessageTemplate(MessageKind.HIDDEN_WARNINGS,
-          "#{warnings} warning(s) suppressed in #{uri}."),
+    MessageKind.HIDDEN_WARNINGS: MessageTemplate(MessageKind.HIDDEN_WARNINGS,
+        "#{warnings} warning(s) suppressed in #{uri}."),
 
-      MessageKind.HIDDEN_HINTS: MessageTemplate(
-          MessageKind.HIDDEN_HINTS, "#{hints} hint(s) suppressed in #{uri}."),
+    MessageKind.HIDDEN_HINTS: MessageTemplate(
+        MessageKind.HIDDEN_HINTS, "#{hints} hint(s) suppressed in #{uri}."),
 
-      MessageKind.PREAMBLE: MessageTemplate(
-          MessageKind.PREAMBLE,
-          "When run on the command-line, the compiled output might"
-          " require a preamble file located in:\n"
-          "  <sdk>/lib/_internal/js_runtime/lib/preambles."),
+    MessageKind.PREAMBLE: MessageTemplate(
+        MessageKind.PREAMBLE,
+        "When run on the command-line, the compiled output might"
+        " require a preamble file located in:\n"
+        "  <sdk>/lib/_internal/js_runtime/lib/preambles."),
 
-      MessageKind.INVALID_CONSTANT_CONDITIONAL_TYPE: MessageTemplate(
-          MessageKind.INVALID_CONSTANT_CONDITIONAL_TYPE,
-          "`#{constant}` of type '#{type}' is not a valid constant condition. "
-          "Must be a value of type 'bool'."),
+    MessageKind.DIRECTLY_THROWING_NSM: MessageTemplate(
+        MessageKind.DIRECTLY_THROWING_NSM,
+        "This 'noSuchMethod' implementation is guaranteed to throw an "
+        "exception. The generated code will be smaller if it is "
+        "rewritten.",
+        howToFix: "Rewrite to "
+            "'noSuchMethod(Invocation i) => super.noSuchMethod(i);'."),
 
-      MessageKind.INVALID_CONSTANT_INTERPOLATION_TYPE: MessageTemplate(
-          MessageKind.INVALID_CONSTANT_INTERPOLATION_TYPE,
-          "`#{constant}` of type '#{type}' is not valid in constant string "
-          "interpolation. Must be a value of type 'bool', 'int', 'double', "
-          "or 'String'."),
+    MessageKind.COMPLEX_THROWING_NSM: MessageTemplate(
+        MessageKind.COMPLEX_THROWING_NSM,
+        "This 'noSuchMethod' implementation is guaranteed to throw an "
+        "exception. The generated code will be smaller and the compiler "
+        "will be able to perform more optimizations if it is rewritten.",
+        howToFix: "Rewrite to "
+            "'noSuchMethod(Invocation i) => super.noSuchMethod(i);'."),
 
-      MessageKind.INVALID_CONSTANT_BINARY_PRIMITIVE_TYPE: MessageTemplate(
-          MessageKind.INVALID_CONSTANT_BINARY_PRIMITIVE_TYPE,
-          "`#{constant}` of type '#{type}' is not a valid operand of a "
-          "constant binary #{operator} expression. Must be a value of type "
-          "'bool', 'int', 'double', 'String', or 'Null'."),
+    MessageKind.COMPLEX_RETURNING_NSM: MessageTemplate(
+        MessageKind.COMPLEX_RETURNING_NSM,
+        "Overriding 'noSuchMethod' causes the compiler to generate "
+        "more code and prevents the compiler from doing some optimizations.",
+        howToFix: "Consider removing this 'noSuchMethod' implementation."),
 
-      MessageKind.INVALID_CONSTANT_STRING_ADD_TYPE: MessageTemplate(
-          MessageKind.INVALID_CONSTANT_STRING_ADD_TYPE,
-          "`#{constant}` of type '#{type}' is not a valid operand of a "
-          "constant binary + expression on 'String'. Must be a value of type "
-          "'String'."),
+    MessageKind.RUNTIME_TYPE_TO_STRING: MessageTemplate(
+        MessageKind.RUNTIME_TYPE_TO_STRING,
+        "Using '.runtimeType.toString()' causes the compiler to generate "
+        "more code because it needs to preserve type arguments on "
+        "generic classes, even if they are not necessary elsewhere.",
+        howToFix: "If used only for debugging, consider using option "
+            "${Flags.laxRuntimeTypeToString} to reduce the code size "
+            "impact."),
 
-      MessageKind.INVALID_CONSTANT_STRING_LENGTH_TYPE: MessageTemplate(
-          MessageKind.INVALID_CONSTANT_STRING_LENGTH_TYPE,
-          "`#{constant}` of type '#{type}' is not a valid operand for a "
-          ".length expression. Must be a value of type 'String'."),
+    MessageKind.NON_NATIVE_EXTERNAL: MessageTemplate(
+        MessageKind.NON_NATIVE_EXTERNAL,
+        "Non-native external members must be js-interop.",
+        howToFix: "Try removing the 'external' keyword, making it 'native', or "
+            "annotating the function as a js-interop function."),
 
-      MessageKind.INVALID_CONSTANT_SHIFT: MessageTemplate(
-          MessageKind.INVALID_CONSTANT_SHIFT,
-          "Shift amount must be non-negative in "
-          "`#{left} #{operator} #{right}`."),
+    MessageKind.NATIVE_NON_INSTANCE_IN_NON_NATIVE_CLASS: MessageTemplate(
+        MessageKind.NATIVE_NON_INSTANCE_IN_NON_NATIVE_CLASS,
+        "Native non-instance members are only allowed in native classes."),
 
-      MessageKind.INVALID_CONSTANT_DIV: MessageTemplate(
-          MessageKind.INVALID_CONSTANT_DIV,
-          "Divisor must be non-zero in `#{left} #{operator} #{right}`."),
-
-      MessageKind.INVALID_CONSTANT_NUM_ADD_TYPE: MessageTemplate(
-          MessageKind.INVALID_CONSTANT_NUM_ADD_TYPE,
-          "`#{constant}` of type '#{type}' is not a valid operand of a "
-          "constant binary + expression on 'num'. Must be a value of type "
-          "'int' or 'double'."),
-
-      MessageKind.INVALID_CONSTANT_CAST: MessageTemplate(
-          MessageKind.INVALID_CONSTANT_CAST,
-          "`#{constant}` of type '#{type}' is not a subtype of #{castType}."),
-
-      MessageKind.INVALID_CONSTANT_ADD_TYPES: MessageTemplate(
-          MessageKind.INVALID_CONSTANT_ADD_TYPES,
-          "`#{leftConstant}` of type '#{leftType}' and "
-          "`#{rightConstant}` of type '#{rightType}' are not valid operands "
-          "of a constant binary + expression. Must both be either of "
-          "type 'String', or of types 'int' or 'double'."),
-
-      MessageKind.INVALID_CONSTANT_BINARY_NUM_TYPE: MessageTemplate(
-          MessageKind.INVALID_CONSTANT_BINARY_NUM_TYPE,
-          "`#{constant}` of type '#{type}' is not a valid operand of a "
-          "constant binary #{operator} expression. Must be a value of type "
-          "'int' or 'double'."),
-
-      MessageKind.INVALID_CONSTANT_BINARY_INT_TYPE: MessageTemplate(
-          MessageKind.INVALID_CONSTANT_BINARY_INT_TYPE,
-          "`#{constant}` of type '#{type}' is not a valid operand of a "
-          "constant binary #{operator} expression. Must be a value of type "
-          "'int'."),
-
-      MessageKind.INVALID_CONSTANT_NOT_TYPE: MessageTemplate(
-          MessageKind.INVALID_CONSTANT_NOT_TYPE,
-          "`#{constant}` of type '#{type}' is not a valid operand of a "
-          "constant unary #{operator} expression. Must be a value of type "
-          "'bool'."),
-
-      MessageKind.INVALID_CONSTANT_NEGATE_TYPE: MessageTemplate(
-          MessageKind.INVALID_CONSTANT_NEGATE_TYPE,
-          "`#{constant}` of type '#{type}' is not a valid operand of a "
-          "constant unary #{operator} expression. Must be a value of type "
-          "'int' or 'double'."),
-
-      MessageKind.INVALID_CONSTANT_COMPLEMENT_TYPE: MessageTemplate(
-          MessageKind.INVALID_CONSTANT_COMPLEMENT_TYPE,
-          "`#{constant}` of type '#{type}' is not a valid operand of a "
-          "constant unary #{operator} expression. Must be a value of type "
-          "'int'."),
-
-      MessageKind.INVALID_CONSTANT_INDEX: MessageTemplate(
-          MessageKind.INVALID_CONSTANT_INDEX,
-          "Index expressions are not allowed in constant expressions."),
-
-      MessageKind.INVALID_FROM_ENVIRONMENT_NAME_TYPE: MessageTemplate(
-          MessageKind.INVALID_FROM_ENVIRONMENT_NAME_TYPE,
-          "`#{constant}` of type '#{type}' is not a valid environment name "
-          "constant. Must be a value of type 'String'."),
-
-      MessageKind.INVALID_BOOL_FROM_ENVIRONMENT_DEFAULT_VALUE_TYPE:
-          MessageTemplate(
-              MessageKind.INVALID_BOOL_FROM_ENVIRONMENT_DEFAULT_VALUE_TYPE,
-              "`#{constant}` of type '#{type}' is not a valid "
-              "`bool.fromEnvironment` default value constant. "
-              "Must be a value of type 'bool' or `null`."),
-
-      MessageKind.INVALID_INT_FROM_ENVIRONMENT_DEFAULT_VALUE_TYPE:
-          MessageTemplate(
-              MessageKind.INVALID_INT_FROM_ENVIRONMENT_DEFAULT_VALUE_TYPE,
-              "`#{constant}` of type '#{type}' is not a valid "
-              "`int.fromEnvironment` default value constant. "
-              "Must be a value of type 'int' or `null`."),
-
-      MessageKind.INVALID_STRING_FROM_ENVIRONMENT_DEFAULT_VALUE_TYPE:
-          MessageTemplate(
-              MessageKind.INVALID_STRING_FROM_ENVIRONMENT_DEFAULT_VALUE_TYPE,
-              "`#{constant}` of type '#{type}' is not a valid "
-              "`String.fromEnvironment` default value constant. "
-              "Must be a value of type 'String' or `null`."),
-
-      MessageKind.INVALID_LOGICAL_AND_OPERAND_TYPE: MessageTemplate(
-          MessageKind.INVALID_LOGICAL_AND_OPERAND_TYPE,
-          "`#{constant}` of type '#{type}' is not a valid logical and operand. "
-          "Must be a value of type 'bool'."),
-
-      MessageKind.INVALID_LOGICAL_OR_OPERAND_TYPE: MessageTemplate(
-          MessageKind.INVALID_LOGICAL_OR_OPERAND_TYPE,
-          "`#{constant}` of type '#{type}' is not a valid logical or operand. "
-          "Must be a value of type 'bool'."),
-
-      MessageKind.INVALID_CONSTANT_CONSTRUCTOR: MessageTemplate(
-          MessageKind.INVALID_CONSTANT_CONSTRUCTOR,
-          "Constructor '#{constructorName}' is not a valid constant "
-          "constructor."),
-
-      MessageKind.INVALID_ASSERT_VALUE: MessageTemplate(
-          MessageKind.INVALID_ASSERT_VALUE, "Assertion '#{assertion}' failed."),
-
-      MessageKind.INVALID_ASSERT_VALUE_MESSAGE: MessageTemplate(
-          MessageKind.INVALID_ASSERT_VALUE_MESSAGE,
-          "Assertion failed: #{message}"),
-
-      MessageKind.MIRRORS_LIBRARY_NOT_SUPPORT_WITH_CFE:
-          MessageTemplate(MessageKind.MIRRORS_LIBRARY_NOT_SUPPORT_WITH_CFE, """
-dart2js no longer supports the dart:mirrors library.
-
-APIs from this library will throw a runtime error at this time, but they will
-become a compile-time error in the future."""),
-
-      MessageKind.DIRECTLY_THROWING_NSM: MessageTemplate(
-          MessageKind.DIRECTLY_THROWING_NSM,
-          "This 'noSuchMethod' implementation is guaranteed to throw an "
-          "exception. The generated code will be smaller if it is "
-          "rewritten.",
-          howToFix: "Rewrite to "
-              "'noSuchMethod(Invocation i) => super.noSuchMethod(i);'."),
-
-      MessageKind.COMPLEX_THROWING_NSM: MessageTemplate(
-          MessageKind.COMPLEX_THROWING_NSM,
-          "This 'noSuchMethod' implementation is guaranteed to throw an "
-          "exception. The generated code will be smaller and the compiler "
-          "will be able to perform more optimizations if it is rewritten.",
-          howToFix: "Rewrite to "
-              "'noSuchMethod(Invocation i) => super.noSuchMethod(i);'."),
-
-      MessageKind.COMPLEX_RETURNING_NSM: MessageTemplate(
-          MessageKind.COMPLEX_RETURNING_NSM,
-          "Overriding 'noSuchMethod' causes the compiler to generate "
-          "more code and prevents the compiler from doing some optimizations.",
-          howToFix: "Consider removing this 'noSuchMethod' implementation."),
-
-      MessageKind.RUNTIME_TYPE_TO_STRING: MessageTemplate(
-          MessageKind.RUNTIME_TYPE_TO_STRING,
-          "Using '.runtimeType.toString()' causes the compiler to generate "
-          "more code because it needs to preserve type arguments on "
-          "generic classes, even if they are not necessary elsewhere.",
-          howToFix: "If used only for debugging, consider using option "
-              "${Flags.laxRuntimeTypeToString} to reduce the code size "
-              "impact."),
-
-      MessageKind.NON_NATIVE_EXTERNAL: MessageTemplate(
-          MessageKind.NON_NATIVE_EXTERNAL,
-          "Non-native external members must be js-interop.",
-          howToFix:
-              "Try removing the 'external' keyword, making it 'native', or "
-              "annotating the function as a js-interop function."),
-
-      MessageKind.NATIVE_NON_INSTANCE_IN_NON_NATIVE_CLASS: MessageTemplate(
-          MessageKind.NATIVE_NON_INSTANCE_IN_NON_NATIVE_CLASS,
-          "Native non-instance members are only allowed in native classes."),
-
-      // TODO(32557): Remove these when issue 32557 is fixed.
-      MessageKind.SWITCH_CASE_VALUE_OVERRIDES_EQUALS: MessageTemplate(
-          MessageKind.SWITCH_CASE_VALUE_OVERRIDES_EQUALS,
-          "'case' expression type '#{type}' overrides 'operator =='."),
-      MessageKind.SWITCH_CASE_FORBIDDEN: MessageTemplate(
-          MessageKind.SWITCH_CASE_FORBIDDEN,
-          "'case' expression may not be of type '#{type}'."),
-      MessageKind.SWITCH_CASE_TYPES_NOT_EQUAL: MessageTemplate(
-          MessageKind.SWITCH_CASE_TYPES_NOT_EQUAL,
-          "'case' expressions do not all have type '#{type}'."),
-      MessageKind.SWITCH_CASE_TYPES_NOT_EQUAL_CASE: MessageTemplate(
-          MessageKind.SWITCH_CASE_TYPES_NOT_EQUAL_CASE,
-          "'case' expression of type '#{type}'."),
-    }); // End of TEMPLATES.
+    // TODO(32557): Remove these when issue 32557 is fixed.
+    MessageKind.SWITCH_CASE_VALUE_OVERRIDES_EQUALS: MessageTemplate(
+        MessageKind.SWITCH_CASE_VALUE_OVERRIDES_EQUALS,
+        "'case' expression type '#{type}' overrides 'operator =='."),
+    MessageKind.SWITCH_CASE_FORBIDDEN: MessageTemplate(
+        MessageKind.SWITCH_CASE_FORBIDDEN,
+        "'case' expression may not be of type '#{type}'."),
+    MessageKind.SWITCH_CASE_TYPES_NOT_EQUAL: MessageTemplate(
+        MessageKind.SWITCH_CASE_TYPES_NOT_EQUAL,
+        "'case' expressions do not all have type '#{type}'."),
+    MessageKind.SWITCH_CASE_TYPES_NOT_EQUAL_CASE: MessageTemplate(
+        MessageKind.SWITCH_CASE_TYPES_NOT_EQUAL_CASE,
+        "'case' expression of type '#{type}'."),
+  }; // End of TEMPLATES.
 
   @override
   String toString() => template;
diff --git a/pkg/test_runner/lib/src/configuration.dart b/pkg/test_runner/lib/src/configuration.dart
index 12af614..bf842a4 100644
--- a/pkg/test_runner/lib/src/configuration.dart
+++ b/pkg/test_runner/lib/src/configuration.dart
@@ -412,9 +412,10 @@
             architecture == Architecture.x64 ||
             architecture == Architecture.arm ||
             architecture == Architecture.arm_x64 ||
-            architecture == Architecture.arm64)) {
+            architecture == Architecture.arm64 ||
+            architecture == Architecture.arm64c)) {
       print("Warning: Android only supports the following "
-          "architectures: ia32/x64/arm/arm64/arm_x64.");
+          "architectures: ia32/x64/arm/arm64/arm64c/arm_x64.");
       isValid = false;
     }
 
diff --git a/pkg/test_runner/lib/src/options.dart b/pkg/test_runner/lib/src/options.dart
index 3df3675..2989528 100644
--- a/pkg/test_runner/lib/src/options.dart
+++ b/pkg/test_runner/lib/src/options.dart
@@ -799,6 +799,8 @@
 
       if (configuration.validate()) {
         result.add(configuration);
+      } else if (namedConfiguration == null) {
+        _fail('The named configuration "$namedConfiguration" is invalid.');
       }
     }
 
diff --git a/tools/VERSION b/tools/VERSION
index bff9178..f111647 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
 MAJOR 2
 MINOR 15
 PATCH 0
-PRERELEASE 131
+PRERELEASE 132
 PRERELEASE_PATCH 0
\ No newline at end of file