// Copyright (c) 2011, the Dart project authors.  Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.

library dart2js.messages;

import 'package:dart_messages/shared_messages.dart' as shared_messages;

import '../tokens/token.dart' show ErrorToken, Token;

import 'invariant.dart' show invariant;
import 'spannable.dart' show CURRENT_ELEMENT_SPANNABLE;

import 'dart2js_messages.dart' as dart2js_messages;

/// Keys for the [MessageTemplate]s.
enum MessageKind {
  ABSTRACT_CLASS_INSTANTIATION,
  ABSTRACT_GETTER,
  ABSTRACT_METHOD,
  ABSTRACT_SETTER,
  ACCESSED_IN_CLOSURE,
  ACCESSED_IN_CLOSURE_HERE,
  ADDITIONAL_ARGUMENT,
  ADDITIONAL_TYPE_ARGUMENT,
  ALREADY_INITIALIZED,
  AMBIGUOUS_LOCATION,
  AMBIGUOUS_REEXPORT,
  ASSERT_IS_GIVEN_NAMED_ARGUMENTS,
  ASSIGNING_FINAL_FIELD_IN_SUPER,
  ASSIGNING_METHOD,
  ASSIGNING_METHOD_IN_SUPER,
  ASSIGNING_TYPE,
  ASYNC_KEYWORD_AS_IDENTIFIER,
  ASYNC_MODIFIER_ON_ABSTRACT_METHOD,
  ASYNC_MODIFIER_ON_CONSTRUCTOR,
  ASYNC_MODIFIER_ON_SETTER,
  AWAIT_MEMBER_NOT_FOUND,
  AWAIT_MEMBER_NOT_FOUND_IN_CLOSURE,
  BAD_INPUT_CHARACTER,
  BEFORE_TOP_LEVEL,
  BINARY_OPERATOR_BAD_ARITY,
  BODY_EXPECTED,
  CALL_NOT_SUPPORTED_ON_NATIVE_CLASS,
  CANNOT_EXTEND,
  CANNOT_EXTEND_ENUM,
  CANNOT_EXTEND_MALFORMED,
  CANNOT_FIND_CONSTRUCTOR,
  CANNOT_FIND_UNNAMED_CONSTRUCTOR,
  CANNOT_IMPLEMENT,
  CANNOT_IMPLEMENT_ENUM,
  CANNOT_IMPLEMENT_MALFORMED,
  CANNOT_INSTANTIATE_ENUM,
  CANNOT_INSTANTIATE_TYPE_VARIABLE,
  CANNOT_INSTANTIATE_TYPEDEF,
  CANNOT_MIXIN,
  CANNOT_MIXIN_ENUM,
  CANNOT_MIXIN_MALFORMED,
  CANNOT_OVERRIDE_FIELD_WITH_METHOD,
  CANNOT_OVERRIDE_FIELD_WITH_METHOD_CONT,
  CANNOT_OVERRIDE_GETTER_WITH_METHOD,
  CANNOT_OVERRIDE_GETTER_WITH_METHOD_CONT,
  CANNOT_OVERRIDE_METHOD_WITH_FIELD,
  CANNOT_OVERRIDE_METHOD_WITH_FIELD_CONT,
  CANNOT_OVERRIDE_METHOD_WITH_GETTER,
  CANNOT_OVERRIDE_METHOD_WITH_GETTER_CONT,
  CANNOT_RESOLVE,
  CANNOT_RESOLVE_AWAIT,
  CANNOT_RESOLVE_AWAIT_IN_CLOSURE,
  CANNOT_RESOLVE_CONSTRUCTOR,
  CANNOT_RESOLVE_CONSTRUCTOR_FOR_IMPLICIT,
  CANNOT_RESOLVE_GETTER,
  CANNOT_RESOLVE_IN_INITIALIZER,
  CANNOT_RESOLVE_SETTER,
  CANNOT_RESOLVE_TYPE,
  CANNOT_RETURN_FROM_CONSTRUCTOR,
  CLASS_NAME_EXPECTED,
  COMPILER_CRASHED,
  COMPLEX_RETURNING_NSM,
  COMPLEX_THROWING_NSM,
  CONSIDER_ANALYZE_ALL,
  CONST_CALLS_NON_CONST,
  CONST_CALLS_NON_CONST_FOR_IMPLICIT,
  CONST_CONSTRUCTOR_HAS_BODY,
  CONST_CONSTRUCTOR_WITH_NONFINAL_FIELDS,
  CONST_CONSTRUCTOR_WITH_NONFINAL_FIELDS_CONSTRUCTOR,
  CONST_CONSTRUCTOR_WITH_NONFINAL_FIELDS_FIELD,
  CONST_LOOP_VARIABLE,
  CONST_MAP_KEY_OVERRIDES_EQUALS,
  CONST_WITHOUT_INITIALIZER,
  CONSTRUCTOR_CALL_EXPECTED,
  CONSTRUCTOR_IS_NOT_CONST,
  CONSTRUCTOR_WITH_RETURN_TYPE,
  CYCLIC_CLASS_HIERARCHY,
  CYCLIC_COMPILE_TIME_CONSTANTS,
  CYCLIC_REDIRECTING_FACTORY,
  CYCLIC_TYPE_VARIABLE,
  CYCLIC_TYPEDEF,
  CYCLIC_TYPEDEF_ONE,
  DART_EXT_NOT_SUPPORTED,
  DEFERRED_COMPILE_TIME_CONSTANT,
  DEFERRED_COMPILE_TIME_CONSTANT_CONSTRUCTION,
  DEFERRED_LIBRARY_DART_2_DART,
  DEFERRED_LIBRARY_DUPLICATE_PREFIX,
  DEFERRED_LIBRARY_WITHOUT_PREFIX,
  DEFERRED_OLD_SYNTAX,
  DEFERRED_TYPE_ANNOTATION,
  DEPRECATED_TYPEDEF_MIXIN_SYNTAX,
  DIRECTLY_THROWING_NSM,
  DISALLOWED_LIBRARY_IMPORT,
  DUPLICATE_DEFINITION,
  DUPLICATE_EXPORT,
  DUPLICATE_EXPORT_CONT,
  DUPLICATE_EXPORT_DECL,
  DUPLICATE_EXTENDS_IMPLEMENTS,
  DUPLICATE_IMPLEMENTS,
  DUPLICATE_IMPORT,
  DUPLICATE_INITIALIZER,
  DUPLICATE_LABEL,
  DUPLICATE_SUPER_INITIALIZER,
  DUPLICATE_TYPE_VARIABLE_NAME,
  DUPLICATED_LIBRARY_NAME,
  DUPLICATED_LIBRARY_RESOURCE,
  DUPLICATED_PART_OF,
  DUPLICATED_RESOURCE,
  EMPTY_CATCH_DECLARATION,
  EMPTY_ENUM_DECLARATION,
  EMPTY_HIDE,
  EQUAL_MAP_ENTRY_KEY,
  EMPTY_SHOW,
  EXISTING_DEFINITION,
  EXISTING_LABEL,
  EXPECTED_IDENTIFIER_NOT_RESERVED_WORD,
  EXPERIMENTAL_ASSERT_MESSAGE,
  EXPONENT_MISSING,
  EXPORT_BEFORE_PARTS,
  EXTERNAL_WITH_BODY,
  EXTRA_CATCH_DECLARATION,
  EXTRA_FORMALS,
  EXTRANEOUS_MODIFIER,
  EXTRANEOUS_MODIFIER_REPLACE,
  FACTORY_REDIRECTION_IN_NON_FACTORY,
  FINAL_FUNCTION_TYPE_PARAMETER,
  FINAL_WITHOUT_INITIALIZER,
  FORIN_NOT_ASSIGNABLE,
  FORMAL_DECLARED_CONST,
  FORMAL_DECLARED_STATIC,
  FUNCTION_TYPE_FORMAL_WITH_DEFAULT,
  FUNCTION_WITH_INITIALIZER,
  GENERIC,
  GETTER_MISMATCH,
  GETTER_NOT_FOUND,
  HEX_DIGIT_EXPECTED,
  HIDDEN_HINTS,
  HIDDEN_IMPLICIT_IMPORT,
  HIDDEN_IMPORT,
  HIDDEN_WARNINGS,
  HIDDEN_WARNINGS_HINTS,
  IF_NULL_ASSIGNING_TYPE,
  ILLEGAL_CONST_FIELD_MODIFIER,
  ILLEGAL_CONSTRUCTOR_MODIFIERS,
  ILLEGAL_FINAL_METHOD_MODIFIER,
  ILLEGAL_MIXIN_APPLICATION_MODIFIERS,
  ILLEGAL_MIXIN_CONSTRUCTOR,
  ILLEGAL_MIXIN_CYCLE,
  ILLEGAL_MIXIN_OBJECT,
  ILLEGAL_MIXIN_SUPER_USE,
  ILLEGAL_MIXIN_SUPERCLASS,
  ILLEGAL_MIXIN_WITH_SUPER,
  ILLEGAL_SETTER_FORMALS,
  ILLEGAL_STATIC,
  ILLEGAL_SUPER_SEND,
  IMPORT_BEFORE_PARTS,
  IMPORT_EXPERIMENTAL_MIRRORS,
  IMPORT_PART_OF,
  IMPORT_PART_OF_HERE,
  IMPORTED_HERE,
  INHERIT_GETTER_AND_METHOD,
  INHERITED_EXPLICIT_GETTER,
  INHERITED_IMPLICIT_GETTER,
  INHERITED_METHOD,
  INJECTED_PUBLIC_MEMBER,
  INIT_STATIC_FIELD,
  INITIALIZING_FORMAL_NOT_ALLOWED,
  INSTANCE_STATIC_SAME_NAME,
  INSTANCE_STATIC_SAME_NAME_CONT,
  INTERNAL_LIBRARY,
  INTERNAL_LIBRARY_FROM,
  INVALID_ARGUMENT_AFTER_NAMED,
  INVALID_AWAIT,
  INVALID_AWAIT_FOR,
  INVALID_AWAIT_FOR_IN,
  INVALID_BREAK,
  INVALID_CASE_DEFAULT,
  INVALID_CONSTRUCTOR_ARGUMENTS,
  INVALID_CONSTRUCTOR_NAME,
  INVALID_CONTINUE,
  INVALID_FOR_IN,
  INVALID_INITIALIZER,
  INVALID_METADATA,
  INVALID_METADATA_GENERIC,
  INVALID_OVERRIDDEN_FIELD,
  INVALID_OVERRIDDEN_GETTER,
  INVALID_OVERRIDDEN_METHOD,
  INVALID_OVERRIDDEN_SETTER,
  INVALID_OVERRIDE_FIELD,
  INVALID_OVERRIDE_FIELD_WITH_GETTER,
  INVALID_OVERRIDE_FIELD_WITH_SETTER,
  INVALID_OVERRIDE_GETTER,
  INVALID_OVERRIDE_GETTER_WITH_FIELD,
  INVALID_OVERRIDE_METHOD,
  INVALID_OVERRIDE_SETTER,
  INVALID_OVERRIDE_SETTER_WITH_FIELD,
  INVALID_PACKAGE_CONFIG,
  INVALID_PACKAGE_URI,
  INVALID_PARAMETER,
  INVALID_RECEIVER_IN_INITIALIZER,
  INVALID_SOURCE_FILE_LOCATION,
  INVALID_SYMBOL,
  INVALID_SYNC_MODIFIER,
  INVALID_TYPE_VARIABLE_BOUND,
  INVALID_UNNAMED_CONSTRUCTOR_NAME,
  INVALID_URI,
  INVALID_USE_OF_SUPER,
  INVALID_YIELD,
  JS_INTEROP_CLASS_CANNOT_EXTEND_DART_CLASS,
  JS_INTEROP_CLASS_NON_EXTERNAL_MEMBER,
  JS_OBJECT_LITERAL_CONSTRUCTOR_WITH_POSITIONAL_ARGUMENTS,
  JS_INTEROP_METHOD_WITH_NAMED_ARGUMENTS,
  JS_PLACEHOLDER_CAPTURE,
  LIBRARY_NAME_MISMATCH,
  LIBRARY_NOT_FOUND,
  LIBRARY_NOT_SUPPORTED,
  LIBRARY_TAG_MUST_BE_FIRST,
  MAIN_HAS_PART_OF,
  MAIN_NOT_A_FUNCTION,
  MAIN_WITH_EXTRA_PARAMETER,
  MALFORMED_STRING_LITERAL,
  MEMBER_NOT_FOUND,
  MEMBER_NOT_STATIC,
  MEMBER_USES_CLASS_NAME,
  METHOD_NOT_FOUND,
  MINUS_OPERATOR_BAD_ARITY,
  MIRROR_BLOAT,
  MIRROR_IMPORT,
  MIRROR_IMPORT_NO_USAGE,
  MIRRORS_CANNOT_FIND_IN_ELEMENT,
  MIRRORS_CANNOT_RESOLVE_IN_CURRENT_LIBRARY,
  MIRRORS_CANNOT_RESOLVE_IN_LIBRARY,
  MIRRORS_EXPECTED_STRING,
  MIRRORS_EXPECTED_STRING_OR_LIST,
  MIRRORS_EXPECTED_STRING_OR_TYPE,
  MIRRORS_EXPECTED_STRING_TYPE_OR_LIST,
  MIRRORS_LIBRARY_NOT_SUPPORT_BY_BACKEND,
  MISSING_ARGUMENT,
  MISSING_ENUM_CASES,
  MISSING_FACTORY_KEYWORD,
  MISSING_FORMALS,
  MISSING_LIBRARY_NAME,
  MISSING_MAIN,
  MISSING_PART_OF_TAG,
  MISSING_TOKEN_AFTER_THIS,
  MISSING_TOKEN_BEFORE_THIS,
  MISSING_TYPE_ARGUMENT,
  MULTI_INHERITANCE,
  NAMED_ARGUMENT_NOT_FOUND,
  NAMED_FUNCTION_EXPRESSION,
  NAMED_PARAMETER_WITH_EQUALS,
  NATIVE_NOT_SUPPORTED,
  NO_BREAK_TARGET,
  NO_CATCH_NOR_FINALLY,
  NO_COMMON_SUBTYPES,
  NO_CONTINUE_TARGET,
  NO_INSTANCE_AVAILABLE,
  NO_MATCHING_CONSTRUCTOR,
  NO_MATCHING_CONSTRUCTOR_FOR_IMPLICIT,
  NO_STATIC_OVERRIDE,
  NO_STATIC_OVERRIDE_CONT,
  NO_SUCH_LIBRARY_MEMBER,
  NO_SUCH_METHOD_IN_NATIVE,
  NO_SUCH_SUPER_MEMBER,
  NO_SUPER_IN_STATIC,
  NO_THIS_AVAILABLE,
  NON_CONST_BLOAT,
  NOT_A_COMPILE_TIME_CONSTANT,
  NOT_A_FIELD,
  NOT_A_PREFIX,
  NOT_A_TYPE,
  NOT_ASSIGNABLE,
  NOT_CALLABLE,
  NOT_INSTANCE_FIELD,
  NOT_MORE_SPECIFIC,
  NOT_MORE_SPECIFIC_SUBTYPE,
  NOT_MORE_SPECIFIC_SUGGESTION,
  NULL_NOT_ALLOWED,
  ONLY_ONE_LIBRARY_TAG,
  OPERATOR_NAMED_PARAMETERS,
  OPERATOR_NOT_FOUND,
  OPERATOR_OPTIONAL_PARAMETERS,
  OPTIONAL_PARAMETER_IN_CATCH,
  OVERRIDE_EQUALS_NOT_HASH_CODE,
  PARAMETER_NAME_EXPECTED,
  PARAMETER_WITH_MODIFIER_IN_CATCH,
  PARAMETER_WITH_TYPE_IN_CATCH,
  PATCH_EXTERNAL_WITHOUT_IMPLEMENTATION,
  PATCH_NO_GETTER,
  PATCH_NO_SETTER,
  PATCH_NON_CLASS,
  PATCH_NON_CONSTRUCTOR,
  PATCH_NON_EXISTING,
  PATCH_NON_EXTERNAL,
  PATCH_NON_FUNCTION,
  PATCH_NON_GETTER,
  PATCH_NON_SETTER,
  PATCH_NONPATCHABLE,
  PATCH_OPTIONAL_PARAMETER_COUNT_MISMATCH,
  PATCH_OPTIONAL_PARAMETER_NAMED_MISMATCH,
  PATCH_PARAMETER_MISMATCH,
  PATCH_PARAMETER_TYPE_MISMATCH,
  PATCH_POINT_TO_CLASS,
  PATCH_POINT_TO_CONSTRUCTOR,
  PATCH_POINT_TO_FUNCTION,
  PATCH_POINT_TO_GETTER,
  PATCH_POINT_TO_PARAMETER,
  PATCH_POINT_TO_SETTER,
  PATCH_REQUIRED_PARAMETER_COUNT_MISMATCH,
  PATCH_RETURN_TYPE_MISMATCH,
  PLEASE_REPORT_THE_CRASH,
  POSITIONAL_PARAMETER_WITH_EQUALS,
  POTENTIAL_MUTATION,
  POTENTIAL_MUTATION_HERE,
  POTENTIAL_MUTATION_IN_CLOSURE,
  POTENTIAL_MUTATION_IN_CLOSURE_HERE,
  PREAMBLE,
  PREFIX_AS_EXPRESSION,
  PRIVATE_ACCESS,
  PRIVATE_IDENTIFIER,
  PRIVATE_NAMED_PARAMETER,
  READ_SCRIPT_ERROR,
  READ_SELF_ERROR,
  REDIRECTING_CONSTRUCTOR_CYCLE,
  REDIRECTING_CONSTRUCTOR_HAS_BODY,
  REDIRECTING_CONSTRUCTOR_HAS_INITIALIZER,
  REDIRECTING_FACTORY_WITH_DEFAULT,
  REFERENCE_IN_INITIALIZATION,
  REQUIRED_PARAMETER_WITH_DEFAULT,
  RETURN_IN_GENERATOR,
  RETURN_NOTHING,
  RETURN_VALUE_IN_VOID,
  SETTER_MISMATCH,
  SETTER_NOT_FOUND,
  SETTER_NOT_FOUND_IN_SUPER,
  STATIC_FUNCTION_BLOAT,
  STRING_EXPECTED,
  SUPER_CALL_TO_FACTORY,
  SUPER_INITIALIZER_IN_OBJECT,
  SWITCH_CASE_FORBIDDEN,
  SWITCH_CASE_TYPES_NOT_EQUAL,
  SWITCH_CASE_TYPES_NOT_EQUAL_CASE,
  SWITCH_CASE_VALUE_OVERRIDES_EQUALS,
  TERNARY_OPERATOR_BAD_ARITY,
  THIS_CALL_TO_FACTORY,
  THIS_IS_THE_DECLARATION,
  THIS_IS_THE_METHOD,
  THIS_IS_THE_PART_OF_TAG,
  THIS_PROPERTY,
  THROW_WITHOUT_EXPRESSION,
  TOP_LEVEL_VARIABLE_DECLARED_STATIC,
  TYPE_ARGUMENT_COUNT_MISMATCH,
  TYPE_VARIABLE_IN_CONSTANT,
  TYPE_VARIABLE_WITHIN_STATIC_MEMBER,
  TYPEDEF_FORMAL_WITH_DEFAULT,
  UNARY_OPERATOR_BAD_ARITY,
  UNBOUND_LABEL,
  UNIMPLEMENTED_EXPLICIT_GETTER,
  UNIMPLEMENTED_EXPLICIT_SETTER,
  UNIMPLEMENTED_GETTER,
  UNIMPLEMENTED_GETTER_ONE,
  UNIMPLEMENTED_IMPLICIT_GETTER,
  UNIMPLEMENTED_IMPLICIT_SETTER,
  UNIMPLEMENTED_METHOD,
  UNIMPLEMENTED_METHOD_CONT,
  UNIMPLEMENTED_METHOD_ONE,
  UNIMPLEMENTED_SETTER,
  UNIMPLEMENTED_SETTER_ONE,
  UNMATCHED_TOKEN,
  UNRECOGNIZED_VERSION_OF_LOOKUP_MAP,
  UNSUPPORTED_BANG_EQ_EQ,
  UNSUPPORTED_EQ_EQ_EQ,
  UNSUPPORTED_LITERAL_SYMBOL,
  UNSUPPORTED_PREFIX_PLUS,
  UNSUPPORTED_THROW_WITHOUT_EXP,
  UNTERMINATED_COMMENT,
  UNTERMINATED_STRING,
  UNTERMINATED_TOKEN,
  UNUSED_CLASS,
  UNUSED_LABEL,
  UNUSED_METHOD,
  UNUSED_TYPEDEF,
  VAR_FUNCTION_TYPE_PARAMETER,
  VOID_EXPRESSION,
  VOID_NOT_ALLOWED,
  VOID_VARIABLE,
  WRONG_ARGUMENT_FOR_JS_INTERCEPTOR_CONSTANT,
  WRONG_NUMBER_OF_ARGUMENTS_FOR_ASSERT,
  YIELDING_MODIFIER_ON_ARROW_BODY,
}

const _KIND_TO_STRING_MAP = const <MessageKind, String>{
  MessageKind.ABSTRACT_CLASS_INSTANTIATION: "ABSTRACT_CLASS_INSTANTIATION",
  MessageKind.ABSTRACT_GETTER: "ABSTRACT_GETTER",
  MessageKind.ABSTRACT_METHOD: "ABSTRACT_METHOD",
  MessageKind.ABSTRACT_SETTER: "ABSTRACT_SETTER",
  MessageKind.ACCESSED_IN_CLOSURE: "ACCESSED_IN_CLOSURE",
  MessageKind.ACCESSED_IN_CLOSURE_HERE: "ACCESSED_IN_CLOSURE_HERE",
  MessageKind.ADDITIONAL_ARGUMENT: "ADDITIONAL_ARGUMENT",
  MessageKind.ADDITIONAL_TYPE_ARGUMENT: "ADDITIONAL_TYPE_ARGUMENT",
  MessageKind.ALREADY_INITIALIZED: "ALREADY_INITIALIZED",
  MessageKind.AMBIGUOUS_LOCATION: "AMBIGUOUS_LOCATION",
  MessageKind.AMBIGUOUS_REEXPORT: "AMBIGUOUS_REEXPORT",
  MessageKind.ASSERT_IS_GIVEN_NAMED_ARGUMENTS:
      "ASSERT_IS_GIVEN_NAMED_ARGUMENTS",
  MessageKind.ASSIGNING_FINAL_FIELD_IN_SUPER: "ASSIGNING_FINAL_FIELD_IN_SUPER",
  MessageKind.ASSIGNING_METHOD: "ASSIGNING_METHOD",
  MessageKind.ASSIGNING_METHOD_IN_SUPER: "ASSIGNING_METHOD_IN_SUPER",
  MessageKind.ASSIGNING_TYPE: "ASSIGNING_TYPE",
  MessageKind.ASYNC_KEYWORD_AS_IDENTIFIER: "ASYNC_KEYWORD_AS_IDENTIFIER",
  MessageKind.ASYNC_MODIFIER_ON_ABSTRACT_METHOD:
      "ASYNC_MODIFIER_ON_ABSTRACT_METHOD",
  MessageKind.ASYNC_MODIFIER_ON_CONSTRUCTOR: "ASYNC_MODIFIER_ON_CONSTRUCTOR",
  MessageKind.ASYNC_MODIFIER_ON_SETTER: "ASYNC_MODIFIER_ON_SETTER",
  MessageKind.AWAIT_MEMBER_NOT_FOUND: "AWAIT_MEMBER_NOT_FOUND",
  MessageKind.AWAIT_MEMBER_NOT_FOUND_IN_CLOSURE:
      "AWAIT_MEMBER_NOT_FOUND_IN_CLOSURE",
  MessageKind.BAD_INPUT_CHARACTER: "BAD_INPUT_CHARACTER",
  MessageKind.BEFORE_TOP_LEVEL: "BEFORE_TOP_LEVEL",
  MessageKind.BINARY_OPERATOR_BAD_ARITY: "BINARY_OPERATOR_BAD_ARITY",
  MessageKind.BODY_EXPECTED: "BODY_EXPECTED",
  MessageKind.CALL_NOT_SUPPORTED_ON_NATIVE_CLASS:
      "CALL_NOT_SUPPORTED_ON_NATIVE_CLASS",
  MessageKind.CANNOT_EXTEND: "CANNOT_EXTEND",
  MessageKind.CANNOT_EXTEND_ENUM: "CANNOT_EXTEND_ENUM",
  MessageKind.CANNOT_EXTEND_MALFORMED: "CANNOT_EXTEND_MALFORMED",
  MessageKind.CANNOT_FIND_CONSTRUCTOR: "CANNOT_FIND_CONSTRUCTOR",
  MessageKind.CANNOT_FIND_UNNAMED_CONSTRUCTOR:
      "CANNOT_FIND_UNNAMED_CONSTRUCTOR",
  MessageKind.CANNOT_IMPLEMENT: "CANNOT_IMPLEMENT",
  MessageKind.CANNOT_IMPLEMENT_ENUM: "CANNOT_IMPLEMENT_ENUM",
  MessageKind.CANNOT_IMPLEMENT_MALFORMED: "CANNOT_IMPLEMENT_MALFORMED",
  MessageKind.CANNOT_INSTANTIATE_ENUM: "CANNOT_INSTANTIATE_ENUM",
  MessageKind.CANNOT_INSTANTIATE_TYPE_VARIABLE:
      "CANNOT_INSTANTIATE_TYPE_VARIABLE",
  MessageKind.CANNOT_INSTANTIATE_TYPEDEF: "CANNOT_INSTANTIATE_TYPEDEF",
  MessageKind.CANNOT_MIXIN: "CANNOT_MIXIN",
  MessageKind.CANNOT_MIXIN_ENUM: "CANNOT_MIXIN_ENUM",
  MessageKind.CANNOT_MIXIN_MALFORMED: "CANNOT_MIXIN_MALFORMED",
  MessageKind.CANNOT_OVERRIDE_FIELD_WITH_METHOD:
      "CANNOT_OVERRIDE_FIELD_WITH_METHOD",
  MessageKind.CANNOT_OVERRIDE_FIELD_WITH_METHOD_CONT:
      "CANNOT_OVERRIDE_FIELD_WITH_METHOD_CONT",
  MessageKind.CANNOT_OVERRIDE_GETTER_WITH_METHOD:
      "CANNOT_OVERRIDE_GETTER_WITH_METHOD",
  MessageKind.CANNOT_OVERRIDE_GETTER_WITH_METHOD_CONT:
      "CANNOT_OVERRIDE_GETTER_WITH_METHOD_CONT",
  MessageKind.CANNOT_OVERRIDE_METHOD_WITH_FIELD:
      "CANNOT_OVERRIDE_METHOD_WITH_FIELD",
  MessageKind.CANNOT_OVERRIDE_METHOD_WITH_FIELD_CONT:
      "CANNOT_OVERRIDE_METHOD_WITH_FIELD_CONT",
  MessageKind.CANNOT_OVERRIDE_METHOD_WITH_GETTER:
      "CANNOT_OVERRIDE_METHOD_WITH_GETTER",
  MessageKind.CANNOT_OVERRIDE_METHOD_WITH_GETTER_CONT:
      "CANNOT_OVERRIDE_METHOD_WITH_GETTER_CONT",
  MessageKind.CANNOT_RESOLVE: "CANNOT_RESOLVE",
  MessageKind.CANNOT_RESOLVE_AWAIT: "CANNOT_RESOLVE_AWAIT",
  MessageKind.CANNOT_RESOLVE_AWAIT_IN_CLOSURE:
      "CANNOT_RESOLVE_AWAIT_IN_CLOSURE",
  MessageKind.CANNOT_RESOLVE_CONSTRUCTOR: "CANNOT_RESOLVE_CONSTRUCTOR",
  MessageKind.CANNOT_RESOLVE_CONSTRUCTOR_FOR_IMPLICIT:
      "CANNOT_RESOLVE_CONSTRUCTOR_FOR_IMPLICIT",
  MessageKind.CANNOT_RESOLVE_GETTER: "CANNOT_RESOLVE_GETTER",
  MessageKind.CANNOT_RESOLVE_IN_INITIALIZER: "CANNOT_RESOLVE_IN_INITIALIZER",
  MessageKind.CANNOT_RESOLVE_SETTER: "CANNOT_RESOLVE_SETTER",
  MessageKind.CANNOT_RESOLVE_TYPE: "CANNOT_RESOLVE_TYPE",
  MessageKind.CANNOT_RETURN_FROM_CONSTRUCTOR: "CANNOT_RETURN_FROM_CONSTRUCTOR",
  MessageKind.CLASS_NAME_EXPECTED: "CLASS_NAME_EXPECTED",
  MessageKind.COMPILER_CRASHED: "COMPILER_CRASHED",
  MessageKind.COMPLEX_RETURNING_NSM: "COMPLEX_RETURNING_NSM",
  MessageKind.COMPLEX_THROWING_NSM: "COMPLEX_THROWING_NSM",
  MessageKind.CONSIDER_ANALYZE_ALL: "CONSIDER_ANALYZE_ALL",
  MessageKind.CONST_CALLS_NON_CONST: "CONST_CALLS_NON_CONST",
  MessageKind.CONST_CALLS_NON_CONST_FOR_IMPLICIT:
      "CONST_CALLS_NON_CONST_FOR_IMPLICIT",
  MessageKind.CONST_CONSTRUCTOR_HAS_BODY: "CONST_CONSTRUCTOR_HAS_BODY",
  MessageKind.CONST_CONSTRUCTOR_WITH_NONFINAL_FIELDS:
      "CONST_CONSTRUCTOR_WITH_NONFINAL_FIELDS",
  MessageKind.CONST_CONSTRUCTOR_WITH_NONFINAL_FIELDS_CONSTRUCTOR:
      "CONST_CONSTRUCTOR_WITH_NONFINAL_FIELDS_CONSTRUCTOR",
  MessageKind.CONST_CONSTRUCTOR_WITH_NONFINAL_FIELDS_FIELD:
      "CONST_CONSTRUCTOR_WITH_NONFINAL_FIELDS_FIELD",
  MessageKind.CONST_LOOP_VARIABLE: "CONST_LOOP_VARIABLE",
  MessageKind.CONST_MAP_KEY_OVERRIDES_EQUALS: "CONST_MAP_KEY_OVERRIDES_EQUALS",
  MessageKind.CONST_WITHOUT_INITIALIZER: "CONST_WITHOUT_INITIALIZER",
  MessageKind.CONSTRUCTOR_CALL_EXPECTED: "CONSTRUCTOR_CALL_EXPECTED",
  MessageKind.CONSTRUCTOR_IS_NOT_CONST: "CONSTRUCTOR_IS_NOT_CONST",
  MessageKind.CONSTRUCTOR_WITH_RETURN_TYPE: "CONSTRUCTOR_WITH_RETURN_TYPE",
  MessageKind.CYCLIC_CLASS_HIERARCHY: "CYCLIC_CLASS_HIERARCHY",
  MessageKind.CYCLIC_COMPILE_TIME_CONSTANTS: "CYCLIC_COMPILE_TIME_CONSTANTS",
  MessageKind.CYCLIC_REDIRECTING_FACTORY: "CYCLIC_REDIRECTING_FACTORY",
  MessageKind.CYCLIC_TYPE_VARIABLE: "CYCLIC_TYPE_VARIABLE",
  MessageKind.CYCLIC_TYPEDEF: "CYCLIC_TYPEDEF",
  MessageKind.CYCLIC_TYPEDEF_ONE: "CYCLIC_TYPEDEF_ONE",
  MessageKind.DART_EXT_NOT_SUPPORTED: "DART_EXT_NOT_SUPPORTED",
  MessageKind.DEFERRED_COMPILE_TIME_CONSTANT: "DEFERRED_COMPILE_TIME_CONSTANT",
  MessageKind.DEFERRED_COMPILE_TIME_CONSTANT_CONSTRUCTION:
      "DEFERRED_COMPILE_TIME_CONSTANT_CONSTRUCTION",
  MessageKind.DEFERRED_LIBRARY_DART_2_DART: "DEFERRED_LIBRARY_DART_2_DART",
  MessageKind.DEFERRED_LIBRARY_DUPLICATE_PREFIX:
      "DEFERRED_LIBRARY_DUPLICATE_PREFIX",
  MessageKind.DEFERRED_LIBRARY_WITHOUT_PREFIX:
      "DEFERRED_LIBRARY_WITHOUT_PREFIX",
  MessageKind.DEFERRED_OLD_SYNTAX: "DEFERRED_OLD_SYNTAX",
  MessageKind.DEFERRED_TYPE_ANNOTATION: "DEFERRED_TYPE_ANNOTATION",
  MessageKind.DEPRECATED_TYPEDEF_MIXIN_SYNTAX:
      "DEPRECATED_TYPEDEF_MIXIN_SYNTAX",
  MessageKind.DIRECTLY_THROWING_NSM: "DIRECTLY_THROWING_NSM",
  MessageKind.DISALLOWED_LIBRARY_IMPORT: "DISALLOWED_LIBRARY_IMPORT",
  MessageKind.DUPLICATE_DEFINITION: "DUPLICATE_DEFINITION",
  MessageKind.DUPLICATE_EXPORT: "DUPLICATE_EXPORT",
  MessageKind.DUPLICATE_EXPORT_CONT: "DUPLICATE_EXPORT_CONT",
  MessageKind.DUPLICATE_EXPORT_DECL: "DUPLICATE_EXPORT_DECL",
  MessageKind.DUPLICATE_EXTENDS_IMPLEMENTS: "DUPLICATE_EXTENDS_IMPLEMENTS",
  MessageKind.DUPLICATE_IMPLEMENTS: "DUPLICATE_IMPLEMENTS",
  MessageKind.DUPLICATE_IMPORT: "DUPLICATE_IMPORT",
  MessageKind.DUPLICATE_INITIALIZER: "DUPLICATE_INITIALIZER",
  MessageKind.DUPLICATE_LABEL: "DUPLICATE_LABEL",
  MessageKind.DUPLICATE_SUPER_INITIALIZER: "DUPLICATE_SUPER_INITIALIZER",
  MessageKind.DUPLICATE_TYPE_VARIABLE_NAME: "DUPLICATE_TYPE_VARIABLE_NAME",
  MessageKind.DUPLICATED_LIBRARY_NAME: "DUPLICATED_LIBRARY_NAME",
  MessageKind.DUPLICATED_LIBRARY_RESOURCE: "DUPLICATED_LIBRARY_RESOURCE",
  MessageKind.DUPLICATED_PART_OF: "DUPLICATED_PART_OF",
  MessageKind.DUPLICATED_RESOURCE: "DUPLICATED_RESOURCE",
  MessageKind.EMPTY_CATCH_DECLARATION: "EMPTY_CATCH_DECLARATION",
  MessageKind.EMPTY_ENUM_DECLARATION: "EMPTY_ENUM_DECLARATION",
  MessageKind.EMPTY_HIDE: "EMPTY_HIDE",
  MessageKind.EQUAL_MAP_ENTRY_KEY: "EQUAL_MAP_ENTRY_KEY",
  MessageKind.EMPTY_SHOW: "EMPTY_SHOW",
  MessageKind.EXISTING_DEFINITION: "EXISTING_DEFINITION",
  MessageKind.EXISTING_LABEL: "EXISTING_LABEL",
  MessageKind.EXPECTED_IDENTIFIER_NOT_RESERVED_WORD:
      "EXPECTED_IDENTIFIER_NOT_RESERVED_WORD",
  MessageKind.EXPERIMENTAL_ASSERT_MESSAGE: "EXPERIMENTAL_ASSERT_MESSAGE",
  MessageKind.EXPONENT_MISSING: "EXPONENT_MISSING",
  MessageKind.EXPORT_BEFORE_PARTS: "EXPORT_BEFORE_PARTS",
  MessageKind.EXTERNAL_WITH_BODY: "EXTERNAL_WITH_BODY",
  MessageKind.EXTRA_CATCH_DECLARATION: "EXTRA_CATCH_DECLARATION",
  MessageKind.EXTRA_FORMALS: "EXTRA_FORMALS",
  MessageKind.EXTRANEOUS_MODIFIER: "EXTRANEOUS_MODIFIER",
  MessageKind.EXTRANEOUS_MODIFIER_REPLACE: "EXTRANEOUS_MODIFIER_REPLACE",
  MessageKind.FACTORY_REDIRECTION_IN_NON_FACTORY:
      "FACTORY_REDIRECTION_IN_NON_FACTORY",
  MessageKind.FINAL_FUNCTION_TYPE_PARAMETER: "FINAL_FUNCTION_TYPE_PARAMETER",
  MessageKind.FINAL_WITHOUT_INITIALIZER: "FINAL_WITHOUT_INITIALIZER",
  MessageKind.FORIN_NOT_ASSIGNABLE: "FORIN_NOT_ASSIGNABLE",
  MessageKind.FORMAL_DECLARED_CONST: "FORMAL_DECLARED_CONST",
  MessageKind.FORMAL_DECLARED_STATIC: "FORMAL_DECLARED_STATIC",
  MessageKind.FUNCTION_TYPE_FORMAL_WITH_DEFAULT:
      "FUNCTION_TYPE_FORMAL_WITH_DEFAULT",
  MessageKind.FUNCTION_WITH_INITIALIZER: "FUNCTION_WITH_INITIALIZER",
  MessageKind.GENERIC: "GENERIC",
  MessageKind.GETTER_MISMATCH: "GETTER_MISMATCH",
  MessageKind.GETTER_NOT_FOUND: "GETTER_NOT_FOUND",
  MessageKind.HEX_DIGIT_EXPECTED: "HEX_DIGIT_EXPECTED",
  MessageKind.HIDDEN_HINTS: "HIDDEN_HINTS",
  MessageKind.HIDDEN_IMPLICIT_IMPORT: "HIDDEN_IMPLICIT_IMPORT",
  MessageKind.HIDDEN_IMPORT: "HIDDEN_IMPORT",
  MessageKind.HIDDEN_WARNINGS: "HIDDEN_WARNINGS",
  MessageKind.HIDDEN_WARNINGS_HINTS: "HIDDEN_WARNINGS_HINTS",
  MessageKind.IF_NULL_ASSIGNING_TYPE: "IF_NULL_ASSIGNING_TYPE",
  MessageKind.ILLEGAL_CONST_FIELD_MODIFIER: "ILLEGAL_CONST_FIELD_MODIFIER",
  MessageKind.ILLEGAL_CONSTRUCTOR_MODIFIERS: "ILLEGAL_CONSTRUCTOR_MODIFIERS",
  MessageKind.ILLEGAL_FINAL_METHOD_MODIFIER: "ILLEGAL_FINAL_METHOD_MODIFIER",
  MessageKind.ILLEGAL_MIXIN_APPLICATION_MODIFIERS:
      "ILLEGAL_MIXIN_APPLICATION_MODIFIERS",
  MessageKind.ILLEGAL_MIXIN_CONSTRUCTOR: "ILLEGAL_MIXIN_CONSTRUCTOR",
  MessageKind.ILLEGAL_MIXIN_CYCLE: "ILLEGAL_MIXIN_CYCLE",
  MessageKind.ILLEGAL_MIXIN_OBJECT: "ILLEGAL_MIXIN_OBJECT",
  MessageKind.ILLEGAL_MIXIN_SUPER_USE: "ILLEGAL_MIXIN_SUPER_USE",
  MessageKind.ILLEGAL_MIXIN_SUPERCLASS: "ILLEGAL_MIXIN_SUPERCLASS",
  MessageKind.ILLEGAL_MIXIN_WITH_SUPER: "ILLEGAL_MIXIN_WITH_SUPER",
  MessageKind.ILLEGAL_SETTER_FORMALS: "ILLEGAL_SETTER_FORMALS",
  MessageKind.ILLEGAL_STATIC: "ILLEGAL_STATIC",
  MessageKind.ILLEGAL_SUPER_SEND: "ILLEGAL_SUPER_SEND",
  MessageKind.IMPORT_BEFORE_PARTS: "IMPORT_BEFORE_PARTS",
  MessageKind.IMPORT_EXPERIMENTAL_MIRRORS: "IMPORT_EXPERIMENTAL_MIRRORS",
  MessageKind.IMPORT_PART_OF: "IMPORT_PART_OF",
  MessageKind.IMPORT_PART_OF_HERE: "IMPORT_PART_OF_HERE",
  MessageKind.IMPORTED_HERE: "IMPORTED_HERE",
  MessageKind.INHERIT_GETTER_AND_METHOD: "INHERIT_GETTER_AND_METHOD",
  MessageKind.INHERITED_EXPLICIT_GETTER: "INHERITED_EXPLICIT_GETTER",
  MessageKind.INHERITED_IMPLICIT_GETTER: "INHERITED_IMPLICIT_GETTER",
  MessageKind.INHERITED_METHOD: "INHERITED_METHOD",
  MessageKind.INJECTED_PUBLIC_MEMBER: "INJECTED_PUBLIC_MEMBER",
  MessageKind.INIT_STATIC_FIELD: "INIT_STATIC_FIELD",
  MessageKind.INITIALIZING_FORMAL_NOT_ALLOWED:
      "INITIALIZING_FORMAL_NOT_ALLOWED",
  MessageKind.INSTANCE_STATIC_SAME_NAME: "INSTANCE_STATIC_SAME_NAME",
  MessageKind.INSTANCE_STATIC_SAME_NAME_CONT: "INSTANCE_STATIC_SAME_NAME_CONT",
  MessageKind.INTERNAL_LIBRARY: "INTERNAL_LIBRARY",
  MessageKind.INTERNAL_LIBRARY_FROM: "INTERNAL_LIBRARY_FROM",
  MessageKind.INVALID_ARGUMENT_AFTER_NAMED: "INVALID_ARGUMENT_AFTER_NAMED",
  MessageKind.INVALID_AWAIT: "INVALID_AWAIT",
  MessageKind.INVALID_AWAIT_FOR: "INVALID_AWAIT_FOR",
  MessageKind.INVALID_AWAIT_FOR_IN: "INVALID_AWAIT_FOR_IN",
  MessageKind.INVALID_BREAK: "INVALID_BREAK",
  MessageKind.INVALID_CASE_DEFAULT: "INVALID_CASE_DEFAULT",
  MessageKind.INVALID_CONSTRUCTOR_ARGUMENTS: "INVALID_CONSTRUCTOR_ARGUMENTS",
  MessageKind.INVALID_CONSTRUCTOR_NAME: "INVALID_CONSTRUCTOR_NAME",
  MessageKind.INVALID_CONTINUE: "INVALID_CONTINUE",
  MessageKind.INVALID_FOR_IN: "INVALID_FOR_IN",
  MessageKind.INVALID_INITIALIZER: "INVALID_INITIALIZER",
  MessageKind.INVALID_METADATA: "INVALID_METADATA",
  MessageKind.INVALID_METADATA_GENERIC: "INVALID_METADATA_GENERIC",
  MessageKind.INVALID_OVERRIDDEN_FIELD: "INVALID_OVERRIDDEN_FIELD",
  MessageKind.INVALID_OVERRIDDEN_GETTER: "INVALID_OVERRIDDEN_GETTER",
  MessageKind.INVALID_OVERRIDDEN_METHOD: "INVALID_OVERRIDDEN_METHOD",
  MessageKind.INVALID_OVERRIDDEN_SETTER: "INVALID_OVERRIDDEN_SETTER",
  MessageKind.INVALID_OVERRIDE_FIELD: "INVALID_OVERRIDE_FIELD",
  MessageKind.INVALID_OVERRIDE_FIELD_WITH_GETTER:
      "INVALID_OVERRIDE_FIELD_WITH_GETTER",
  MessageKind.INVALID_OVERRIDE_FIELD_WITH_SETTER:
      "INVALID_OVERRIDE_FIELD_WITH_SETTER",
  MessageKind.INVALID_OVERRIDE_GETTER: "INVALID_OVERRIDE_GETTER",
  MessageKind.INVALID_OVERRIDE_GETTER_WITH_FIELD:
      "INVALID_OVERRIDE_GETTER_WITH_FIELD",
  MessageKind.INVALID_OVERRIDE_METHOD: "INVALID_OVERRIDE_METHOD",
  MessageKind.INVALID_OVERRIDE_SETTER: "INVALID_OVERRIDE_SETTER",
  MessageKind.INVALID_OVERRIDE_SETTER_WITH_FIELD:
      "INVALID_OVERRIDE_SETTER_WITH_FIELD",
  MessageKind.INVALID_PACKAGE_CONFIG: "INVALID_PACKAGE_CONFIG",
  MessageKind.INVALID_PACKAGE_URI: "INVALID_PACKAGE_URI",
  MessageKind.INVALID_PARAMETER: "INVALID_PARAMETER",
  MessageKind.INVALID_RECEIVER_IN_INITIALIZER:
      "INVALID_RECEIVER_IN_INITIALIZER",
  MessageKind.INVALID_SOURCE_FILE_LOCATION: "INVALID_SOURCE_FILE_LOCATION",
  MessageKind.INVALID_SYMBOL: "INVALID_SYMBOL",
  MessageKind.INVALID_SYNC_MODIFIER: "INVALID_SYNC_MODIFIER",
  MessageKind.INVALID_TYPE_VARIABLE_BOUND: "INVALID_TYPE_VARIABLE_BOUND",
  MessageKind.INVALID_UNNAMED_CONSTRUCTOR_NAME:
      "INVALID_UNNAMED_CONSTRUCTOR_NAME",
  MessageKind.INVALID_URI: "INVALID_URI",
  MessageKind.INVALID_USE_OF_SUPER: "INVALID_USE_OF_SUPER",
  MessageKind.INVALID_YIELD: "INVALID_YIELD",
  MessageKind.JS_INTEROP_CLASS_CANNOT_EXTEND_DART_CLASS:
      "JS_INTEROP_CLASS_CANNOT_EXTEND_DART_CLASS",
  MessageKind.JS_INTEROP_CLASS_NON_EXTERNAL_MEMBER:
      "JS_INTEROP_CLASS_NON_EXTERNAL_MEMBER",
  MessageKind.JS_OBJECT_LITERAL_CONSTRUCTOR_WITH_POSITIONAL_ARGUMENTS:
      "JS_OBJECT_LITERAL_CONSTRUCTOR_WITH_POSITIONAL_ARGUMENTS",
  MessageKind.JS_INTEROP_METHOD_WITH_NAMED_ARGUMENTS:
      "JS_INTEROP_METHOD_WITH_NAMED_ARGUMENTS",
  MessageKind.JS_PLACEHOLDER_CAPTURE: "JS_PLACEHOLDER_CAPTURE",
  MessageKind.LIBRARY_NAME_MISMATCH: "LIBRARY_NAME_MISMATCH",
  MessageKind.LIBRARY_NOT_FOUND: "LIBRARY_NOT_FOUND",
  MessageKind.LIBRARY_NOT_SUPPORTED: "LIBRARY_NOT_SUPPORTED",
  MessageKind.LIBRARY_TAG_MUST_BE_FIRST: "LIBRARY_TAG_MUST_BE_FIRST",
  MessageKind.MAIN_HAS_PART_OF: "MAIN_HAS_PART_OF",
  MessageKind.MAIN_NOT_A_FUNCTION: "MAIN_NOT_A_FUNCTION",
  MessageKind.MAIN_WITH_EXTRA_PARAMETER: "MAIN_WITH_EXTRA_PARAMETER",
  MessageKind.MALFORMED_STRING_LITERAL: "MALFORMED_STRING_LITERAL",
  MessageKind.MEMBER_NOT_FOUND: "MEMBER_NOT_FOUND",
  MessageKind.MEMBER_NOT_STATIC: "MEMBER_NOT_STATIC",
  MessageKind.MEMBER_USES_CLASS_NAME: "MEMBER_USES_CLASS_NAME",
  MessageKind.METHOD_NOT_FOUND: "METHOD_NOT_FOUND",
  MessageKind.MINUS_OPERATOR_BAD_ARITY: "MINUS_OPERATOR_BAD_ARITY",
  MessageKind.MIRROR_BLOAT: "MIRROR_BLOAT",
  MessageKind.MIRROR_IMPORT: "MIRROR_IMPORT",
  MessageKind.MIRROR_IMPORT_NO_USAGE: "MIRROR_IMPORT_NO_USAGE",
  MessageKind.MIRRORS_CANNOT_FIND_IN_ELEMENT: "MIRRORS_CANNOT_FIND_IN_ELEMENT",
  MessageKind.MIRRORS_CANNOT_RESOLVE_IN_CURRENT_LIBRARY:
      "MIRRORS_CANNOT_RESOLVE_IN_CURRENT_LIBRARY",
  MessageKind.MIRRORS_CANNOT_RESOLVE_IN_LIBRARY:
      "MIRRORS_CANNOT_RESOLVE_IN_LIBRARY",
  MessageKind.MIRRORS_EXPECTED_STRING: "MIRRORS_EXPECTED_STRING",
  MessageKind.MIRRORS_EXPECTED_STRING_OR_LIST:
      "MIRRORS_EXPECTED_STRING_OR_LIST",
  MessageKind.MIRRORS_EXPECTED_STRING_OR_TYPE:
      "MIRRORS_EXPECTED_STRING_OR_TYPE",
  MessageKind.MIRRORS_EXPECTED_STRING_TYPE_OR_LIST:
      "MIRRORS_EXPECTED_STRING_TYPE_OR_LIST",
  MessageKind.MIRRORS_LIBRARY_NOT_SUPPORT_BY_BACKEND:
      "MIRRORS_LIBRARY_NOT_SUPPORT_BY_BACKEND",
  MessageKind.MISSING_ARGUMENT: "MISSING_ARGUMENT",
  MessageKind.MISSING_ENUM_CASES: "MISSING_ENUM_CASES",
  MessageKind.MISSING_FACTORY_KEYWORD: "MISSING_FACTORY_KEYWORD",
  MessageKind.MISSING_FORMALS: "MISSING_FORMALS",
  MessageKind.MISSING_LIBRARY_NAME: "MISSING_LIBRARY_NAME",
  MessageKind.MISSING_MAIN: "MISSING_MAIN",
  MessageKind.MISSING_PART_OF_TAG: "MISSING_PART_OF_TAG",
  MessageKind.MISSING_TOKEN_AFTER_THIS: "MISSING_TOKEN_AFTER_THIS",
  MessageKind.MISSING_TOKEN_BEFORE_THIS: "MISSING_TOKEN_BEFORE_THIS",
  MessageKind.MISSING_TYPE_ARGUMENT: "MISSING_TYPE_ARGUMENT",
  MessageKind.MULTI_INHERITANCE: "MULTI_INHERITANCE",
  MessageKind.NAMED_ARGUMENT_NOT_FOUND: "NAMED_ARGUMENT_NOT_FOUND",
  MessageKind.NAMED_FUNCTION_EXPRESSION: "NAMED_FUNCTION_EXPRESSION",
  MessageKind.NAMED_PARAMETER_WITH_EQUALS: "NAMED_PARAMETER_WITH_EQUALS",
  MessageKind.NATIVE_NOT_SUPPORTED: "NATIVE_NOT_SUPPORTED",
  MessageKind.NO_BREAK_TARGET: "NO_BREAK_TARGET",
  MessageKind.NO_CATCH_NOR_FINALLY: "NO_CATCH_NOR_FINALLY",
  MessageKind.NO_COMMON_SUBTYPES: "NO_COMMON_SUBTYPES",
  MessageKind.NO_CONTINUE_TARGET: "NO_CONTINUE_TARGET",
  MessageKind.NO_INSTANCE_AVAILABLE: "NO_INSTANCE_AVAILABLE",
  MessageKind.NO_MATCHING_CONSTRUCTOR: "NO_MATCHING_CONSTRUCTOR",
  MessageKind.NO_MATCHING_CONSTRUCTOR_FOR_IMPLICIT:
      "NO_MATCHING_CONSTRUCTOR_FOR_IMPLICIT",
  MessageKind.NO_STATIC_OVERRIDE: "NO_STATIC_OVERRIDE",
  MessageKind.NO_STATIC_OVERRIDE_CONT: "NO_STATIC_OVERRIDE_CONT",
  MessageKind.NO_SUCH_LIBRARY_MEMBER: "NO_SUCH_LIBRARY_MEMBER",
  MessageKind.NO_SUCH_METHOD_IN_NATIVE: "NO_SUCH_METHOD_IN_NATIVE",
  MessageKind.NO_SUCH_SUPER_MEMBER: "NO_SUCH_SUPER_MEMBER",
  MessageKind.NO_SUPER_IN_STATIC: "NO_SUPER_IN_STATIC",
  MessageKind.NO_THIS_AVAILABLE: "NO_THIS_AVAILABLE",
  MessageKind.NON_CONST_BLOAT: "NON_CONST_BLOAT",
  MessageKind.NOT_A_COMPILE_TIME_CONSTANT: "NOT_A_COMPILE_TIME_CONSTANT",
  MessageKind.NOT_A_FIELD: "NOT_A_FIELD",
  MessageKind.NOT_A_PREFIX: "NOT_A_PREFIX",
  MessageKind.NOT_A_TYPE: "NOT_A_TYPE",
  MessageKind.NOT_ASSIGNABLE: "NOT_ASSIGNABLE",
  MessageKind.NOT_CALLABLE: "NOT_CALLABLE",
  MessageKind.NOT_INSTANCE_FIELD: "NOT_INSTANCE_FIELD",
  MessageKind.NOT_MORE_SPECIFIC: "NOT_MORE_SPECIFIC",
  MessageKind.NOT_MORE_SPECIFIC_SUBTYPE: "NOT_MORE_SPECIFIC_SUBTYPE",
  MessageKind.NOT_MORE_SPECIFIC_SUGGESTION: "NOT_MORE_SPECIFIC_SUGGESTION",
  MessageKind.NULL_NOT_ALLOWED: "NULL_NOT_ALLOWED",
  MessageKind.ONLY_ONE_LIBRARY_TAG: "ONLY_ONE_LIBRARY_TAG",
  MessageKind.OPERATOR_NAMED_PARAMETERS: "OPERATOR_NAMED_PARAMETERS",
  MessageKind.OPERATOR_NOT_FOUND: "OPERATOR_NOT_FOUND",
  MessageKind.OPERATOR_OPTIONAL_PARAMETERS: "OPERATOR_OPTIONAL_PARAMETERS",
  MessageKind.OPTIONAL_PARAMETER_IN_CATCH: "OPTIONAL_PARAMETER_IN_CATCH",
  MessageKind.OVERRIDE_EQUALS_NOT_HASH_CODE: "OVERRIDE_EQUALS_NOT_HASH_CODE",
  MessageKind.PARAMETER_NAME_EXPECTED: "PARAMETER_NAME_EXPECTED",
  MessageKind.PARAMETER_WITH_MODIFIER_IN_CATCH:
      "PARAMETER_WITH_MODIFIER_IN_CATCH",
  MessageKind.PARAMETER_WITH_TYPE_IN_CATCH: "PARAMETER_WITH_TYPE_IN_CATCH",
  MessageKind.PATCH_EXTERNAL_WITHOUT_IMPLEMENTATION:
      "PATCH_EXTERNAL_WITHOUT_IMPLEMENTATION",
  MessageKind.PATCH_NO_GETTER: "PATCH_NO_GETTER",
  MessageKind.PATCH_NO_SETTER: "PATCH_NO_SETTER",
  MessageKind.PATCH_NON_CLASS: "PATCH_NON_CLASS",
  MessageKind.PATCH_NON_CONSTRUCTOR: "PATCH_NON_CONSTRUCTOR",
  MessageKind.PATCH_NON_EXISTING: "PATCH_NON_EXISTING",
  MessageKind.PATCH_NON_EXTERNAL: "PATCH_NON_EXTERNAL",
  MessageKind.PATCH_NON_FUNCTION: "PATCH_NON_FUNCTION",
  MessageKind.PATCH_NON_GETTER: "PATCH_NON_GETTER",
  MessageKind.PATCH_NON_SETTER: "PATCH_NON_SETTER",
  MessageKind.PATCH_NONPATCHABLE: "PATCH_NONPATCHABLE",
  MessageKind.PATCH_OPTIONAL_PARAMETER_COUNT_MISMATCH:
      "PATCH_OPTIONAL_PARAMETER_COUNT_MISMATCH",
  MessageKind.PATCH_OPTIONAL_PARAMETER_NAMED_MISMATCH:
      "PATCH_OPTIONAL_PARAMETER_NAMED_MISMATCH",
  MessageKind.PATCH_PARAMETER_MISMATCH: "PATCH_PARAMETER_MISMATCH",
  MessageKind.PATCH_PARAMETER_TYPE_MISMATCH: "PATCH_PARAMETER_TYPE_MISMATCH",
  MessageKind.PATCH_POINT_TO_CLASS: "PATCH_POINT_TO_CLASS",
  MessageKind.PATCH_POINT_TO_CONSTRUCTOR: "PATCH_POINT_TO_CONSTRUCTOR",
  MessageKind.PATCH_POINT_TO_FUNCTION: "PATCH_POINT_TO_FUNCTION",
  MessageKind.PATCH_POINT_TO_GETTER: "PATCH_POINT_TO_GETTER",
  MessageKind.PATCH_POINT_TO_PARAMETER: "PATCH_POINT_TO_PARAMETER",
  MessageKind.PATCH_POINT_TO_SETTER: "PATCH_POINT_TO_SETTER",
  MessageKind.PATCH_REQUIRED_PARAMETER_COUNT_MISMATCH:
      "PATCH_REQUIRED_PARAMETER_COUNT_MISMATCH",
  MessageKind.PATCH_RETURN_TYPE_MISMATCH: "PATCH_RETURN_TYPE_MISMATCH",
  MessageKind.PLEASE_REPORT_THE_CRASH: "PLEASE_REPORT_THE_CRASH",
  MessageKind.POSITIONAL_PARAMETER_WITH_EQUALS:
      "POSITIONAL_PARAMETER_WITH_EQUALS",
  MessageKind.POTENTIAL_MUTATION: "POTENTIAL_MUTATION",
  MessageKind.POTENTIAL_MUTATION_HERE: "POTENTIAL_MUTATION_HERE",
  MessageKind.POTENTIAL_MUTATION_IN_CLOSURE: "POTENTIAL_MUTATION_IN_CLOSURE",
  MessageKind.POTENTIAL_MUTATION_IN_CLOSURE_HERE:
      "POTENTIAL_MUTATION_IN_CLOSURE_HERE",
  MessageKind.PREAMBLE: "PREAMBLE",
  MessageKind.PREFIX_AS_EXPRESSION: "PREFIX_AS_EXPRESSION",
  MessageKind.PRIVATE_ACCESS: "PRIVATE_ACCESS",
  MessageKind.PRIVATE_IDENTIFIER: "PRIVATE_IDENTIFIER",
  MessageKind.PRIVATE_NAMED_PARAMETER: "PRIVATE_NAMED_PARAMETER",
  MessageKind.READ_SCRIPT_ERROR: "READ_SCRIPT_ERROR",
  MessageKind.READ_SELF_ERROR: "READ_SELF_ERROR",
  MessageKind.REDIRECTING_CONSTRUCTOR_CYCLE: "REDIRECTING_CONSTRUCTOR_CYCLE",
  MessageKind.REDIRECTING_CONSTRUCTOR_HAS_BODY:
      "REDIRECTING_CONSTRUCTOR_HAS_BODY",
  MessageKind.REDIRECTING_CONSTRUCTOR_HAS_INITIALIZER:
      "REDIRECTING_CONSTRUCTOR_HAS_INITIALIZER",
  MessageKind.REDIRECTING_FACTORY_WITH_DEFAULT:
      "REDIRECTING_FACTORY_WITH_DEFAULT",
  MessageKind.REFERENCE_IN_INITIALIZATION: "REFERENCE_IN_INITIALIZATION",
  MessageKind.REQUIRED_PARAMETER_WITH_DEFAULT:
      "REQUIRED_PARAMETER_WITH_DEFAULT",
  MessageKind.RETURN_IN_GENERATOR: "RETURN_IN_GENERATOR",
  MessageKind.RETURN_NOTHING: "RETURN_NOTHING",
  MessageKind.RETURN_VALUE_IN_VOID: "RETURN_VALUE_IN_VOID",
  MessageKind.SETTER_MISMATCH: "SETTER_MISMATCH",
  MessageKind.SETTER_NOT_FOUND: "SETTER_NOT_FOUND",
  MessageKind.SETTER_NOT_FOUND_IN_SUPER: "SETTER_NOT_FOUND_IN_SUPER",
  MessageKind.STATIC_FUNCTION_BLOAT: "STATIC_FUNCTION_BLOAT",
  MessageKind.STRING_EXPECTED: "STRING_EXPECTED",
  MessageKind.SUPER_CALL_TO_FACTORY: "SUPER_CALL_TO_FACTORY",
  MessageKind.SUPER_INITIALIZER_IN_OBJECT: "SUPER_INITIALIZER_IN_OBJECT",
  MessageKind.SWITCH_CASE_FORBIDDEN: "SWITCH_CASE_FORBIDDEN",
  MessageKind.SWITCH_CASE_TYPES_NOT_EQUAL: "SWITCH_CASE_TYPES_NOT_EQUAL",
  MessageKind.SWITCH_CASE_TYPES_NOT_EQUAL_CASE:
      "SWITCH_CASE_TYPES_NOT_EQUAL_CASE",
  MessageKind.SWITCH_CASE_VALUE_OVERRIDES_EQUALS:
      "SWITCH_CASE_VALUE_OVERRIDES_EQUALS",
  MessageKind.TERNARY_OPERATOR_BAD_ARITY: "TERNARY_OPERATOR_BAD_ARITY",
  MessageKind.THIS_CALL_TO_FACTORY: "THIS_CALL_TO_FACTORY",
  MessageKind.THIS_IS_THE_DECLARATION: "THIS_IS_THE_DECLARATION",
  MessageKind.THIS_IS_THE_METHOD: "THIS_IS_THE_METHOD",
  MessageKind.THIS_IS_THE_PART_OF_TAG: "THIS_IS_THE_PART_OF_TAG",
  MessageKind.THIS_PROPERTY: "THIS_PROPERTY",
  MessageKind.THROW_WITHOUT_EXPRESSION: "THROW_WITHOUT_EXPRESSION",
  MessageKind.TOP_LEVEL_VARIABLE_DECLARED_STATIC:
      "TOP_LEVEL_VARIABLE_DECLARED_STATIC",
  MessageKind.TYPE_ARGUMENT_COUNT_MISMATCH: "TYPE_ARGUMENT_COUNT_MISMATCH",
  MessageKind.TYPE_VARIABLE_IN_CONSTANT: "TYPE_VARIABLE_IN_CONSTANT",
  MessageKind.TYPE_VARIABLE_WITHIN_STATIC_MEMBER:
      "TYPE_VARIABLE_WITHIN_STATIC_MEMBER",
  MessageKind.TYPEDEF_FORMAL_WITH_DEFAULT: "TYPEDEF_FORMAL_WITH_DEFAULT",
  MessageKind.UNARY_OPERATOR_BAD_ARITY: "UNARY_OPERATOR_BAD_ARITY",
  MessageKind.UNBOUND_LABEL: "UNBOUND_LABEL",
  MessageKind.UNIMPLEMENTED_EXPLICIT_GETTER: "UNIMPLEMENTED_EXPLICIT_GETTER",
  MessageKind.UNIMPLEMENTED_EXPLICIT_SETTER: "UNIMPLEMENTED_EXPLICIT_SETTER",
  MessageKind.UNIMPLEMENTED_GETTER: "UNIMPLEMENTED_GETTER",
  MessageKind.UNIMPLEMENTED_GETTER_ONE: "UNIMPLEMENTED_GETTER_ONE",
  MessageKind.UNIMPLEMENTED_IMPLICIT_GETTER: "UNIMPLEMENTED_IMPLICIT_GETTER",
  MessageKind.UNIMPLEMENTED_IMPLICIT_SETTER: "UNIMPLEMENTED_IMPLICIT_SETTER",
  MessageKind.UNIMPLEMENTED_METHOD: "UNIMPLEMENTED_METHOD",
  MessageKind.UNIMPLEMENTED_METHOD_CONT: "UNIMPLEMENTED_METHOD_CONT",
  MessageKind.UNIMPLEMENTED_METHOD_ONE: "UNIMPLEMENTED_METHOD_ONE",
  MessageKind.UNIMPLEMENTED_SETTER: "UNIMPLEMENTED_SETTER",
  MessageKind.UNIMPLEMENTED_SETTER_ONE: "UNIMPLEMENTED_SETTER_ONE",
  MessageKind.UNMATCHED_TOKEN: "UNMATCHED_TOKEN",
  MessageKind.UNRECOGNIZED_VERSION_OF_LOOKUP_MAP:
      "UNRECOGNIZED_VERSION_OF_LOOKUP_MAP",
  MessageKind.UNSUPPORTED_BANG_EQ_EQ: "UNSUPPORTED_BANG_EQ_EQ",
  MessageKind.UNSUPPORTED_EQ_EQ_EQ: "UNSUPPORTED_EQ_EQ_EQ",
  MessageKind.UNSUPPORTED_LITERAL_SYMBOL: "UNSUPPORTED_LITERAL_SYMBOL",
  MessageKind.UNSUPPORTED_PREFIX_PLUS: "UNSUPPORTED_PREFIX_PLUS",
  MessageKind.UNSUPPORTED_THROW_WITHOUT_EXP: "UNSUPPORTED_THROW_WITHOUT_EXP",
  MessageKind.UNTERMINATED_COMMENT: "UNTERMINATED_COMMENT",
  MessageKind.UNTERMINATED_STRING: "UNTERMINATED_STRING",
  MessageKind.UNTERMINATED_TOKEN: "UNTERMINATED_TOKEN",
  MessageKind.UNUSED_CLASS: "UNUSED_CLASS",
  MessageKind.UNUSED_LABEL: "UNUSED_LABEL",
  MessageKind.UNUSED_METHOD: "UNUSED_METHOD",
  MessageKind.UNUSED_TYPEDEF: "UNUSED_TYPEDEF",
  MessageKind.VAR_FUNCTION_TYPE_PARAMETER: "VAR_FUNCTION_TYPE_PARAMETER",
  MessageKind.VOID_EXPRESSION: "VOID_EXPRESSION",
  MessageKind.VOID_NOT_ALLOWED: "VOID_NOT_ALLOWED",
  MessageKind.VOID_VARIABLE: "VOID_VARIABLE",
  MessageKind.WRONG_ARGUMENT_FOR_JS_INTERCEPTOR_CONSTANT:
      "WRONG_ARGUMENT_FOR_JS_INTERCEPTOR_CONSTANT",
  MessageKind.WRONG_NUMBER_OF_ARGUMENTS_FOR_ASSERT:
      "WRONG_NUMBER_OF_ARGUMENTS_FOR_ASSERT",
  MessageKind.YIELDING_MODIFIER_ON_ARROW_BODY:
      "YIELDING_MODIFIER_ON_ARROW_BODY",
};

/// A message template for an error, warning, hint or info message generated
/// by the compiler. Each template is associated with a [MessageKind] that
/// uniquely identifies the message template.
// TODO(johnnniwinther): For Infos, consider adding a reference to the
// error/warning/hint that they belong to.
class MessageTemplate {
  final MessageKind kind;

  final String id;

  /// Should describe what is wrong and why.
  final String template;

  /// Should describe how to fix the problem. Elided when using --terse option.
  final String howToFix;

  /**
   *  Examples will be checked by
   *  tests/compiler/dart2js/message_kind_test.dart.
   *
   *  An example is either a String containing the example source code or a Map
   *  from filenames to source code. In the latter case, the filename for the
   *  main library code must be 'main.dart'.
   */
  final List examples;

  /// Additional options needed for the examples to work.
  final List<String> options;

  const MessageTemplate(this.kind, this.id, this.template, this.howToFix,
      this.examples, this.options);

  toString() => template;

  Message message([Map arguments = const {}, bool terse = false]) {
    return new Message(this, arguments, terse);
  }

  bool get hasHowToFix =>
      howToFix != null && howToFix != dart2js_messages.DONT_KNOW_HOW_TO_FIX;

  static final Map<MessageKind, MessageTemplate> TEMPLATES =
      _constructMessageTemplates();

  static String get IMPORT_EXPERIMENTAL_MIRRORS_PADDING =>
      dart2js_messages.IMPORT_EXPERIMENTAL_MIRRORS_PADDING;

  static String get MIRRORS_NOT_SUPPORTED_BY_BACKEND_PADDING =>
      dart2js_messages.MIRRORS_NOT_SUPPORTED_BY_BACKEND_PADDING;

  static String get DISALLOWED_LIBRARY_IMPORT_PADDING =>
      dart2js_messages.DISALLOWED_LIBRARY_IMPORT_PADDING;

  static Map<MessageKind, MessageTemplate> _constructMessageTemplates() {
    Map<MessageKind, MessageTemplate> result = <MessageKind, MessageTemplate>{};
    for (MessageKind kind in MessageKind.values) {
      String name = _KIND_TO_STRING_MAP[kind];
      if (name == null) {
        throw new ArgumentError("No mapping for $kind in _KIND_TO_STRING_MAP");
      }
      Map data =
          shared_messages.MESSAGES[name] ?? dart2js_messages.MESSAGES[name];
      if (data == null) throw new ArgumentError.value(name);

      String id = data['id'];
      String template = data['template'];
      String howToFix = data['howToFix'];
      List examples = data['examples'];
      List<String> options = data['options'] ?? const <String>[];
      result[kind] =
          new MessageTemplate(kind, id, template, howToFix, examples, options);
    }
    return result;
  }
}

class Message {
  final MessageTemplate template;
  final Map arguments;
  final bool terse;
  String message;

  Message(this.template, this.arguments, this.terse) {
    assert(() {
      computeMessage();
      return true;
    });
  }

  MessageKind get kind => template.kind;

  String computeMessage() {
    if (message == null) {
      message = template.template;
      arguments.forEach((key, value) {
        message = message.replaceAll('#{${key}}', convertToString(value));
      });
      assert(invariant(
          CURRENT_ELEMENT_SPANNABLE,
          kind == MessageKind.GENERIC ||
              !message.contains(new RegExp(r'#\{.+\}')),
          message: 'Missing arguments in error message: "$message"'));
      if (!terse && template.hasHowToFix) {
        String howToFix = template.howToFix;
        arguments.forEach((key, value) {
          howToFix = howToFix.replaceAll('#{${key}}', convertToString(value));
        });
        message = '$message\n$howToFix';
      }
    }
    return message;
  }

  String toString() {
    return computeMessage();
  }

  bool operator ==(other) {
    if (other is! Message) return false;
    return (template == other.template) && (toString() == other.toString());
  }

  int get hashCode => throw new UnsupportedError('Message.hashCode');

  static String convertToString(value) {
    if (value is ErrorToken) {
      // Shouldn't happen.
      return value.assertionMessage;
    } else if (value is Token) {
      value = value.value;
    }
    return '$value';
  }
}
