blob: b529e1c5bc599ca1bee3c9c1a8843960051d391e [file] [log] [blame]
// 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';
}
}