| # This file contains information about the status of supporting fixes for every |
| # diagnostic reported by the analyzer. The information supports the following |
| # needs. |
| # |
| # - Record which diagnostics need to be considered in order to determine whether |
| # a fix for the diagnostic is possible. |
| # |
| # - Record the reasoning for saying that there is no fix for a diagnostic (when |
| # that reasoning might not be obvious). |
| # |
| # - Record the fixes that could be implemented for a diagnostic, whether there |
| # are existing fixes or not. |
| # |
| # The status information is recorded in a map. The key of each top-level entry |
| # is the unique name of an error code. The value of each top-level entry is a |
| # map describing the status of fixes related to that diagnostic. |
| # |
| # In every second-level map, the first key is `status` and the corresponding |
| # value is one of the following: |
| # - 'needsEvaluation', if the diagnostic has not been evaluated in terms of |
| # fixes. |
| # - 'hasFix', if the diagnostic has one or more fixes. |
| # - 'noFix', if no fix seems appropriate for the diagnostic. There should be a |
| # second key named `notes` whose value is text explaining why there is no |
| # appropriate fix. |
| # - 'needsFix', if the diagnostic needs a fix. If an issue has been opened, |
| # there should be a second key named `issue` whose value is the URL of the |
| # issue. |
| # |
| # Note that some codes marked as 'noFix' have a note about the fix requiring a |
| # refactoring. In some cases we could provide a fix that adds a new declaration |
| # with the correct name while marking the old declaration with `deprecated`. |
| # That would negate the need for a refactoring while providing a step toward a |
| # more complete change. Doing so, however, would not be the best possible UX, so |
| # we might not want to do that. |
| # |
| # The other keys in the second-level map are all optional, and include |
| # - 'since', whose value is the version number of the SDK in which the |
| # diagnostic was added. |
| # - 'notes', whose value is text, typically describing what fix should be |
| # created or why we think a fix for the diagnostic is not appropriate. |
| # - 'issue', whose value is a list of the URLs of GitHub issues for the fixes |
| # that should be added. Ideally every code marked as 'needsFix' would have an |
| # issue created for it. |
| # |
| # Stats: |
| # - 42 "needsEvaluation" |
| # - 306 "needsFix" |
| # - 442 "hasFix" |
| # - 517 "noFix" |
| |
| AnalysisOptionsErrorCode.INCLUDED_FILE_PARSE_ERROR: |
| status: noFix |
| notes: |- |
| The fix needs to be made in the included file. |
| AnalysisOptionsErrorCode.PARSE_ERROR: |
| status: noFix |
| notes: |- |
| Because of the way the YAML parser works, there isn't enough information to |
| be able to provide a fix. |
| AnalysisOptionsHintCode.DEPRECATED_LINT: |
| status: hasFix |
| AnalysisOptionsHintCode.DEPRECATED_LINT_WITH_REPLACEMENT: |
| status: needsFix |
| notes: |- |
| We should be able to replace the deprecated lint rule with its replacement. |
| AnalysisOptionsHintCode.DUPLICATE_RULE: |
| status: hasFix |
| AnalysisOptionsWarningCode.ANALYSIS_OPTION_DEPRECATED: |
| status: needsFix |
| notes: |- |
| The fix is to remove the deprecated option. |
| AnalysisOptionsWarningCode.ANALYSIS_OPTION_DEPRECATED_WITH_REPLACEMENT: |
| status: hasFix |
| AnalysisOptionsWarningCode.INCLUDE_FILE_NOT_FOUND: |
| status: noFix |
| notes: |- |
| It would not be performant to search the disk for analysis options files |
| that could be included. |
| |
| We could potentially have a fix to create the referenced file that currently |
| doesn't exist, but that would only be useful if the missing file is in the |
| same repository as the including file. |
| AnalysisOptionsWarningCode.INCLUDED_FILE_WARNING: |
| status: noFix |
| notes: |- |
| The fix needs to be made in the included file. |
| AnalysisOptionsWarningCode.INCOMPATIBLE_LINT: |
| status: noFix |
| notes: |- |
| Without knowing which rule the user would prefer to use, we cannot remove |
| the reported one. |
| AnalysisOptionsWarningCode.INVALID_OPTION: |
| status: needsFix |
| notes: |- |
| We could look for valid options that are similar in spelling to the invalid |
| option and replace the invalid option with the selected replacement. |
| AnalysisOptionsWarningCode.INVALID_SECTION_FORMAT: |
| status: noFix |
| notes: |- |
| It isn't worth the cost to try to figure out how to convert |
| a list, map, or string to a different format. |
| AnalysisOptionsWarningCode.MULTIPLE_PLUGINS: |
| status: needsFix |
| notes: |- |
| The fix is to remove the plugin name. Might not be worth the cost if we |
| can address the question of if/how we're supporting plugins. |
| AnalysisOptionsWarningCode.RECURSIVE_INCLUDE_FILE: |
| status: noFix |
| notes: |- |
| It isn't possible to know the right place to break the recursion. The best |
| we could do is to remove the include in the file that the diagnostic is |
| reported on. |
| AnalysisOptionsWarningCode.REMOVED_LINT: |
| status: hasFix |
| AnalysisOptionsWarningCode.REPLACED_LINT: |
| status: needsFix |
| notes: |- |
| We should be able to replace the deprecated lint rule with its replacement. |
| AnalysisOptionsWarningCode.UNDEFINED_LINT: |
| status: hasFix |
| AnalysisOptionsWarningCode.UNRECOGNIZED_ERROR_CODE: |
| status: needsFix |
| notes: |- |
| The fix would be to replace the code with a valid code whose name is similar |
| to the unrecognized code. |
| AnalysisOptionsWarningCode.UNSUPPORTED_OPTION_WITH_LEGAL_VALUE: |
| status: needsFix |
| notes: |- |
| The fix is to replace the unsupported option with the one legal value. |
| AnalysisOptionsWarningCode.UNSUPPORTED_OPTION_WITH_LEGAL_VALUES: |
| status: needsFix |
| notes: |- |
| The fix is to replace the unsupported option with one of the legal values. |
| AnalysisOptionsWarningCode.UNSUPPORTED_OPTION_WITHOUT_VALUES: |
| status: hasFix |
| AnalysisOptionsWarningCode.UNSUPPORTED_VALUE: |
| status: needsFix |
| notes: |- |
| The fix is to replace the unsupported option with one of the legal values. |
| CompileTimeErrorCode.ABSTRACT_FIELD_CONSTRUCTOR_INITIALIZER: |
| status: hasFix |
| CompileTimeErrorCode.ABSTRACT_FIELD_INITIALIZER: |
| status: hasFix |
| CompileTimeErrorCode.ABSTRACT_SUPER_MEMBER_REFERENCE: |
| status: noFix |
| notes: |- |
| The only fix we could automate is to remove the call to super, which is |
| unlikely to be the right solution. |
| CompileTimeErrorCode.AMBIGUOUS_EXPORT: |
| status: needsFix |
| notes: |- |
| For each exported name, add a fix to hide the name. |
| CompileTimeErrorCode.AMBIGUOUS_EXTENSION_MEMBER_ACCESS: |
| status: hasFix |
| CompileTimeErrorCode.AMBIGUOUS_IMPORT: |
| status: needsFix |
| notes: |- |
| 1. For each imported name, add a fix to hide the name. |
| 2. For each imported name, add a fix to add a prefix. We wouldn't be able to |
| add the prefix everywhere, but could add it wherever the name was already |
| unambiguous. |
| CompileTimeErrorCode.AMBIGUOUS_SET_OR_MAP_LITERAL_BOTH: |
| status: noFix |
| notes: |- |
| We could potentially have a pair of fixes: one to remove the elements that |
| force it to be a set and one to remove the map related elements. I doubt |
| that either is the right solution. |
| CompileTimeErrorCode.AMBIGUOUS_SET_OR_MAP_LITERAL_EITHER: |
| status: noFix |
| notes: |- |
| We don't have enough information to add type arguments for the user. |
| CompileTimeErrorCode.ARGUMENT_TYPE_NOT_ASSIGNABLE: |
| status: hasFix |
| CompileTimeErrorCode.ASSERT_IN_REDIRECTING_CONSTRUCTOR: |
| status: hasFix |
| CompileTimeErrorCode.ASSIGNMENT_TO_CONST: |
| status: noFix |
| notes: |- |
| Making the field non-const doesn't seem to be a good choice, but it is a |
| possibility. |
| CompileTimeErrorCode.ASSIGNMENT_TO_FINAL: |
| status: hasFix |
| CompileTimeErrorCode.ASSIGNMENT_TO_FINAL_LOCAL: |
| status: hasFix |
| CompileTimeErrorCode.ASSIGNMENT_TO_FINAL_NO_SETTER: |
| status: needsFix |
| notes: |- |
| The fix is to create the missing setter. |
| CompileTimeErrorCode.ASSIGNMENT_TO_FUNCTION: |
| status: noFix |
| notes: |- |
| Theoretically we could replace the function with a function valued variable |
| if the value being assigned is a function with the same signature, but that |
| case is likely rare enough to not be worth supporting. |
| CompileTimeErrorCode.ASSIGNMENT_TO_METHOD: |
| status: noFix |
| notes: |- |
| Theoretically we could replace the method with a function valued variable |
| if the value being assigned is a function with the same signature, but that |
| case is likely rare enough to not be worth supporting. |
| CompileTimeErrorCode.ASSIGNMENT_TO_TYPE: |
| status: noFix |
| CompileTimeErrorCode.ASYNC_FOR_IN_WRONG_CONTEXT: |
| status: hasFix |
| CompileTimeErrorCode.AUGMENTATION_EXTENDS_CLAUSE_ALREADY_PRESENT: |
| status: needsEvaluation |
| CompileTimeErrorCode.AUGMENTATION_MODIFIER_EXTRA: |
| status: hasFix |
| CompileTimeErrorCode.AUGMENTATION_MODIFIER_MISSING: |
| status: needsFix |
| CompileTimeErrorCode.AUGMENTATION_OF_DIFFERENT_DECLARATION_KIND: |
| status: noFix |
| CompileTimeErrorCode.AUGMENTATION_TYPE_PARAMETER_BOUND: |
| status: noFix |
| CompileTimeErrorCode.AUGMENTATION_TYPE_PARAMETER_COUNT: |
| status: noFix |
| CompileTimeErrorCode.AUGMENTATION_TYPE_PARAMETER_NAME: |
| status: needsFix |
| notes: |- |
| We could rename the type parameter, this is purely local operation. |
| CompileTimeErrorCode.AUGMENTATION_WITHOUT_DECLARATION: |
| status: noFix |
| CompileTimeErrorCode.AUGMENTED_EXPRESSION_IS_NOT_SETTER: |
| status: noFix |
| CompileTimeErrorCode.AUGMENTED_EXPRESSION_IS_SETTER: |
| status: noFix |
| CompileTimeErrorCode.AUGMENTED_EXPRESSION_NOT_OPERATOR: |
| status: noFix |
| CompileTimeErrorCode.AWAIT_IN_LATE_LOCAL_VARIABLE_INITIALIZER: |
| status: hasFix |
| CompileTimeErrorCode.AWAIT_IN_WRONG_CONTEXT: |
| status: hasFix |
| CompileTimeErrorCode.AWAIT_OF_INCOMPATIBLE_TYPE: |
| status: noFix |
| CompileTimeErrorCode.BASE_CLASS_IMPLEMENTED_OUTSIDE_OF_LIBRARY: |
| status: noFix |
| notes: |- |
| Theoretically we could remove the `base` modifier, but that's unlikely to be |
| the right fix most of the time. |
| CompileTimeErrorCode.BASE_MIXIN_IMPLEMENTED_OUTSIDE_OF_LIBRARY: |
| status: noFix |
| notes: |- |
| Theoretically we could remove the `base` modifier, but that's unlikely to be |
| the right fix most of the time. |
| CompileTimeErrorCode.BODY_MIGHT_COMPLETE_NORMALLY: |
| status: hasFix |
| CompileTimeErrorCode.BREAK_LABEL_ON_SWITCH_MEMBER: |
| status: noFix |
| notes: |- |
| Theoretically we could replace the `break` with a `continue`, but this |
| probably occurs rarely enough to not be worth the cost. |
| CompileTimeErrorCode.BUILT_IN_IDENTIFIER_AS_EXTENSION_NAME: |
| status: noFix |
| notes: |- |
| The correction is to change the name. |
| CompileTimeErrorCode.BUILT_IN_IDENTIFIER_AS_EXTENSION_TYPE_NAME: |
| status: noFix |
| notes: |- |
| The correction is to change the name. |
| CompileTimeErrorCode.BUILT_IN_IDENTIFIER_AS_PREFIX_NAME: |
| status: noFix |
| notes: |- |
| The correction is to change the name. |
| CompileTimeErrorCode.BUILT_IN_IDENTIFIER_AS_TYPE: |
| status: noFix |
| notes: |- |
| The correction is to change the name. |
| CompileTimeErrorCode.BUILT_IN_IDENTIFIER_AS_TYPE_NAME: |
| status: noFix |
| notes: |- |
| The correction is to change the name. |
| CompileTimeErrorCode.BUILT_IN_IDENTIFIER_AS_TYPE_PARAMETER_NAME: |
| status: noFix |
| notes: |- |
| The correction is to change the name. |
| CompileTimeErrorCode.BUILT_IN_IDENTIFIER_AS_TYPEDEF_NAME: |
| status: noFix |
| notes: |- |
| The correction is to change the name. |
| CompileTimeErrorCode.CASE_EXPRESSION_TYPE_IMPLEMENTS_EQUALS: |
| status: needsFix |
| notes: |- |
| The fix could be to change the switch expression to an if statement. |
| CompileTimeErrorCode.CASE_EXPRESSION_TYPE_IS_NOT_SWITCH_EXPRESSION_SUBTYPE: |
| status: noFix |
| CompileTimeErrorCode.CAST_TO_NON_TYPE: |
| status: hasFix |
| CompileTimeErrorCode.CLASS_USED_AS_MIXIN: |
| status: noFix |
| notes: |- |
| Theoretically we could add the mixin modifier to the class if the class if |
| doing so would be valid. |
| CompileTimeErrorCode.CLASS_INSTANTIATION_ACCESS_TO_INSTANCE_MEMBER: |
| status: noFix |
| since: 2.15 |
| CompileTimeErrorCode.CLASS_INSTANTIATION_ACCESS_TO_STATIC_MEMBER: |
| status: hasFix |
| CompileTimeErrorCode.CLASS_INSTANTIATION_ACCESS_TO_UNKNOWN_MEMBER: |
| status: noFix |
| notes: |- |
| Theoretically we could look for static members whose name is similar in |
| spelling and suggest them (and remove the type arguments), but it's probably |
| not valuable often enough to warrant the cost. |
| since: in 2.15 |
| CompileTimeErrorCode.CONCRETE_CLASS_HAS_ENUM_SUPERINTERFACE: |
| status: noFix |
| since: 2.17 |
| notes: |- |
| We could potentially offer a fix that would remove all of the types in the |
| class header that are or implement `Enum`, but I think it would be more |
| likely that the user needed to restructure the super interfaces so that |
| `Enum` wasn't included but the rest of the interfaces could be. |
| CompileTimeErrorCode.CONCRETE_CLASS_WITH_ABSTRACT_MEMBER: |
| status: hasFix |
| CompileTimeErrorCode.CONFLICTING_CONSTRUCTOR_AND_STATIC_FIELD: |
| status: noFix |
| notes: |- |
| The fix is to rename one of the two, but we can't know what name to use. |
| CompileTimeErrorCode.CONFLICTING_CONSTRUCTOR_AND_STATIC_GETTER: |
| status: noFix |
| since: 2.15 |
| notes: |- |
| The fix is to rename one of the two, but we can't know what name to use. |
| CompileTimeErrorCode.CONFLICTING_CONSTRUCTOR_AND_STATIC_METHOD: |
| status: noFix |
| notes: |- |
| The fix is to rename one of the two, but we can't know what name to use. |
| CompileTimeErrorCode.CONFLICTING_CONSTRUCTOR_AND_STATIC_SETTER: |
| status: noFix |
| since: 2.15 |
| notes: |- |
| The fix is to rename one of the two, but we can't know what name to use. |
| CompileTimeErrorCode.CONFLICTING_FIELD_AND_METHOD: |
| status: noFix |
| notes: |- |
| The fix is to rename one of the two, but we can't know what name to use. |
| CompileTimeErrorCode.CONFLICTING_GENERIC_INTERFACES: |
| status: noFix |
| CompileTimeErrorCode.CONFLICTING_INHERITED_METHOD_AND_SETTER: |
| status: needsEvaluation |
| CompileTimeErrorCode.CONFLICTING_METHOD_AND_FIELD: |
| status: noFix |
| notes: |- |
| The fix is to rename one of the two, but we can't know what name to use. |
| CompileTimeErrorCode.CONFLICTING_STATIC_AND_INSTANCE: |
| status: noFix |
| notes: |- |
| The fix is to rename one of the two, but we can't know what name to use. |
| CompileTimeErrorCode.CONFLICTING_TYPE_VARIABLE_AND_CLASS: |
| status: noFix |
| notes: |- |
| The fix is to rename one of the two, but we can't know what name to use. |
| CompileTimeErrorCode.CONFLICTING_TYPE_VARIABLE_AND_ENUM: |
| status: noFix |
| since: 2.17 |
| notes: |- |
| The fix is to rename one of the two, but we can't know what name to use. |
| CompileTimeErrorCode.CONFLICTING_TYPE_VARIABLE_AND_EXTENSION: |
| status: noFix |
| notes: |- |
| The fix is to rename one of the two, but we can't know what name to use. |
| CompileTimeErrorCode.CONFLICTING_TYPE_VARIABLE_AND_EXTENSION_TYPE: |
| status: noFix |
| notes: |- |
| The fix is to rename one of the two, but we can't know what name to use. |
| CompileTimeErrorCode.CONFLICTING_TYPE_VARIABLE_AND_MEMBER_CLASS: |
| status: noFix |
| notes: |- |
| The fix is to rename one of the two, but we can't know what name to use. |
| CompileTimeErrorCode.CONFLICTING_TYPE_VARIABLE_AND_MEMBER_ENUM: |
| status: noFix |
| since: 2.17 |
| notes: |- |
| The fix is to rename one of the two, but we can't know what name to use. |
| CompileTimeErrorCode.CONFLICTING_TYPE_VARIABLE_AND_MEMBER_EXTENSION: |
| status: noFix |
| notes: |- |
| The fix is to rename one of the two, but we can't know what name to use. |
| CompileTimeErrorCode.CONFLICTING_TYPE_VARIABLE_AND_MEMBER_EXTENSION_TYPE: |
| status: noFix |
| notes: |- |
| The fix is to rename one of the two, but we can't know what name to use. |
| CompileTimeErrorCode.CONFLICTING_TYPE_VARIABLE_AND_MEMBER_MIXIN: |
| status: noFix |
| notes: |- |
| The fix is to rename one of the two, but we can't know what name to use. |
| CompileTimeErrorCode.CONFLICTING_TYPE_VARIABLE_AND_MIXIN: |
| status: noFix |
| notes: |- |
| The fix is to rename one of the two, but we can't know what name to use. |
| CompileTimeErrorCode.CONST_CONSTRUCTOR_CONSTANT_FROM_DEFERRED_LIBRARY: |
| status: needsFix |
| notes: |- |
| Remove the `deferred` keyword from the import. |
| CompileTimeErrorCode.CONST_CONSTRUCTOR_FIELD_TYPE_MISMATCH: |
| status: noFix |
| CompileTimeErrorCode.CONST_CONSTRUCTOR_PARAM_TYPE_MISMATCH: |
| status: noFix |
| CompileTimeErrorCode.CONST_CONSTRUCTOR_THROWS_EXCEPTION: |
| status: noFix |
| CompileTimeErrorCode.CONST_CONSTRUCTOR_WITH_FIELD_INITIALIZED_BY_NON_CONST: |
| status: noFix |
| CompileTimeErrorCode.CONST_CONSTRUCTOR_WITH_MIXIN_WITH_FIELD: |
| status: noFix |
| CompileTimeErrorCode.CONST_CONSTRUCTOR_WITH_MIXIN_WITH_FIELDS: |
| status: noFix |
| CompileTimeErrorCode.CONST_CONSTRUCTOR_WITH_NON_CONST_SUPER: |
| status: noFix |
| CompileTimeErrorCode.CONST_CONSTRUCTOR_WITH_NON_FINAL_FIELD: |
| status: noFix |
| CompileTimeErrorCode.CONST_DEFERRED_CLASS: |
| status: needsFix |
| notes: |- |
| Remove the `deferred` keyword from the import. |
| CompileTimeErrorCode.CONST_EVAL_ASSERTION_FAILURE: |
| status: needsEvaluation |
| CompileTimeErrorCode.CONST_EVAL_ASSERTION_FAILURE_WITH_MESSAGE: |
| status: needsEvaluation |
| CompileTimeErrorCode.CONST_EVAL_EXTENSION_METHOD: |
| status: needsEvaluation |
| CompileTimeErrorCode.CONST_EVAL_EXTENSION_TYPE_METHOD: |
| status: needsEvaluation |
| CompileTimeErrorCode.CONST_EVAL_FOR_ELEMENT: |
| status: needsEvaluation |
| CompileTimeErrorCode.CONST_EVAL_METHOD_INVOCATION: |
| status: needsEvaluation |
| CompileTimeErrorCode.CONST_EVAL_PROPERTY_ACCESS: |
| status: needsEvaluation |
| CompileTimeErrorCode.CONST_EVAL_THROWS_EXCEPTION: |
| status: noFix |
| CompileTimeErrorCode.CONST_EVAL_THROWS_IDBZE: |
| status: noFix |
| CompileTimeErrorCode.CONST_EVAL_TYPE_BOOL: |
| status: noFix |
| CompileTimeErrorCode.CONST_EVAL_TYPE_BOOL_INT: |
| status: noFix |
| CompileTimeErrorCode.CONST_EVAL_TYPE_BOOL_NUM_STRING: |
| status: noFix |
| CompileTimeErrorCode.CONST_EVAL_TYPE_INT: |
| status: noFix |
| CompileTimeErrorCode.CONST_EVAL_TYPE_NUM: |
| status: noFix |
| CompileTimeErrorCode.CONST_EVAL_TYPE_NUM_STRING: |
| status: noFix |
| CompileTimeErrorCode.CONST_EVAL_TYPE_STRING: |
| status: noFix |
| CompileTimeErrorCode.CONST_EVAL_TYPE_TYPE: |
| status: noFix |
| CompileTimeErrorCode.CONST_FIELD_INITIALIZER_NOT_ASSIGNABLE: |
| status: noFix |
| CompileTimeErrorCode.CONST_INITIALIZED_WITH_NON_CONSTANT_VALUE: |
| status: hasFix |
| ? CompileTimeErrorCode.CONST_INITIALIZED_WITH_NON_CONSTANT_VALUE_FROM_DEFERRED_LIBRARY |
| : status: needsFix |
| notes: |- |
| Remove the `deferred` keyword from the import. |
| CompileTimeErrorCode.CONST_INSTANCE_FIELD: |
| status: hasFix |
| CompileTimeErrorCode.CONST_MAP_KEY_NOT_PRIMITIVE_EQUALITY: |
| status: noFix |
| CompileTimeErrorCode.CONST_NOT_INITIALIZED: |
| status: noFix |
| CompileTimeErrorCode.CONST_SET_ELEMENT_NOT_PRIMITIVE_EQUALITY: |
| status: noFix |
| CompileTimeErrorCode.CONST_SPREAD_EXPECTED_LIST_OR_SET: |
| status: noFix |
| CompileTimeErrorCode.CONST_SPREAD_EXPECTED_MAP: |
| status: noFix |
| CompileTimeErrorCode.CONST_TYPE_PARAMETER: |
| status: needsEvaluation |
| CompileTimeErrorCode.CONST_WITH_NON_CONST: |
| status: hasFix |
| CompileTimeErrorCode.CONST_WITH_NON_CONSTANT_ARGUMENT: |
| status: noFix |
| CompileTimeErrorCode.CONST_WITH_NON_TYPE: |
| status: hasFix |
| CompileTimeErrorCode.CONST_WITH_TYPE_PARAMETERS: |
| status: noFix |
| CompileTimeErrorCode.CONST_WITH_TYPE_PARAMETERS_CONSTRUCTOR_TEAROFF: |
| status: noFix |
| since: 2.15 |
| CompileTimeErrorCode.CONST_WITH_TYPE_PARAMETERS_FUNCTION_TEAROFF: |
| status: noFix |
| since: 2.15 |
| CompileTimeErrorCode.CONST_WITH_UNDEFINED_CONSTRUCTOR: |
| status: noFix |
| CompileTimeErrorCode.CONST_WITH_UNDEFINED_CONSTRUCTOR_DEFAULT: |
| status: noFix |
| CompileTimeErrorCode.CONSTANT_PATTERN_WITH_NON_CONSTANT_EXPRESSION: |
| status: hasFix |
| notes: |- |
| Has fix for expression that can be made constant. More cases to be |
| implemented as per the tests. |
| CompileTimeErrorCode.CONTINUE_LABEL_INVALID: |
| status: noFix |
| CompileTimeErrorCode.COULD_NOT_INFER: |
| status: noFix |
| CompileTimeErrorCode.DEFAULT_VALUE_IN_REDIRECTING_FACTORY_CONSTRUCTOR: |
| status: needsFix |
| notes: |- |
| Remove the default value. |
| CompileTimeErrorCode.DEFAULT_VALUE_ON_REQUIRED_PARAMETER: |
| status: hasFix |
| CompileTimeErrorCode.DEFERRED_IMPORT_OF_EXTENSION: |
| status: needsFix |
| notes: |- |
| Remove the `deferred` keyword from the import. |
| CompileTimeErrorCode.DEFINITELY_UNASSIGNED_LATE_LOCAL_VARIABLE: |
| status: noFix |
| CompileTimeErrorCode.DISALLOWED_TYPE_INSTANTIATION_EXPRESSION: |
| status: needsFix |
| since: 2.15 |
| CompileTimeErrorCode.DUPLICATE_CONSTRUCTOR_DEFAULT: |
| status: noFix |
| notes: |- |
| Theoretically we could remove all but one of the constructors, but we have |
| no way of knowing which should not be removed. |
| CompileTimeErrorCode.DUPLICATE_CONSTRUCTOR_NAME: |
| status: noFix |
| notes: |- |
| Theoretically we could remove all but one of the constructors, but we have |
| no way of knowing which should not be removed. |
| CompileTimeErrorCode.DUPLICATE_DEFINITION: |
| status: noFix |
| notes: |- |
| Theoretically we could remove all but one of the constructors, but we have |
| no way of knowing which should not be removed. |
| CompileTimeErrorCode.DUPLICATE_FIELD_NAME: |
| status: noFix |
| notes: |- |
| Theoretically we could remove all but one of the constructors, but we have |
| no way of knowing which should not be removed. |
| CompileTimeErrorCode.DUPLICATE_FIELD_FORMAL_PARAMETER: |
| status: noFix |
| notes: |- |
| Theoretically we could remove all but one of the constructors, but we have |
| no way of knowing which should not be removed. |
| CompileTimeErrorCode.DUPLICATE_NAMED_ARGUMENT: |
| status: needsFix |
| notes: |- |
| Look for other named parameters with similar name and suggest renaming the |
| argument. If there are none that are similar enough, then we could just |
| suggest all of the names that aren't already being used. |
| CompileTimeErrorCode.DUPLICATE_PART: |
| status: needsFix |
| notes: |- |
| Remove the duplicated import. |
| CompileTimeErrorCode.DUPLICATE_PATTERN_ASSIGNMENT_VARIABLE: |
| status: needsFix |
| notes: |- |
| We can suggest names from the context, as in did you mean this? |
| CompileTimeErrorCode.DUPLICATE_PATTERN_FIELD: |
| status: needsFix |
| notes: |- |
| Look for other named parameters with similar name and suggest renaming the |
| argument. If there are none that are similar enough, then we could just |
| suggest all of the names that aren't already being used. |
| CompileTimeErrorCode.DUPLICATE_REST_ELEMENT_IN_PATTERN: |
| status: noFix |
| notes: |- |
| We do not know which one of the rest elements is to be removed. |
| CompileTimeErrorCode.DUPLICATE_VARIABLE_PATTERN: |
| status: noFix |
| notes: |- |
| We cannot figure out the intent of the user to suggest the right fix. |
| CompileTimeErrorCode.EMPTY_MAP_PATTERN: |
| status: hasFix |
| CompileTimeErrorCode.ENUM_CONSTANT_INVOKES_FACTORY_CONSTRUCTOR: |
| status: noFix |
| since: 3.3 |
| CompileTimeErrorCode.ENUM_CONSTANT_SAME_NAME_AS_ENCLOSING: |
| status: noFix |
| notes: |- |
| The fix is to rename one of the two, but we can't know what name to use. |
| CompileTimeErrorCode.ENUM_INSTANTIATED_TO_BOUNDS_IS_NOT_WELL_BOUNDED: |
| status: noFix |
| since: 2.17 |
| CompileTimeErrorCode.ENUM_MIXIN_WITH_INSTANCE_VARIABLE: |
| status: noFix |
| since: 2.17 |
| notes: |- |
| We could potentially offer a fix that would remove the mixin, but I think it |
| would be more likely that the user needed to restructure the mixin so that |
| part of it could be included here. |
| CompileTimeErrorCode.ENUM_WITH_ABSTRACT_MEMBER: |
| status: hasFix |
| since: 2.17 |
| CompileTimeErrorCode.ENUM_WITH_NAME_VALUES: |
| status: noFix |
| since: 2.17 |
| notes: |- |
| Requires a rename. |
| CompileTimeErrorCode.ENUM_WITHOUT_CONSTANTS: |
| status: noFix |
| CompileTimeErrorCode.EQUAL_ELEMENTS_IN_CONST_SET: |
| status: needsFix |
| notes: |- |
| Remove the duplicates. |
| CompileTimeErrorCode.EQUAL_KEYS_IN_CONST_MAP: |
| status: needsFix |
| notes: |- |
| Remove the duplicates. |
| CompileTimeErrorCode.EQUAL_KEYS_IN_MAP_PATTERN: |
| status: needsFix |
| notes: |- |
| Remove the duplicates. |
| CompileTimeErrorCode.EXPECTED_ONE_LIST_PATTERN_TYPE_ARGUMENTS: |
| status: noFix |
| CompileTimeErrorCode.EXPECTED_ONE_LIST_TYPE_ARGUMENTS: |
| status: noFix |
| CompileTimeErrorCode.EXPECTED_ONE_SET_TYPE_ARGUMENTS: |
| status: noFix |
| CompileTimeErrorCode.EXPECTED_TWO_MAP_TYPE_ARGUMENTS: |
| status: noFix |
| CompileTimeErrorCode.EXPECTED_TWO_MAP_PATTERN_TYPE_ARGUMENTS: |
| status: noFix |
| notes: |- |
| We do not know the user's intent here and so cannot figure out what to |
| add or delete. |
| CompileTimeErrorCode.EXPORT_INTERNAL_LIBRARY: |
| status: needsFix |
| notes: |- |
| Remove the export. |
| CompileTimeErrorCode.EXPORT_OF_NON_LIBRARY: |
| status: needsFix |
| notes: |- |
| Find the library containing the part being export, update the export to the |
| library, and add a show combinator (if there isn't one already) that limits |
| the export to the names defined in the part. |
| CompileTimeErrorCode.EXPRESSION_IN_MAP: |
| status: needsFix |
| notes: |- |
| Based on the type, add the separator either before or after the expression. |
| CompileTimeErrorCode.EXTENDS_DEFERRED_CLASS: |
| status: needsFix |
| notes: |- |
| Remove the `deferred` keyword from the import. |
| CompileTimeErrorCode.EXTENDS_DISALLOWED_CLASS: |
| status: hasFix |
| CompileTimeErrorCode.EXTENDS_NON_CLASS: |
| status: hasFix |
| CompileTimeErrorCode.EXTENDS_TYPE_ALIAS_EXPANDS_TO_TYPE_PARAMETER: |
| status: hasFix |
| CompileTimeErrorCode.EXTENSION_AS_EXPRESSION: |
| status: noFix |
| CompileTimeErrorCode.EXTENSION_CONFLICTING_STATIC_AND_INSTANCE: |
| status: noFix |
| CompileTimeErrorCode.EXTENSION_DECLARES_MEMBER_OF_OBJECT: |
| status: hasFix |
| CompileTimeErrorCode.EXTENSION_OVERRIDE_ACCESS_TO_STATIC_MEMBER: |
| status: hasFix |
| CompileTimeErrorCode.EXTENSION_OVERRIDE_ARGUMENT_NOT_ASSIGNABLE: |
| status: noFix |
| CompileTimeErrorCode.EXTENSION_OVERRIDE_WITH_CASCADE: |
| status: hasFix |
| CompileTimeErrorCode.EXTENSION_OVERRIDE_WITHOUT_ACCESS: |
| status: noFix |
| CompileTimeErrorCode.EXTENSION_TYPE_CONSTRUCTOR_WITH_SUPER_FORMAL_PARAMETER: |
| status: needsFix |
| notes: |- |
| Remove it. |
| CompileTimeErrorCode.EXTENSION_TYPE_CONSTRUCTOR_WITH_SUPER_INVOCATION: |
| status: needsFix |
| notes: |- |
| Remove it. |
| CompileTimeErrorCode.EXTENSION_TYPE_DECLARES_INSTANCE_FIELD: |
| status: noFix |
| CompileTimeErrorCode.EXTENSION_TYPE_DECLARES_MEMBER_OF_OBJECT: |
| status: hasFix |
| CompileTimeErrorCode.EXTENSION_TYPE_IMPLEMENTS_DISALLOWED_TYPE: |
| status: noFix |
| CompileTimeErrorCode.EXTENSION_TYPE_IMPLEMENTS_ITSELF: |
| status: noFix |
| CompileTimeErrorCode.EXTENSION_TYPE_IMPLEMENTS_NOT_SUPERTYPE: |
| status: noFix |
| CompileTimeErrorCode.EXTENSION_TYPE_IMPLEMENTS_REPRESENTATION_NOT_SUPERTYPE: |
| status: noFix |
| CompileTimeErrorCode.EXTENSION_TYPE_INHERITED_MEMBER_CONFLICT: |
| status: noFix |
| CompileTimeErrorCode.EXTENSION_TYPE_REPRESENTATION_DEPENDS_ON_ITSELF: |
| status: noFix |
| CompileTimeErrorCode.EXTENSION_TYPE_REPRESENTATION_TYPE_BOTTOM: |
| status: noFix |
| CompileTimeErrorCode.EXTENSION_TYPE_WITH_ABSTRACT_MEMBER: |
| status: hasFix |
| CompileTimeErrorCode.EXTERNAL_FIELD_CONSTRUCTOR_INITIALIZER: |
| status: needsFix |
| notes: |- |
| Remove the `external` keyword. Remove the initializer. |
| CompileTimeErrorCode.EXTERNAL_FIELD_INITIALIZER: |
| status: needsFix |
| notes: |- |
| Remove the `external` keyword. Remove the initializer. |
| CompileTimeErrorCode.EXTERNAL_VARIABLE_INITIALIZER: |
| status: needsFix |
| notes: |- |
| Remove the `external` keyword. Remove the initializer. |
| CompileTimeErrorCode.EXTRA_POSITIONAL_ARGUMENTS: |
| status: hasFix |
| CompileTimeErrorCode.EXTRA_POSITIONAL_ARGUMENTS_COULD_BE_NAMED: |
| status: hasFix |
| CompileTimeErrorCode.FIELD_INITIALIZED_BY_MULTIPLE_INITIALIZERS: |
| status: needsFix |
| notes: |- |
| Remove all but one of the initializers. |
| Replace the field name with the name of a different field (from the |
| enclosing class). |
| CompileTimeErrorCode.FIELD_INITIALIZED_IN_INITIALIZER_AND_DECLARATION: |
| status: needsFix |
| notes: |- |
| Remove all but one of the initializers. |
| CompileTimeErrorCode.FIELD_INITIALIZED_IN_PARAMETER_AND_INITIALIZER: |
| status: needsFix |
| notes: |- |
| Remove all but one of the initializers. |
| CompileTimeErrorCode.FIELD_INITIALIZER_FACTORY_CONSTRUCTOR: |
| status: needsFix |
| notes: |- |
| Replace the field formal parameter with a normal parameter. |
| CompileTimeErrorCode.FIELD_INITIALIZER_NOT_ASSIGNABLE: |
| status: noFix |
| CompileTimeErrorCode.FIELD_INITIALIZER_OUTSIDE_CONSTRUCTOR: |
| status: needsFix |
| notes: |- |
| Replace the field formal parameter with a normal parameter and add an |
| assignment to the field in the method. |
| CompileTimeErrorCode.FIELD_INITIALIZER_REDIRECTING_CONSTRUCTOR: |
| status: needsFix |
| notes: |- |
| Replace the field formal parameter with a normal parameter. |
| CompileTimeErrorCode.FIELD_INITIALIZING_FORMAL_NOT_ASSIGNABLE: |
| status: noFix |
| CompileTimeErrorCode.FINAL_CLASS_EXTENDED_OUTSIDE_OF_LIBRARY: |
| status: hasFix |
| CompileTimeErrorCode.FINAL_CLASS_IMPLEMENTED_OUTSIDE_OF_LIBRARY: |
| status: hasFix |
| CompileTimeErrorCode.FINAL_CLASS_USED_AS_MIXIN_CONSTRAINT_OUTSIDE_OF_LIBRARY: |
| status: noFix |
| CompileTimeErrorCode.FINAL_INITIALIZED_IN_DECLARATION_AND_CONSTRUCTOR: |
| status: needsFix |
| notes: |- |
| Remove all but one of the initializers. |
| CompileTimeErrorCode.FINAL_NOT_INITIALIZED: |
| status: hasFix |
| CompileTimeErrorCode.FINAL_NOT_INITIALIZED_CONSTRUCTOR_1: |
| status: hasFix |
| CompileTimeErrorCode.FINAL_NOT_INITIALIZED_CONSTRUCTOR_2: |
| status: hasFix |
| CompileTimeErrorCode.FINAL_NOT_INITIALIZED_CONSTRUCTOR_3_PLUS: |
| status: hasFix |
| CompileTimeErrorCode.FOR_IN_OF_INVALID_ELEMENT_TYPE: |
| status: noFix |
| CompileTimeErrorCode.FOR_IN_OF_INVALID_TYPE: |
| status: noFix |
| CompileTimeErrorCode.FOR_IN_WITH_CONST_VARIABLE: |
| status: noFix |
| CompileTimeErrorCode.GENERIC_FUNCTION_TYPE_CANNOT_BE_BOUND: |
| status: noFix |
| CompileTimeErrorCode.GENERIC_FUNCTION_TYPE_CANNOT_BE_TYPE_ARGUMENT: |
| status: noFix |
| CompileTimeErrorCode.GENERIC_METHOD_TYPE_INSTANTIATION_ON_DYNAMIC: |
| status: needsFix |
| since: 2.15 |
| CompileTimeErrorCode.GETTER_NOT_ASSIGNABLE_SETTER_TYPES: |
| status: noFix |
| CompileTimeErrorCode.GETTER_NOT_SUBTYPE_SETTER_TYPES: |
| status: noFix |
| CompileTimeErrorCode.IF_ELEMENT_CONDITION_FROM_DEFERRED_LIBRARY: |
| status: needsFix |
| notes: |- |
| Remove the `deferred` keyword from the import. |
| CompileTimeErrorCode.ILLEGAL_ASYNC_GENERATOR_RETURN_TYPE: |
| status: hasFix |
| CompileTimeErrorCode.ILLEGAL_ASYNC_RETURN_TYPE: |
| status: hasFix |
| CompileTimeErrorCode.ILLEGAL_CONCRETE_ENUM_MEMBER_DECLARATION: |
| status: noFix |
| since: 2.17 |
| notes: |- |
| We could potentially offer to remove the member, but the user probably needs |
| to think about what they were trying to do and it seems more likely that the |
| right fix is to rename the member. |
| CompileTimeErrorCode.ILLEGAL_CONCRETE_ENUM_MEMBER_INHERITANCE: |
| status: noFix |
| since: 2.17 |
| notes: |- |
| We could potentially offer to remove the member, but the user probably needs |
| to think about what they were trying to do and it seems more likely that the |
| right fix is to rename the member. |
| CompileTimeErrorCode.ILLEGAL_ENUM_VALUES_DECLARATION: |
| status: noFix |
| since: 2.17 |
| notes: |- |
| While we could have a fix to remove the declaration, it seems more likely |
| that the user would want to rename it. |
| CompileTimeErrorCode.ILLEGAL_ENUM_VALUES_INHERITANCE: |
| status: noFix |
| since: 2.17 |
| CompileTimeErrorCode.ILLEGAL_LANGUAGE_VERSION_OVERRIDE: |
| status: noFix |
| since: 2.17 |
| notes: |- |
| We could potentially offer to remove the override, or to update it to the |
| lowest legal value, but it isn't clear that either of these is the right |
| fix without knowing why the language override was added. |
| CompileTimeErrorCode.ILLEGAL_SYNC_GENERATOR_RETURN_TYPE: |
| status: hasFix |
| CompileTimeErrorCode.IMPLEMENTS_DEFERRED_CLASS: |
| status: needsFix |
| notes: |- |
| Remove the `deferred` keyword from the import. |
| CompileTimeErrorCode.IMPLEMENTS_DISALLOWED_CLASS: |
| status: hasFix |
| CompileTimeErrorCode.IMPLEMENTS_NON_CLASS: |
| status: hasFix |
| CompileTimeErrorCode.IMPLEMENTS_REPEATED: |
| status: hasFix |
| CompileTimeErrorCode.IMPLEMENTS_SUPER_CLASS: |
| status: hasFix |
| CompileTimeErrorCode.IMPLEMENTS_TYPE_ALIAS_EXPANDS_TO_TYPE_PARAMETER: |
| status: hasFix |
| CompileTimeErrorCode.IMPLICIT_THIS_REFERENCE_IN_INITIALIZER: |
| status: noFix |
| CompileTimeErrorCode.IMPLICIT_SUPER_INITIALIZER_MISSING_ARGUMENTS: |
| status: hasFix |
| CompileTimeErrorCode.IMPORT_INTERNAL_LIBRARY: |
| status: hasFix |
| CompileTimeErrorCode.IMPORT_OF_NON_LIBRARY: |
| status: hasFix |
| CompileTimeErrorCode.INCONSISTENT_CASE_EXPRESSION_TYPES: |
| status: noFix |
| CompileTimeErrorCode.INCONSISTENT_INHERITANCE: |
| status: needsFix |
| notes: |- |
| Add a stub of the method that needs to be implemented. |
| CompileTimeErrorCode.INCONSISTENT_INHERITANCE_GETTER_AND_METHOD: |
| status: noFix |
| CompileTimeErrorCode.INCONSISTENT_LANGUAGE_VERSION_OVERRIDE: |
| status: needsFix |
| notes: |- |
| Replace (or add) the language override in the parts to match the library. |
| CompileTimeErrorCode.INCONSISTENT_PATTERN_VARIABLE_LOGICAL_OR: |
| status: noFix |
| notes: |- |
| We cannot figure out the the user's intent here, and so cannot generate a |
| fix that would be right. |
| CompileTimeErrorCode.INITIALIZER_FOR_NON_EXISTENT_FIELD: |
| status: needsFix |
| notes: |- |
| Suggest a different field whose name is similar. |
| CompileTimeErrorCode.INITIALIZER_FOR_STATIC_FIELD: |
| status: needsFix |
| notes: |- |
| Suggest a different field whose name is similar. |
| CompileTimeErrorCode.INITIALIZING_FORMAL_FOR_NON_EXISTENT_FIELD: |
| status: hasFix |
| CompileTimeErrorCode.INSTANCE_ACCESS_TO_STATIC_MEMBER: |
| status: hasFix |
| CompileTimeErrorCode.INSTANCE_ACCESS_TO_STATIC_MEMBER_OF_UNNAMED_EXTENSION: |
| status: noFix |
| notes: |- |
| Theoretically, we could give the extension a name and then use the name to |
| access the static member. |
| CompileTimeErrorCode.INSTANCE_MEMBER_ACCESS_FROM_FACTORY: |
| status: noFix |
| CompileTimeErrorCode.INSTANCE_MEMBER_ACCESS_FROM_STATIC: |
| status: noFix |
| CompileTimeErrorCode.INSTANTIATE_ABSTRACT_CLASS: |
| status: noFix |
| notes: |- |
| Theoretically we could remove the `abstract` modifier. |
| CompileTimeErrorCode.INSTANTIATE_ENUM: |
| status: noFix |
| CompileTimeErrorCode.INSTANTIATE_TYPE_ALIAS_EXPANDS_TO_TYPE_PARAMETER: |
| status: noFix |
| CompileTimeErrorCode.INTEGER_LITERAL_IMPRECISE_AS_DOUBLE: |
| status: hasFix |
| CompileTimeErrorCode.INTEGER_LITERAL_OUT_OF_RANGE: |
| status: needsFix |
| notes: |- |
| Replace the literal with a constructor for `BigInt`. |
| CompileTimeErrorCode.INTERFACE_CLASS_EXTENDED_OUTSIDE_OF_LIBRARY: |
| status: noFix |
| notes: |- |
| Theoretically we could remove the `interface` modifier from the superclass. |
| CompileTimeErrorCode.INVALID_ANNOTATION: |
| status: hasFix |
| CompileTimeErrorCode.INVALID_ANNOTATION_CONSTANT_VALUE_FROM_DEFERRED_LIBRARY: |
| status: needsFix |
| notes: |- |
| Remove the `deferred` keyword from the import. |
| CompileTimeErrorCode.INVALID_ANNOTATION_FROM_DEFERRED_LIBRARY: |
| status: needsFix |
| notes: |- |
| Remove the `deferred` keyword from the import. |
| CompileTimeErrorCode.INVALID_ASSIGNMENT: |
| status: hasFix |
| CompileTimeErrorCode.INVALID_CAST_FUNCTION: |
| status: noFix |
| notes: |- |
| Removed in Dart 3.0 |
| CompileTimeErrorCode.INVALID_CAST_FUNCTION_EXPR: |
| status: noFix |
| notes: |- |
| Removed in Dart 3.0 |
| CompileTimeErrorCode.INVALID_CAST_LITERAL: |
| status: noFix |
| notes: |- |
| Removed in Dart 3.0 |
| CompileTimeErrorCode.INVALID_CAST_LITERAL_LIST: |
| status: noFix |
| notes: |- |
| Removed in Dart 3.0 |
| CompileTimeErrorCode.INVALID_CAST_LITERAL_MAP: |
| status: noFix |
| notes: |- |
| Removed in Dart 3.0 |
| CompileTimeErrorCode.INVALID_CAST_LITERAL_SET: |
| status: noFix |
| notes: |- |
| Removed in Dart 3.0 |
| CompileTimeErrorCode.INVALID_CAST_METHOD: |
| status: noFix |
| notes: |- |
| Removed in Dart 3.0 |
| CompileTimeErrorCode.INVALID_CAST_NEW_EXPR: |
| status: noFix |
| notes: |- |
| Removed in Dart 3.0 |
| CompileTimeErrorCode.INVALID_CONSTANT: |
| status: hasFix |
| notes: |- |
| The diagnostic is too general. It needs to be replaced with multiple more |
| specific diagnostics. |
| CompileTimeErrorCode.INVALID_EXTENSION_ARGUMENT_COUNT: |
| status: needsFix |
| notes: |- |
| Remove all but one of the arguments. Not clear how much value that adds. |
| CompileTimeErrorCode.INVALID_FACTORY_NAME_NOT_A_CLASS: |
| status: needsFix |
| notes: |- |
| Replace the name of the factory with the name of the class (or prefix it |
| with the name of the class if it's lowercase?). |
| CompileTimeErrorCode.INVALID_FIELD_NAME_FROM_OBJECT: |
| status: noFix |
| CompileTimeErrorCode.INVALID_FIELD_NAME_PRIVATE: |
| status: needsFix |
| notes: |- |
| Make the name public. |
| CompileTimeErrorCode.INVALID_FIELD_NAME_POSITIONAL: |
| status: noFix |
| CompileTimeErrorCode.INVALID_IMPLEMENTATION_OVERRIDE: |
| status: needsFix |
| notes: |- |
| Replace the signature with the valid signature. |
| CompileTimeErrorCode.INVALID_IMPLEMENTATION_OVERRIDE_SETTER: |
| status: needsFix |
| notes: |- |
| Replace the signature with the valid signature. |
| CompileTimeErrorCode.INVALID_INLINE_FUNCTION_TYPE: |
| status: needsFix |
| notes: |- |
| Replace with the equivalent generic function type. |
| CompileTimeErrorCode.INVALID_MACRO_APPLICATION_TARGET: |
| status: noFix |
| CompileTimeErrorCode.INVALID_MODIFIER_ON_CONSTRUCTOR: |
| status: hasFix |
| CompileTimeErrorCode.INVALID_MODIFIER_ON_SETTER: |
| status: hasFix |
| CompileTimeErrorCode.INVALID_OVERRIDE: |
| status: hasFix |
| CompileTimeErrorCode.INVALID_OVERRIDE_SETTER: |
| status: hasFix |
| CompileTimeErrorCode.INVALID_REFERENCE_TO_GENERATIVE_ENUM_CONSTRUCTOR: |
| status: noFix |
| since: 2.17 |
| CompileTimeErrorCode.INVALID_REFERENCE_TO_THIS: |
| status: noFix |
| CompileTimeErrorCode.INVALID_SUPER_FORMAL_PARAMETER_LOCATION: |
| status: needsFix |
| since: 2.17 |
| CompileTimeErrorCode.INVALID_TYPE_ARGUMENT_IN_CONST_LIST: |
| status: noFix |
| CompileTimeErrorCode.INVALID_TYPE_ARGUMENT_IN_CONST_MAP: |
| status: noFix |
| CompileTimeErrorCode.INVALID_TYPE_ARGUMENT_IN_CONST_SET: |
| status: noFix |
| CompileTimeErrorCode.INVALID_URI: |
| status: noFix |
| CompileTimeErrorCode.INVALID_USE_OF_COVARIANT: |
| status: hasFix |
| CompileTimeErrorCode.INVALID_USE_OF_NULL_VALUE: |
| status: noFix |
| CompileTimeErrorCode.INVOCATION_OF_EXTENSION_WITHOUT_CALL: |
| status: needsFix |
| notes: |- |
| Add a call method to the extension. |
| CompileTimeErrorCode.INVOCATION_OF_NON_FUNCTION: |
| status: needsFix |
| notes: |- |
| Suggest similarly named functions. |
| CompileTimeErrorCode.INVOCATION_OF_NON_FUNCTION_EXPRESSION: |
| status: hasFix |
| CompileTimeErrorCode.LABEL_IN_OUTER_SCOPE: |
| status: noFix |
| CompileTimeErrorCode.LABEL_UNDEFINED: |
| status: needsFix |
| notes: |- |
| Suggest similarly named label. |
| CompileTimeErrorCode.LATE_FINAL_FIELD_WITH_CONST_CONSTRUCTOR: |
| status: needsFix |
| notes: |- |
| Remove `late`. |
| Remove `const`. |
| CompileTimeErrorCode.LATE_FINAL_LOCAL_ALREADY_ASSIGNED: |
| status: hasFix |
| CompileTimeErrorCode.LIST_ELEMENT_TYPE_NOT_ASSIGNABLE: |
| status: noFix |
| CompileTimeErrorCode.MACRO_DECLARATIONS_PHASE_INTROSPECTION_CYCLE: |
| status: needsEvaluation |
| CompileTimeErrorCode.MACRO_DEFINITION_APPLICATION_SAME_LIBRARY_CYCLE: |
| status: noFix |
| CompileTimeErrorCode.MACRO_APPLICATION_ARGUMENT_ERROR: |
| status: noFix |
| CompileTimeErrorCode.MACRO_ERROR: |
| status: noFix |
| CompileTimeErrorCode.MACRO_INTERNAL_EXCEPTION: |
| status: noFix |
| CompileTimeErrorCode.MACRO_NOT_ALLOWED_DECLARATION: |
| status: noFix |
| CompileTimeErrorCode.MAIN_FIRST_POSITIONAL_PARAMETER_TYPE: |
| status: needsFix |
| notes: |- |
| Replace the type of the first parameter. |
| CompileTimeErrorCode.MAIN_HAS_REQUIRED_NAMED_PARAMETERS: |
| status: needsFix |
| notes: |- |
| Remove the named parameters. |
| CompileTimeErrorCode.MAIN_HAS_TOO_MANY_REQUIRED_POSITIONAL_PARAMETERS: |
| status: needsFix |
| notes: |- |
| Remove the invalid parameters. |
| CompileTimeErrorCode.MAIN_IS_NOT_FUNCTION: |
| status: noFix |
| CompileTimeErrorCode.MAP_ENTRY_NOT_IN_MAP: |
| status: noFix |
| CompileTimeErrorCode.MAP_KEY_TYPE_NOT_ASSIGNABLE: |
| status: noFix |
| CompileTimeErrorCode.MAP_VALUE_TYPE_NOT_ASSIGNABLE: |
| status: noFix |
| CompileTimeErrorCode.MISSING_CONST_IN_LIST_LITERAL: |
| status: noFix |
| notes: |- |
| Not displayed to users. |
| CompileTimeErrorCode.MISSING_CONST_IN_MAP_LITERAL: |
| status: noFix |
| notes: |- |
| Not displayed to users. |
| CompileTimeErrorCode.MISSING_CONST_IN_SET_LITERAL: |
| status: noFix |
| notes: |- |
| Not displayed to users. |
| CompileTimeErrorCode.MISSING_DART_LIBRARY: |
| status: noFix |
| CompileTimeErrorCode.MISSING_DEFAULT_VALUE_FOR_PARAMETER: |
| status: hasFix |
| CompileTimeErrorCode.MISSING_DEFAULT_VALUE_FOR_PARAMETER_POSITIONAL: |
| status: hasFix |
| CompileTimeErrorCode.MISSING_DEFAULT_VALUE_FOR_PARAMETER_WITH_ANNOTATION: |
| status: hasFix |
| CompileTimeErrorCode.MISSING_NAMED_PATTERN_FIELD_NAME: |
| status: noFix |
| CompileTimeErrorCode.MISSING_REQUIRED_ARGUMENT: |
| status: hasFix |
| CompileTimeErrorCode.MISSING_VARIABLE_PATTERN: |
| status: noFix |
| CompileTimeErrorCode.MIXIN_APPLICATION_CONCRETE_SUPER_INVOKED_MEMBER_TYPE: |
| status: needsFix |
| notes: |- |
| Update the type in the mixin. |
| CompileTimeErrorCode.MIXIN_APPLICATION_NO_CONCRETE_SUPER_INVOKED_MEMBER: |
| status: noFix |
| CompileTimeErrorCode.MIXIN_APPLICATION_NO_CONCRETE_SUPER_INVOKED_SETTER: |
| status: noFix |
| CompileTimeErrorCode.MIXIN_APPLICATION_NOT_IMPLEMENTED_INTERFACE: |
| status: hasFix |
| CompileTimeErrorCode.MIXIN_CLASS_DECLARATION_EXTENDS_NOT_OBJECT: |
| status: hasFix |
| CompileTimeErrorCode.MIXIN_CLASS_DECLARES_CONSTRUCTOR: |
| notes: |- |
| Remove the constructor. |
| CompileTimeErrorCode.MIXIN_DEFERRED_CLASS: |
| status: needsFix |
| notes: |- |
| Remove the `deferred` keyword from the import. |
| CompileTimeErrorCode.MIXIN_INHERITS_FROM_NOT_OBJECT: |
| notes: |- |
| Remove the extends clause. |
| CompileTimeErrorCode.MIXIN_INSTANTIATE: |
| status: noFix |
| CompileTimeErrorCode.MIXIN_OF_DISALLOWED_CLASS: |
| status: hasFix |
| CompileTimeErrorCode.MIXIN_OF_NON_CLASS: |
| status: hasFix |
| CompileTimeErrorCode.MIXIN_OF_TYPE_ALIAS_EXPANDS_TO_TYPE_PARAMETER: |
| status: noFix |
| CompileTimeErrorCode.MIXIN_ON_TYPE_ALIAS_EXPANDS_TO_TYPE_PARAMETER: |
| status: noFix |
| CompileTimeErrorCode.MIXIN_SUBTYPE_OF_BASE_IS_NOT_BASE: |
| status: hasFix |
| CompileTimeErrorCode.MIXIN_SUBTYPE_OF_FINAL_IS_NOT_BASE: |
| status: hasFix |
| CompileTimeErrorCode.MIXIN_SUPER_CLASS_CONSTRAINT_DEFERRED_CLASS: |
| status: needsFix |
| notes: |- |
| Remove the `deferred` keyword from the import. |
| CompileTimeErrorCode.MIXIN_SUPER_CLASS_CONSTRAINT_DISALLOWED_CLASS: |
| status: hasFix |
| CompileTimeErrorCode.MIXIN_SUPER_CLASS_CONSTRAINT_NON_INTERFACE: |
| status: hasFix |
| CompileTimeErrorCode.MIXIN_WITH_NON_CLASS_SUPERCLASS: |
| status: noFix |
| CompileTimeErrorCode.MIXINS_SUPER_CLASS: |
| status: needsFix |
| notes: |- |
| Remove one of the uses of the class. |
| CompileTimeErrorCode.MULTIPLE_REDIRECTING_CONSTRUCTOR_INVOCATIONS: |
| status: needsFix |
| notes: |- |
| Remove all but one of the redirecting constructor invocations. |
| CompileTimeErrorCode.MULTIPLE_SUPER_INITIALIZERS: |
| status: needsFix |
| notes: |- |
| Remove all but one of the redirecting constructor invocations. |
| CompileTimeErrorCode.NEW_WITH_NON_TYPE: |
| status: hasFix |
| CompileTimeErrorCode.NEW_WITH_UNDEFINED_CONSTRUCTOR: |
| status: hasFix |
| CompileTimeErrorCode.NEW_WITH_UNDEFINED_CONSTRUCTOR_DEFAULT: |
| status: hasFix |
| CompileTimeErrorCode.NO_ANNOTATION_CONSTRUCTOR_ARGUMENTS: |
| status: hasFix |
| CompileTimeErrorCode.NO_COMBINED_SUPER_SIGNATURE: |
| status: noFix |
| CompileTimeErrorCode.NO_DEFAULT_SUPER_CONSTRUCTOR_EXPLICIT: |
| status: hasFix |
| CompileTimeErrorCode.NO_DEFAULT_SUPER_CONSTRUCTOR_IMPLICIT: |
| status: hasFix |
| CompileTimeErrorCode.NO_GENERATIVE_CONSTRUCTORS_IN_SUPERCLASS: |
| status: noFix |
| CompileTimeErrorCode.NON_ABSTRACT_CLASS_INHERITS_ABSTRACT_MEMBER_FIVE_PLUS: |
| status: hasFix |
| CompileTimeErrorCode.NON_ABSTRACT_CLASS_INHERITS_ABSTRACT_MEMBER_FOUR: |
| status: hasFix |
| CompileTimeErrorCode.NON_ABSTRACT_CLASS_INHERITS_ABSTRACT_MEMBER_ONE: |
| status: hasFix |
| CompileTimeErrorCode.NON_ABSTRACT_CLASS_INHERITS_ABSTRACT_MEMBER_THREE: |
| status: hasFix |
| CompileTimeErrorCode.NON_ABSTRACT_CLASS_INHERITS_ABSTRACT_MEMBER_TWO: |
| status: hasFix |
| CompileTimeErrorCode.NON_BOOL_CONDITION: |
| status: hasFix |
| CompileTimeErrorCode.NON_BOOL_EXPRESSION: |
| status: noFix |
| CompileTimeErrorCode.NON_BOOL_NEGATION_EXPRESSION: |
| status: noFix |
| CompileTimeErrorCode.NON_BOOL_OPERAND: |
| status: noFix |
| CompileTimeErrorCode.NON_CONST_GENERATIVE_ENUM_CONSTRUCTOR: |
| status: hasFix |
| since: 2.17 |
| CompileTimeErrorCode.NON_CONST_MAP_AS_EXPRESSION_STATEMENT: |
| status: needsFix |
| notes: |- |
| Add `const` keyword. |
| CompileTimeErrorCode.NON_CONSTANT_ANNOTATION_CONSTRUCTOR: |
| status: needsFix |
| notes: |- |
| Add `const` to the constructor (if doing so would be valid). |
| CompileTimeErrorCode.NON_CONSTANT_CASE_EXPRESSION: |
| status: noFix |
| notes: |- |
| I think this is a pre-3.0 only issue, so might not be worth supporting. If |
| it is worth supporting, then we could potentially add `const` to make it a |
| constant expression. |
| CompileTimeErrorCode.NON_CONSTANT_CASE_EXPRESSION_FROM_DEFERRED_LIBRARY: |
| status: needsFix |
| notes: |- |
| Remove the `deferred` keyword from the import. |
| CompileTimeErrorCode.NON_CONSTANT_DEFAULT_VALUE: |
| status: needsFix |
| notes: |- |
| Add `const` if the expression can be a constant expression. |
| CompileTimeErrorCode.NON_CONSTANT_DEFAULT_VALUE_FROM_DEFERRED_LIBRARY: |
| status: needsFix |
| notes: |- |
| Remove the `deferred` keyword from the import. |
| CompileTimeErrorCode.NON_CONSTANT_LIST_ELEMENT: |
| status: noFix |
| CompileTimeErrorCode.NON_CONSTANT_LIST_ELEMENT_FROM_DEFERRED_LIBRARY: |
| status: needsFix |
| notes: |- |
| Remove the `deferred` keyword from the import. |
| CompileTimeErrorCode.NON_CONSTANT_MAP_ELEMENT: |
| status: noFix |
| CompileTimeErrorCode.NON_CONSTANT_MAP_KEY: |
| status: noFix |
| CompileTimeErrorCode.NON_CONSTANT_MAP_KEY_FROM_DEFERRED_LIBRARY: |
| status: needsFix |
| notes: |- |
| Remove the `deferred` keyword from the import. |
| CompileTimeErrorCode.NON_CONSTANT_MAP_PATTERN_KEY: |
| status: hasFix |
| CompileTimeErrorCode.NON_CONSTANT_MAP_VALUE: |
| status: noFix |
| CompileTimeErrorCode.NON_CONSTANT_MAP_VALUE_FROM_DEFERRED_LIBRARY: |
| status: needsFix |
| notes: |- |
| Remove the `deferred` keyword from the import. |
| CompileTimeErrorCode.NON_CONSTANT_RECORD_FIELD: |
| status: noFix |
| CompileTimeErrorCode.NON_CONSTANT_RECORD_FIELD_FROM_DEFERRED_LIBRARY: |
| status: needsFix |
| notes: |- |
| Remove the `deferred` keyword from the import. |
| CompileTimeErrorCode.NON_CONSTANT_RELATIONAL_PATTERN_EXPRESSION: |
| status: hasFix |
| notes: |- |
| Make the pattern expression a constant. |
| CompileTimeErrorCode.NON_CONSTANT_SET_ELEMENT: |
| status: noFix |
| ? CompileTimeErrorCode.NON_COVARIANT_TYPE_PARAMETER_POSITION_IN_REPRESENTATION_TYPE |
| : status: noFix |
| CompileTimeErrorCode.NON_EXHAUSTIVE_SWITCH_EXPRESSION: |
| status: hasFix |
| CompileTimeErrorCode.NON_EXHAUSTIVE_SWITCH_STATEMENT: |
| status: hasFix |
| CompileTimeErrorCode.NON_FINAL_FIELD_IN_ENUM: |
| status: hasFix |
| since: 2.17 |
| CompileTimeErrorCode.NON_GENERATIVE_CONSTRUCTOR: |
| status: needsFix |
| notes: |- |
| Suggest generative constructors that could be invoked. |
| CompileTimeErrorCode.NON_GENERATIVE_IMPLICIT_CONSTRUCTOR: |
| status: needsFix |
| notes: |- |
| Suggest generative constructors that could be invoked. |
| CompileTimeErrorCode.NON_SYNC_FACTORY: |
| status: needsFix |
| notes: |- |
| Remove the modifier on the body. |
| CompileTimeErrorCode.NON_TYPE_AS_TYPE_ARGUMENT: |
| status: hasFix |
| CompileTimeErrorCode.NON_TYPE_IN_CATCH_CLAUSE: |
| status: hasFix |
| CompileTimeErrorCode.NON_VOID_RETURN_FOR_OPERATOR: |
| status: needsFix |
| notes: |- |
| Change the return type to `void`. |
| CompileTimeErrorCode.NON_VOID_RETURN_FOR_SETTER: |
| status: needsFix |
| notes: |- |
| Remove the return type. |
| Change the return type to `void`. |
| CompileTimeErrorCode.NOT_A_TYPE: |
| status: hasFix |
| CompileTimeErrorCode.NOT_ASSIGNED_POTENTIALLY_NON_NULLABLE_LOCAL_VARIABLE: |
| status: noFix |
| CompileTimeErrorCode.NOT_BINARY_OPERATOR: |
| status: noFix |
| CompileTimeErrorCode.NOT_ENOUGH_POSITIONAL_ARGUMENTS_NAME_PLURAL: |
| status: hasFix |
| CompileTimeErrorCode.NOT_ENOUGH_POSITIONAL_ARGUMENTS_NAME_SINGULAR: |
| status: hasFix |
| CompileTimeErrorCode.NOT_ENOUGH_POSITIONAL_ARGUMENTS_PLURAL: |
| status: hasFix |
| CompileTimeErrorCode.NOT_ENOUGH_POSITIONAL_ARGUMENTS_SINGULAR: |
| status: hasFix |
| CompileTimeErrorCode.NOT_INITIALIZED_NON_NULLABLE_INSTANCE_FIELD: |
| status: hasFix |
| CompileTimeErrorCode.NOT_INITIALIZED_NON_NULLABLE_INSTANCE_FIELD_CONSTRUCTOR: |
| status: noFix |
| CompileTimeErrorCode.NOT_INITIALIZED_NON_NULLABLE_VARIABLE: |
| status: noFix |
| CompileTimeErrorCode.NOT_INSTANTIATED_BOUND: |
| status: noFix |
| CompileTimeErrorCode.NOT_ITERABLE_SPREAD: |
| status: noFix |
| CompileTimeErrorCode.NOT_MAP_SPREAD: |
| status: noFix |
| CompileTimeErrorCode.NOT_NULL_AWARE_NULL_SPREAD: |
| status: needsFix |
| notes: |- |
| Convert to a null-aware spread operator. |
| CompileTimeErrorCode.NULLABLE_TYPE_IN_EXTENDS_CLAUSE: |
| status: hasFix |
| CompileTimeErrorCode.NULLABLE_TYPE_IN_IMPLEMENTS_CLAUSE: |
| status: hasFix |
| CompileTimeErrorCode.NULLABLE_TYPE_IN_ON_CLAUSE: |
| status: hasFix |
| CompileTimeErrorCode.NULLABLE_TYPE_IN_WITH_CLAUSE: |
| status: hasFix |
| CompileTimeErrorCode.OBJECT_CANNOT_EXTEND_ANOTHER_CLASS: |
| status: noFix |
| CompileTimeErrorCode.OBSOLETE_COLON_FOR_DEFAULT_VALUE: |
| status: hasFix |
| CompileTimeErrorCode.ON_REPEATED: |
| status: needsFix |
| notes: |- |
| Remove the repeated type. |
| CompileTimeErrorCode.OPTIONAL_PARAMETER_IN_OPERATOR: |
| status: noFix |
| CompileTimeErrorCode.PART_OF_DIFFERENT_LIBRARY: |
| status: noFix |
| CompileTimeErrorCode.PART_OF_NON_PART: |
| status: noFix |
| CompileTimeErrorCode.PART_OF_UNNAMED_LIBRARY: |
| status: needsFix |
| notes: |- |
| Replace the library name with a URI. |
| CompileTimeErrorCode.PATTERN_ASSIGNMENT_NOT_LOCAL_VARIABLE: |
| status: noFix |
| CompileTimeErrorCode.PATTERN_CONSTANT_FROM_DEFERRED_LIBRARY: |
| status: needsFix |
| notes: |- |
| Remove the `deferred` keyword from the import. |
| CompileTimeErrorCode.PATTERN_TYPE_MISMATCH_IN_IRREFUTABLE_CONTEXT: |
| status: noFix |
| CompileTimeErrorCode.PATTERN_VARIABLE_ASSIGNMENT_INSIDE_GUARD: |
| status: noFix |
| notes: |- |
| We do not have enough information to figure out the user's intent with the |
| use of the variable in the pattern. |
| ? CompileTimeErrorCode.PATTERN_VARIABLE_SHARED_CASE_SCOPE_DIFFERENT_FINALITY_OR_TYPE |
| : status: needsFix |
| notes: |- |
| Make all of the types / finalities the same. |
| CompileTimeErrorCode.PATTERN_VARIABLE_SHARED_CASE_SCOPE_HAS_LABEL: |
| status: needsFix |
| notes: |- |
| If the problem is a default, split the case group into two pieces. |
| CompileTimeErrorCode.PATTERN_VARIABLE_SHARED_CASE_SCOPE_NOT_ALL_CASES: |
| status: noFix |
| CompileTimeErrorCode.POSITIONAL_FIELD_IN_OBJECT_PATTERN: |
| status: noFix |
| CompileTimeErrorCode.POSITIONAL_SUPER_FORMAL_PARAMETER_WITH_POSITIONAL_ARGUMENT: |
| status: needsFix |
| since: 2.17 |
| CompileTimeErrorCode.PREFIX_COLLIDES_WITH_TOP_LEVEL_MEMBER: |
| status: noFix |
| CompileTimeErrorCode.PREFIX_IDENTIFIER_NOT_FOLLOWED_BY_DOT: |
| status: noFix |
| CompileTimeErrorCode.PREFIX_SHADOWED_BY_LOCAL_DECLARATION: |
| status: noFix |
| CompileTimeErrorCode.PRIVATE_COLLISION_IN_MIXIN_APPLICATION: |
| status: noFix |
| CompileTimeErrorCode.PRIVATE_OPTIONAL_PARAMETER: |
| status: needsFix |
| notes: |- |
| Remove the underscore |
| CompileTimeErrorCode.PRIVATE_SETTER: |
| status: noFix |
| CompileTimeErrorCode.READ_POTENTIALLY_UNASSIGNED_FINAL: |
| status: noFix |
| CompileTimeErrorCode.RECORD_LITERAL_ONE_POSITIONAL_NO_TRAILING_COMMA: |
| status: hasFix |
| CompileTimeErrorCode.RECURSIVE_CONSTANT_CONSTRUCTOR: |
| status: noFix |
| CompileTimeErrorCode.RECURSIVE_COMPILE_TIME_CONSTANT: |
| status: noFix |
| CompileTimeErrorCode.RECURSIVE_CONSTRUCTOR_REDIRECT: |
| status: noFix |
| CompileTimeErrorCode.RECURSIVE_FACTORY_REDIRECT: |
| status: noFix |
| CompileTimeErrorCode.RECURSIVE_INTERFACE_INHERITANCE: |
| status: noFix |
| CompileTimeErrorCode.RECURSIVE_INTERFACE_INHERITANCE_EXTENDS: |
| status: noFix |
| CompileTimeErrorCode.RECURSIVE_INTERFACE_INHERITANCE_IMPLEMENTS: |
| status: noFix |
| CompileTimeErrorCode.RECURSIVE_INTERFACE_INHERITANCE_ON: |
| status: noFix |
| CompileTimeErrorCode.RECURSIVE_INTERFACE_INHERITANCE_WITH: |
| status: noFix |
| CompileTimeErrorCode.REDIRECT_GENERATIVE_TO_MISSING_CONSTRUCTOR: |
| status: noFix |
| CompileTimeErrorCode.REDIRECT_GENERATIVE_TO_NON_GENERATIVE_CONSTRUCTOR: |
| status: noFix |
| CompileTimeErrorCode.REDIRECT_TO_ABSTRACT_CLASS_CONSTRUCTOR: |
| status: noFix |
| CompileTimeErrorCode.REDIRECT_TO_INVALID_FUNCTION_TYPE: |
| status: noFix |
| CompileTimeErrorCode.REDIRECT_TO_INVALID_RETURN_TYPE: |
| status: noFix |
| CompileTimeErrorCode.REDIRECT_TO_MISSING_CONSTRUCTOR: |
| status: noFix |
| CompileTimeErrorCode.REDIRECT_TO_NON_CLASS: |
| status: noFix |
| CompileTimeErrorCode.REDIRECT_TO_NON_CONST_CONSTRUCTOR: |
| status: noFix |
| CompileTimeErrorCode.REDIRECT_TO_TYPE_ALIAS_EXPANDS_TO_TYPE_PARAMETER: |
| status: noFix |
| CompileTimeErrorCode.REFERENCED_BEFORE_DECLARATION: |
| status: noFix |
| CompileTimeErrorCode.REFUTABLE_PATTERN_IN_IRREFUTABLE_CONTEXT: |
| status: noFix |
| CompileTimeErrorCode.RELATIONAL_PATTERN_OPERAND_TYPE_NOT_ASSIGNABLE: |
| status: noFix |
| ? CompileTimeErrorCode.RELATIONAL_PATTERN_OPERATOR_RETURN_TYPE_NOT_ASSIGNABLE_TO_BOOL |
| : status: noFix |
| CompileTimeErrorCode.REST_ELEMENT_IN_MAP_PATTERN: |
| status: needsFix |
| issue: https://github.com/dart-lang/sdk/issues/51892 |
| CompileTimeErrorCode.RETHROW_OUTSIDE_CATCH: |
| status: noFix |
| CompileTimeErrorCode.RETURN_IN_GENERATIVE_CONSTRUCTOR: |
| status: needsFix |
| notes: |- |
| Remove the return. |
| Convert to a factory constructor. |
| CompileTimeErrorCode.RETURN_IN_GENERATOR: |
| status: needsFix |
| notes: |- |
| Replace with a yield. |
| CompileTimeErrorCode.RETURN_OF_INVALID_TYPE_FROM_CLOSURE: |
| status: noFix |
| CompileTimeErrorCode.RETURN_OF_INVALID_TYPE_FROM_CONSTRUCTOR: |
| status: noFix |
| CompileTimeErrorCode.RETURN_OF_INVALID_TYPE_FROM_FUNCTION: |
| status: hasFix |
| CompileTimeErrorCode.RETURN_OF_INVALID_TYPE_FROM_METHOD: |
| status: hasFix |
| CompileTimeErrorCode.RETURN_WITHOUT_VALUE: |
| status: noFix |
| CompileTimeErrorCode.SEALED_CLASS_SUBTYPE_OUTSIDE_OF_LIBRARY: |
| status: noFix |
| CompileTimeErrorCode.SET_ELEMENT_FROM_DEFERRED_LIBRARY: |
| status: needsFix |
| notes: |- |
| Remove the `deferred` keyword from the import. |
| CompileTimeErrorCode.SET_ELEMENT_TYPE_NOT_ASSIGNABLE: |
| status: noFix |
| CompileTimeErrorCode.SHARED_DEFERRED_PREFIX: |
| status: noFix |
| CompileTimeErrorCode.SPREAD_EXPRESSION_FROM_DEFERRED_LIBRARY: |
| status: needsFix |
| notes: |- |
| Remove the `deferred` keyword from the import. |
| CompileTimeErrorCode.STATIC_ACCESS_TO_INSTANCE_MEMBER: |
| status: noFix |
| CompileTimeErrorCode.SUBTYPE_OF_BASE_IS_NOT_BASE_FINAL_OR_SEALED: |
| status: hasFix |
| CompileTimeErrorCode.SUBTYPE_OF_FINAL_IS_NOT_BASE_FINAL_OR_SEALED: |
| status: hasFix |
| CompileTimeErrorCode.SUPER_FORMAL_PARAMETER_TYPE_IS_NOT_SUBTYPE_OF_ASSOCIATED: |
| status: hasFix |
| since: 2.17 |
| CompileTimeErrorCode.SUPER_FORMAL_PARAMETER_WITHOUT_ASSOCIATED_NAMED: |
| status: hasFix |
| CompileTimeErrorCode.SUPER_FORMAL_PARAMETER_WITHOUT_ASSOCIATED_POSITIONAL: |
| status: needsFix |
| issue: https://github.com/dart-lang/sdk/issues/48359 |
| CompileTimeErrorCode.SUPER_IN_ENUM_CONSTRUCTOR: |
| status: noFix |
| since: 2.17 |
| notes: |- |
| We could potentially offer a fix to remove the super invocation, but the |
| user really needs to think about what constructor they were trying to invoke |
| and why in order to really fix the issue. |
| CompileTimeErrorCode.SUPER_IN_EXTENSION: |
| status: noFix |
| notes: |- |
| We could potentially offer a fix to remove the super invocation, but the |
| user really needs to think about what function they were trying to invoke |
| and why in order to really fix the issue. |
| CompileTimeErrorCode.SUPER_IN_EXTENSION_TYPE: |
| status: noFix |
| notes: |- |
| We could potentially offer a fix to remove the super invocation, but the |
| user really needs to think about what function they were trying to invoke |
| and why in order to really fix the issue. |
| CompileTimeErrorCode.SUPER_IN_INVALID_CONTEXT: |
| status: noFix |
| notes: |- |
| We could potentially offer a fix to remove the super invocation, but the |
| user really needs to think about what member they were trying to invoke |
| and why in order to really fix the issue. |
| CompileTimeErrorCode.SUPER_IN_REDIRECTING_CONSTRUCTOR: |
| status: needsFix |
| notes: |- |
| Remove the super initialize. |
| Remove the redirection. |
| CompileTimeErrorCode.SUPER_INITIALIZER_IN_OBJECT: |
| status: noFix |
| notes: |- |
| Object is only declared in SDK code; those developers do OK without fixes. |
| CompileTimeErrorCode.SUPER_INVOCATION_NOT_LAST: |
| status: hasFix |
| CompileTimeErrorCode.SWITCH_CASE_COMPLETES_NORMALLY: |
| status: hasFix |
| CompileTimeErrorCode.TEAROFF_OF_GENERATIVE_CONSTRUCTOR_OF_ABSTRACT_CLASS: |
| status: noFix |
| since: 2.15 |
| CompileTimeErrorCode.THROW_OF_INVALID_TYPE: |
| status: noFix |
| CompileTimeErrorCode.TOP_LEVEL_CYCLE: |
| status: noFix |
| CompileTimeErrorCode.TYPE_ALIAS_CANNOT_REFERENCE_ITSELF: |
| status: noFix |
| CompileTimeErrorCode.TYPE_ANNOTATION_DEFERRED_CLASS: |
| status: needsFix |
| notes: |- |
| Remove the `deferred` keyword from the import. |
| CompileTimeErrorCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS: |
| status: noFix |
| CompileTimeErrorCode.TYPE_PARAMETER_REFERENCED_BY_STATIC: |
| status: needsFix |
| notes: |- |
| Fixes could include (1) removing the 'static' keyword, (2) changing the type |
| variable to its bound, (3) looking for similarly spelled types. |
| CompileTimeErrorCode.TYPE_PARAMETER_SUPERTYPE_OF_ITS_BOUND: |
| status: noFix |
| CompileTimeErrorCode.TYPE_TEST_WITH_NON_TYPE: |
| status: needsFix |
| notes: |- |
| Fixes could include: (1) changing ` is ` to ` == ` and (2) changing the |
| right operand to the static type of the left. |
| CompileTimeErrorCode.TYPE_TEST_WITH_UNDEFINED_NAME: |
| status: hasFix |
| CompileTimeErrorCode.UNCHECKED_INVOCATION_OF_NULLABLE_VALUE: |
| status: hasFix |
| CompileTimeErrorCode.UNCHECKED_METHOD_INVOCATION_OF_NULLABLE_VALUE: |
| status: hasFix |
| CompileTimeErrorCode.UNCHECKED_OPERATOR_INVOCATION_OF_NULLABLE_VALUE: |
| status: hasFix |
| CompileTimeErrorCode.UNCHECKED_PROPERTY_ACCESS_OF_NULLABLE_VALUE: |
| status: hasFix |
| CompileTimeErrorCode.UNCHECKED_USE_OF_NULLABLE_VALUE_AS_CONDITION: |
| status: hasFix |
| CompileTimeErrorCode.UNCHECKED_USE_OF_NULLABLE_VALUE_AS_ITERATOR: |
| status: hasFix |
| CompileTimeErrorCode.UNCHECKED_USE_OF_NULLABLE_VALUE_IN_SPREAD: |
| status: hasFix |
| CompileTimeErrorCode.UNCHECKED_USE_OF_NULLABLE_VALUE_IN_YIELD_EACH: |
| status: hasFix |
| CompileTimeErrorCode.UNDEFINED_ANNOTATION: |
| status: hasFix |
| CompileTimeErrorCode.UNDEFINED_CLASS: |
| status: hasFix |
| CompileTimeErrorCode.UNDEFINED_CLASS_BOOLEAN: |
| status: hasFix |
| CompileTimeErrorCode.UNDEFINED_CONSTRUCTOR_IN_INITIALIZER: |
| status: needsFix |
| notes: |- |
| Fixes could include (1) adding a declaration for such constructor, (2) look |
| for closely named constructors. |
| CompileTimeErrorCode.UNDEFINED_CONSTRUCTOR_IN_INITIALIZER_DEFAULT: |
| status: hasFix |
| CompileTimeErrorCode.UNDEFINED_ENUM_CONSTANT: |
| status: hasFix |
| CompileTimeErrorCode.UNDEFINED_ENUM_CONSTRUCTOR_NAMED: |
| status: hasFix |
| since: 2.17 |
| CompileTimeErrorCode.UNDEFINED_ENUM_CONSTRUCTOR_UNNAMED: |
| status: hasFix |
| since: 2.17 |
| CompileTimeErrorCode.UNDEFINED_EXTENSION_GETTER: |
| status: hasFix |
| CompileTimeErrorCode.UNDEFINED_EXTENSION_METHOD: |
| status: hasFix |
| CompileTimeErrorCode.UNDEFINED_EXTENSION_OPERATOR: |
| status: needsFix |
| notes: |- |
| The fix is to create the operator in an extension. |
| CompileTimeErrorCode.UNDEFINED_EXTENSION_SETTER: |
| status: hasFix |
| CompileTimeErrorCode.UNDEFINED_FUNCTION: |
| status: hasFix |
| CompileTimeErrorCode.UNDEFINED_GETTER: |
| status: hasFix |
| CompileTimeErrorCode.UNDEFINED_GETTER_ON_FUNCTION_TYPE: |
| status: needsFix |
| since: 2.15 |
| CompileTimeErrorCode.UNDEFINED_IDENTIFIER: |
| status: hasFix |
| CompileTimeErrorCode.UNDEFINED_IDENTIFIER_AWAIT: |
| status: hasFix |
| CompileTimeErrorCode.UNDEFINED_METHOD: |
| status: hasFix |
| CompileTimeErrorCode.UNDEFINED_METHOD_ON_FUNCTION_TYPE: |
| status: needsFix |
| since: 2.15 |
| CompileTimeErrorCode.UNDEFINED_NAMED_PARAMETER: |
| status: hasFix |
| CompileTimeErrorCode.UNDEFINED_OPERATOR: |
| status: hasFix |
| CompileTimeErrorCode.UNDEFINED_PREFIXED_NAME: |
| status: hasFix |
| CompileTimeErrorCode.UNDEFINED_SETTER: |
| status: hasFix |
| CompileTimeErrorCode.UNDEFINED_SETTER_ON_FUNCTION_TYPE: |
| status: needsFix |
| since: 2.15 |
| CompileTimeErrorCode.UNDEFINED_SUPER_GETTER: |
| status: needsFix |
| notes: |- |
| The fix is to create the getter, assuming the superclass is editable. |
| CompileTimeErrorCode.UNDEFINED_SUPER_METHOD: |
| status: needsFix |
| notes: |- |
| The fix is to create the method, assuming the superclass is editable. |
| CompileTimeErrorCode.UNDEFINED_SUPER_OPERATOR: |
| status: needsFix |
| notes: |- |
| The fix is to create the operator, assuming the superclass is editable. |
| CompileTimeErrorCode.UNDEFINED_SUPER_SETTER: |
| status: needsFix |
| notes: |- |
| The fix is to create the setter, assuming the superclass is editable. |
| CompileTimeErrorCode.UNQUALIFIED_REFERENCE_TO_NON_LOCAL_STATIC_MEMBER: |
| status: hasFix |
| CompileTimeErrorCode.UNQUALIFIED_REFERENCE_TO_STATIC_MEMBER_OF_EXTENDED_TYPE: |
| status: hasFix |
| CompileTimeErrorCode.URI_DOES_NOT_EXIST: |
| status: hasFix |
| CompileTimeErrorCode.URI_HAS_NOT_BEEN_GENERATED: |
| status: noFix |
| CompileTimeErrorCode.URI_WITH_INTERPOLATION: |
| status: noFix |
| CompileTimeErrorCode.USE_OF_NATIVE_EXTENSION: |
| status: noFix |
| since: ~2.15 |
| CompileTimeErrorCode.USE_OF_VOID_RESULT: |
| status: noFix |
| CompileTimeErrorCode.VALUES_DECLARATION_IN_ENUM: |
| status: noFix |
| since: 2.17 |
| notes: |- |
| We could potentially offer to remove the member, but the user probably needs |
| to think about what they were trying to do and it seems more likely that the |
| right fix is to rename the member. |
| CompileTimeErrorCode.VARIABLE_TYPE_MISMATCH: |
| status: noFix |
| CompileTimeErrorCode.WRONG_EXPLICIT_TYPE_PARAMETER_VARIANCE_IN_SUPERINTERFACE: |
| status: noFix |
| CompileTimeErrorCode.WRONG_NUMBER_OF_PARAMETERS_FOR_OPERATOR: |
| status: needsFix |
| notes: |- |
| Fixes could include (1) removing all past the first parameter, and (2) |
| removing all but a singular used parameter, if only one is used. |
| CompileTimeErrorCode.WRONG_NUMBER_OF_PARAMETERS_FOR_OPERATOR_MINUS: |
| status: needsFix |
| notes: |- |
| Fixes could include (1) removing all past the first parameter, and (2) |
| removing all but a singular used parameter, if only one is used. |
| CompileTimeErrorCode.WRONG_NUMBER_OF_PARAMETERS_FOR_SETTER: |
| status: needsFix |
| CompileTimeErrorCode.WRONG_NUMBER_OF_TYPE_ARGUMENTS: |
| status: hasFix |
| CompileTimeErrorCode.WRONG_NUMBER_OF_TYPE_ARGUMENTS_ANONYMOUS_FUNCTION: |
| status: needsFix |
| since: 2.15 |
| CompileTimeErrorCode.WRONG_NUMBER_OF_TYPE_ARGUMENTS_CONSTRUCTOR: |
| status: hasFix |
| CompileTimeErrorCode.WRONG_NUMBER_OF_TYPE_ARGUMENTS_ENUM: |
| status: noFix |
| since: 2.17 |
| notes: |- |
| We can't know which type arguments to add or remove. (We do have a fix to |
| remove all type arguments that would work here, it just isn't a very good |
| fix to suggest.) |
| CompileTimeErrorCode.WRONG_NUMBER_OF_TYPE_ARGUMENTS_EXTENSION: |
| status: hasFix |
| CompileTimeErrorCode.WRONG_NUMBER_OF_TYPE_ARGUMENTS_FUNCTION: |
| status: needsFix |
| since: ~2.15 |
| CompileTimeErrorCode.WRONG_NUMBER_OF_TYPE_ARGUMENTS_METHOD: |
| status: hasFix |
| CompileTimeErrorCode.WRONG_TYPE_PARAMETER_VARIANCE_IN_SUPERINTERFACE: |
| status: noFix |
| CompileTimeErrorCode.WRONG_TYPE_PARAMETER_VARIANCE_POSITION: |
| status: noFix |
| CompileTimeErrorCode.YIELD_EACH_IN_NON_GENERATOR: |
| status: needsFix |
| notes: |- |
| Fixes could include: (1) change `yield` to `return` (maybe only if it |
| matches the return type) and (2) change function signature from implicit |
| sync to `sync*` or `async` to `async*`. |
| CompileTimeErrorCode.YIELD_IN_NON_GENERATOR: |
| status: needsFix |
| notes: |- |
| Fixes could include: (1) change `yield` to `return` (maybe only if it |
| matches the return type) and (2) change function signature from implicit |
| sync to `sync*` or `async` to `async*`. |
| CompileTimeErrorCode.YIELD_EACH_OF_INVALID_TYPE: |
| status: noFix |
| CompileTimeErrorCode.YIELD_OF_INVALID_TYPE: |
| status: hasFix |
| FfiCode.ABI_SPECIFIC_INTEGER_INVALID: |
| status: noFix |
| since: ~2.16 |
| FfiCode.ABI_SPECIFIC_INTEGER_MAPPING_EXTRA: |
| status: needsFix |
| since: ~2.16 |
| FfiCode.ABI_SPECIFIC_INTEGER_MAPPING_MISSING: |
| status: noFix |
| since: ~2.16 |
| FfiCode.ABI_SPECIFIC_INTEGER_MAPPING_UNSUPPORTED: |
| status: noFix |
| since: ~2.16 |
| FfiCode.ADDRESS_POSITION: |
| status: needsEvaluation |
| since: ~3.5 |
| FfiCode.ADDRESS_RECEIVER: |
| status: needsEvaluation |
| since: ~3.5 |
| FfiCode.ANNOTATION_ON_POINTER_FIELD: |
| status: needsFix |
| FfiCode.ARGUMENT_MUST_BE_A_CONSTANT: |
| status: noFix |
| FfiCode.ARGUMENT_MUST_BE_NATIVE: |
| status: needsEvaluation |
| FfiCode.COMPOUND_IMPLEMENTS_FINALIZABLE: |
| status: noFix |
| FfiCode.CREATION_OF_STRUCT_OR_UNION: |
| status: noFix |
| since: ~2.15 |
| FfiCode.EMPTY_STRUCT: |
| status: noFix |
| FfiCode.EXTRA_ANNOTATION_ON_STRUCT_FIELD: |
| status: needsFix |
| FfiCode.EXTRA_SIZE_ANNOTATION_CARRAY: |
| status: needsFix |
| FfiCode.FFI_NATIVE_MUST_BE_EXTERNAL: |
| status: needsFix |
| since: ~2.15 |
| notes: |- |
| The fix is to add the `external` keyword. |
| FfiCode.FFI_NATIVE_ONLY_CLASSES_EXTENDING_NATIVEFIELDWRAPPERCLASS1_CAN_BE_POINTER: |
| status: noFix |
| since: ~2.15 |
| FfiCode.FFI_NATIVE_UNEXPECTED_NUMBER_OF_PARAMETERS: |
| status: noFix |
| since: ~2.15 |
| FfiCode.FFI_NATIVE_UNEXPECTED_NUMBER_OF_PARAMETERS_WITH_RECEIVER: |
| status: noFix |
| since: ~2.15 |
| FfiCode.FFI_NATIVE_INVALID_DUPLICATE_DEFAULT_ASSET: |
| status: needsEvaluation |
| FfiCode.FFI_NATIVE_INVALID_MULTIPLE_ANNOTATIONS: |
| status: needsEvaluation |
| FfiCode.FIELD_MUST_BE_EXTERNAL_IN_STRUCT: |
| status: needsFix |
| since: ~2.15 |
| notes: |- |
| The fix is to add the `external` keyword. |
| FfiCode.GENERIC_STRUCT_SUBCLASS: |
| status: noFix |
| FfiCode.INVALID_EXCEPTION_VALUE: |
| status: noFix |
| FfiCode.INVALID_FIELD_TYPE_IN_STRUCT: |
| status: noFix |
| FfiCode.LEAF_CALL_MUST_NOT_RETURN_HANDLE: |
| status: noFix |
| FfiCode.LEAF_CALL_MUST_NOT_TAKE_HANDLE: |
| status: noFix |
| FfiCode.MISMATCHED_ANNOTATION_ON_STRUCT_FIELD: |
| status: noFix |
| FfiCode.MISSING_ANNOTATION_ON_STRUCT_FIELD: |
| status: noFix |
| FfiCode.MISSING_EXCEPTION_VALUE: |
| status: noFix |
| FfiCode.MISSING_FIELD_TYPE_IN_STRUCT: |
| status: noFix |
| FfiCode.MISSING_SIZE_ANNOTATION_CARRAY: |
| status: noFix |
| FfiCode.MUST_BE_A_NATIVE_FUNCTION_TYPE: |
| status: noFix |
| FfiCode.MUST_BE_A_SUBTYPE: |
| status: noFix |
| FfiCode.MUST_RETURN_VOID: |
| status: noFix |
| FfiCode.NATIVE_FIELD_INVALID_TYPE: |
| status: needsEvaluation |
| FfiCode.NATIVE_FIELD_MISSING_TYPE: |
| status: needsEvaluation |
| FfiCode.NATIVE_FIELD_NOT_STATIC: |
| status: needsEvaluation |
| FfiCode.NON_CONSTANT_TYPE_ARGUMENT: |
| status: noFix |
| FfiCode.NON_NATIVE_FUNCTION_TYPE_ARGUMENT_TO_POINTER: |
| status: noFix |
| FfiCode.NON_POSITIVE_ARRAY_DIMENSION: |
| status: noFix |
| FfiCode.NON_SIZED_TYPE_ARGUMENT: |
| status: noFix |
| FfiCode.PACKED_ANNOTATION: |
| status: needsFix |
| notes: |- |
| The fix is to remove the extra annotation. |
| FfiCode.PACKED_ANNOTATION_ALIGNMENT: |
| status: noFix |
| FfiCode.SIZE_ANNOTATION_DIMENSIONS: |
| status: noFix |
| FfiCode.VARIABLE_LENGTH_ARRAY_NOT_LAST: |
| status: noFix |
| FfiCode.SUBTYPE_OF_STRUCT_CLASS_IN_EXTENDS: |
| status: hasFix |
| FfiCode.SUBTYPE_OF_STRUCT_CLASS_IN_IMPLEMENTS: |
| status: hasFix |
| FfiCode.SUBTYPE_OF_STRUCT_CLASS_IN_WITH: |
| status: hasFix |
| HintCode.DEPRECATED_COLON_FOR_DEFAULT_VALUE: |
| status: hasFix |
| HintCode.DEPRECATED_MEMBER_USE: |
| status: hasFix |
| HintCode.DEPRECATED_MEMBER_USE_FROM_SAME_PACKAGE: |
| status: needsFix |
| notes: |- |
| Should probably be able to use `DataDriven`. |
| HintCode.DEPRECATED_MEMBER_USE_FROM_SAME_PACKAGE_WITH_MESSAGE: |
| status: needsFix |
| notes: |- |
| Should probably be able to use `DataDriven`. |
| HintCode.DEPRECATED_MEMBER_USE_WITH_MESSAGE: |
| status: hasFix |
| HintCode.IMPORT_DEFERRED_LIBRARY_WITH_LOAD_FUNCTION: |
| status: noFix |
| HintCode.MACRO_INFO: |
| status: noFix |
| HintCode.UNNECESSARY_IMPORT: |
| status: hasFix |
| LintCode.always_declare_return_types_of_functions: |
| status: hasFix |
| LintCode.always_declare_return_types_of_methods: |
| status: hasFix |
| LintCode.always_put_control_body_on_new_line: |
| status: hasFix |
| LintCode.always_put_required_named_parameters_first: |
| status: hasFix |
| LintCode.always_specify_types_add_type: |
| status: hasFix |
| LintCode.always_specify_types_replace_keyword: |
| status: hasFix |
| LintCode.always_specify_types_specify_type: |
| status: hasFix |
| LintCode.always_specify_types_split_to_types: |
| status: hasFix |
| LintCode.always_use_package_imports: |
| status: hasFix |
| LintCode.annotate_overrides: |
| status: hasFix |
| LintCode.annotate_redeclares: |
| status: hasFix |
| LintCode.avoid_annotating_with_dynamic: |
| status: hasFix |
| LintCode.avoid_bool_literals_in_conditional_expressions: |
| status: needsFix |
| notes: |- |
| Each expression like `condition ? true : boolExpression` can be universally |
| fixed to not contain a bool literal. |
| LintCode.avoid_catches_without_on_clauses: |
| status: noFix |
| notes: |- |
| There's no way to know which type to use in the on clause. |
| LintCode.avoid_catching_errors_class: |
| status: noFix |
| LintCode.avoid_catching_errors_subclass: |
| status: noFix |
| LintCode.avoid_classes_with_only_static_members: |
| status: noFix |
| notes: |- |
| The fix would be to convert the static members to top-level members, but |
| that would require a refactoring. |
| LintCode.avoid_double_and_int_checks: |
| status: needsFix |
| notes: |- |
| The fix is to replace the type name with `num`. |
| LintCode.avoid_dynamic_calls: |
| status: noFix |
| LintCode.avoid_empty_else: |
| status: hasFix |
| LintCode.avoid_equals_and_hash_code_on_mutable_classes: |
| status: noFix |
| notes: |- |
| Theoretically we could remove the methods, but the fix is probably |
| appropriate so seldom that it isn't worth offering it. |
| LintCode.avoid_escaping_inner_quotes: |
| status: hasFix |
| LintCode.avoid_field_initializers_in_const_classes: |
| status: noFix |
| LintCode.avoid_final_parameters: |
| status: needsFix |
| notes: |- |
| The fix is to remove the `final` keyword. |
| LintCode.avoid_function_literals_in_foreach_calls: |
| status: hasFix |
| LintCode.avoid_implementing_value_types: |
| status: noFix |
| notes: |- |
| This lint should probably be retired in favor of explicitly marking the |
| value type class as being `base`. We might want a new lint to flag classes |
| that implement `==` but aren't marked as `base` |
| (`non_base_class_with_equals`?). |
| LintCode.avoid_init_to_null: |
| status: hasFix |
| LintCode.avoid_js_rounded_ints: |
| status: noFix |
| LintCode.avoid_multiple_declarations_per_line: |
| status: hasFix |
| LintCode.avoid_null_checks_in_equality_operators: |
| status: hasFix |
| LintCode.avoid_positional_boolean_parameters: |
| status: noFix |
| notes: |- |
| The fix is to make bool parameter be named parameters, but that requires a |
| refactoring. |
| LintCode.avoid_print: |
| status: hasFix |
| LintCode.avoid_private_typedef_functions: |
| status: hasFix |
| LintCode.avoid_redundant_argument_values: |
| status: hasFix |
| LintCode.avoid_relative_lib_imports: |
| status: hasFix |
| LintCode.avoid_renaming_method_parameters: |
| status: hasFix |
| LintCode.avoid_return_types_on_setters: |
| status: hasFix |
| LintCode.avoid_returning_null_for_void_from_function: |
| status: hasFix |
| LintCode.avoid_returning_null_for_void_from_method: |
| status: hasFix |
| LintCode.avoid_returning_this: |
| status: noFix |
| notes: |- |
| The fix would be to change the return type to `void`, but that requires a |
| refactoring. (It might not be possible to clean up all invocation sites, but |
| we could handle some of them.) |
| LintCode.avoid_setters_without_getters: |
| status: needsFix |
| notes: |- |
| The fix is to either add a corresponding getter or to remove the setter. |
| LintCode.avoid_shadowing_type_parameters: |
| status: noFix |
| notes: |- |
| The fix is to rename the type parameter, which is a refactoring. |
| LintCode.avoid_single_cascade_in_expression_statements: |
| status: hasFix |
| LintCode.avoid_slow_async_io: |
| status: needsFix |
| notes: |- |
| The fix is to use the corresponding sync method and to remove the `await`, |
| but it's probably very seldom needed, so it's low priority. |
| LintCode.avoid_type_to_string: |
| status: noFix |
| notes: |- |
| Theoretically we could replace some uses with `is` checks, but it's probably |
| uncommon enough to not be worth the cost. |
| LintCode.avoid_types_as_parameter_names: |
| status: hasFix |
| LintCode.avoid_types_on_closure_parameters: |
| status: hasFix |
| LintCode.avoid_unnecessary_containers: |
| status: hasFix |
| LintCode.avoid_unused_constructor_parameters: |
| status: hasFix |
| LintCode.avoid_void_async: |
| status: hasFix |
| LintCode.avoid_web_libraries_in_flutter: |
| status: noFix |
| LintCode.await_only_futures: |
| status: hasFix |
| LintCode.camel_case_extensions: |
| status: noFix |
| notes: |- |
| The fix is to rename the extension, but that's a refactoring. |
| LintCode.camel_case_types: |
| status: noFix |
| notes: |- |
| The fix is to rename the type, but that's a refactoring. |
| LintCode.cancel_subscriptions: |
| status: noFix |
| LintCode.cascade_invocations: |
| status: hasFix |
| LintCode.cast_nullable_to_non_nullable: |
| status: hasFix |
| LintCode.close_sinks: |
| status: noFix |
| LintCode.collection_methods_unrelated_type: |
| status: noFix |
| LintCode.combinators_ordering: |
| status: hasFix |
| LintCode.comment_references: |
| status: hasFix |
| notes: |- |
| This lint should be deprecated when we have a doc-only form of import. At |
| that point this will be a warning rather than a lint. |
| LintCode.conditional_uri_does_not_exist: |
| status: noFix |
| notes: |- |
| The fix is to create the file, but typically that means running a generator, |
| which is outside the scope of fixes. |
| LintCode.constant_identifier_names: |
| status: hasFix |
| notes: |- |
| Supported for local variables. |
| Not supported for fields and top-level variables, has to be a refactoring. |
| LintCode.control_flow_in_finally: |
| status: noFix |
| LintCode.curly_braces_in_flow_control_structures: |
| status: hasFix |
| LintCode.dangling_library_doc_comments: |
| status: hasFix |
| LintCode.depend_on_referenced_packages: |
| status: needsFix |
| LintCode.deprecated_consistency_constructor: |
| status: needsFix |
| notes: |- |
| The fix is to either remove deprecated or to add it in the missing places. |
| LintCode.deprecated_consistency_field: |
| status: needsFix |
| notes: |- |
| The fix is to either remove deprecated or to add it in the missing places. |
| LintCode.deprecated_consistency_parameter: |
| status: needsFix |
| notes: |- |
| The fix is to either remove deprecated or to add it in the missing places. |
| LintCode.deprecated_member_use_from_same_package_without_message: |
| status: hasFix |
| LintCode.deprecated_member_use_from_same_package_with_message: |
| status: hasFix |
| LintCode.diagnostic_describe_all_properties: |
| status: hasFix |
| LintCode.directives_ordering_alphabetical: |
| status: hasFix |
| LintCode.directives_ordering_dart: |
| status: hasFix |
| LintCode.directives_ordering_exports: |
| status: hasFix |
| LintCode.directives_ordering_package_before_relative: |
| status: hasFix |
| LintCode.discarded_futures: |
| status: hasFix |
| LintCode.do_not_use_environment: |
| status: noFix |
| LintCode.document_ignores: |
| status: needsFix |
| notes: |- |
| We of course cannot generate a fix including appropriate text, but we can |
| insert a stub comment in the correct position. |
| LintCode.empty_catches: |
| status: hasFix |
| LintCode.empty_constructor_bodies: |
| status: hasFix |
| LintCode.empty_statements: |
| status: hasFix |
| LintCode.eol_at_end_of_file: |
| status: hasFix |
| LintCode.erase_dart_type_extension_types: |
| status: needsEvaluation |
| LintCode.exhaustive_cases: |
| status: hasFix |
| LintCode.file_names: |
| status: noFix |
| notes: |- |
| The fix is to rename the file, but that's a refactoring. |
| LintCode.flutter_style_todos: |
| status: hasFix |
| LintCode.hash_and_equals: |
| status: hasFix |
| LintCode.implementation_imports: |
| status: noFix |
| notes: |- |
| Theoretically, once analyzer can share dartdoc's method for finding public |
| libraries that export a private one, we could offer the public libraries as |
| a replacement. But a fix is blocked on having that support available. |
| LintCode.implicit_call_tearoffs: |
| status: hasFix |
| LintCode.implicit_reopen: |
| status: hasFix |
| LintCode.invalid_case_patterns: |
| status: hasFix |
| LintCode.invalid_runtime_check_with_js_interop_types_dart_as_js: |
| status: needsEvaluation |
| notes: |- |
| The fix is dependent on the specific types that are being used. In some |
| cases, the type test is incorrect and has no fix besides removing the test. |
| In other cases, JS interop helpers may be used to do the type test instead. |
| LintCode.invalid_runtime_check_with_js_interop_types_dart_is_js: |
| status: needsEvaluation |
| LintCode.invalid_runtime_check_with_js_interop_types_js_as_dart: |
| status: needsEvaluation |
| LintCode.invalid_runtime_check_with_js_interop_types_js_as_incompatible_js: |
| status: needsEvaluation |
| LintCode.invalid_runtime_check_with_js_interop_types_js_is_dart: |
| status: needsEvaluation |
| LintCode.invalid_runtime_check_with_js_interop_types_js_is_inconsistent_js: |
| status: needsEvaluation |
| LintCode.invalid_runtime_check_with_js_interop_types_js_is_unrelated_js: |
| status: needsEvaluation |
| LintCode.join_return_with_assignment: |
| status: needsFix |
| LintCode.leading_newlines_in_multiline_strings: |
| status: hasFix |
| LintCode.library_annotations: |
| status: hasFix |
| LintCode.library_names: |
| status: noFix |
| notes: |- |
| The fix is to rename the library (possibly to an empty name), but that's a |
| refactoring. |
| LintCode.library_prefixes: |
| status: noFix |
| notes: |- |
| The fix is to rename the prefix, but that's a refactoring. |
| LintCode.library_private_types_in_public_api: |
| status: noFix |
| notes: |- |
| The fix is to either change the type in the API (which we can't automate) or |
| to make the private type public, which (sort of) requires a refactoring. |
| LintCode.lines_longer_than_80_chars: |
| status: noFix |
| LintCode.literal_only_boolean_expressions: |
| status: noFix |
| LintCode.matching_super_parameters: |
| status: needsFix |
| notes: |- |
| A little tricky, but two (non-conflicting) ideas: |
| 1. Rename the super-parameter if it doesn't conflict with any other |
| parameter name. |
| 2. Transpose two super parameters if doing so would match up their |
| super-constructor parameters. |
| LintCode.missing_code_block_language_in_doc_comment: |
| status: needsEvaluation |
| LintCode.missing_whitespace_between_adjacent_strings: |
| status: needsFix |
| notes: |- |
| The fix is to add the whitespace. Might require a preference to know which |
| string to add it to. |
| LintCode.no_adjacent_strings_in_list: |
| status: needsFix |
| notes: |- |
| The fix is to either add a comma or join the strings. |
| LintCode.no_default_cases: |
| status: needsFix |
| notes: |- |
| The fix is to replace the `default` with a list of cases for the existing |
| values that the default would have matched. |
| LintCode.no_duplicate_case_values: |
| status: hasFix |
| LintCode.no_leading_underscores_for_library_prefixes: |
| status: hasFix |
| LintCode.no_leading_underscores_for_local_identifiers: |
| status: hasFix |
| LintCode.no_literal_bool_comparisons: |
| status: hasFix |
| LintCode.no_logic_in_create_state: |
| status: noFix |
| LintCode.no_runtimeType_toString: |
| status: noFix |
| LintCode.no_self_assignments: |
| status: needsEvaluation |
| LintCode.non_constant_identifier_names: |
| status: hasFix |
| notes: |- |
| Supported for local variables. |
| Not supported for fields and top-level variables, has to be a refactoring. |
| LintCode.noop_primitive_operations: |
| status: hasFix |
| LintCode.null_check_on_nullable_type_parameter: |
| status: hasFix |
| notes: |- |
| A second fix is possible, in which we make the type parameter not |
| potentially nullable, something like changing `T foo<T>()` to |
| `T foo<T extends Object>()` and `T foo<T extends num?>()` to |
| `T foo<T extends num>()`. This is particularly valuable in the first |
| case, where the choice to implicitly bound the type to `dynamic` may not |
| have been intentional. |
| LintCode.null_closures: |
| status: hasFix |
| LintCode.omit_local_variable_types: |
| status: hasFix |
| LintCode.omit_obvious_local_variable_types: |
| status: hasFix |
| LintCode.one_member_abstracts: |
| status: noFix |
| notes: |- |
| Theoretically we could convert the member to a top-level function, but that |
| would require a refactoring. |
| LintCode.only_throw_errors: |
| status: noFix |
| LintCode.overridden_fields: |
| status: noFix |
| LintCode.package_api_docs: |
| status: noFix |
| LintCode.package_names: |
| status: noFix |
| notes: |- |
| The fix is to rename the package, but that's a refactoring. |
| LintCode.package_prefixed_library_names: |
| status: noFix |
| notes: |- |
| The fix is to rename the library, but that's a refactoring. |
| LintCode.parameter_assignments: |
| status: noFix |
| notes: |- |
| Theoretically we could assign the parameter to a local variable and replace |
| all references to the parameter with a reference to the variable, but that |
| would require choosing a name for the local variable. |
| LintCode.prefer_adjacent_string_concatenation: |
| status: hasFix |
| LintCode.prefer_asserts_in_initializer_lists: |
| status: needsFix |
| notes: |- |
| The fix is to move the assert to the initializer list. |
| LintCode.prefer_asserts_with_message: |
| status: noFix |
| LintCode.prefer_collection_literals: |
| status: hasFix |
| LintCode.prefer_conditional_assignment: |
| status: hasFix |
| LintCode.prefer_const_constructors: |
| status: hasFix |
| LintCode.prefer_const_constructors_in_immutables: |
| status: hasFix |
| LintCode.prefer_const_declarations: |
| status: hasFix |
| LintCode.prefer_const_literals_to_create_immutables: |
| status: hasFix |
| LintCode.prefer_constructors_over_static_methods: |
| status: needsFix |
| notes: |- |
| The fix is to rewrite the static method as a factory constructor. |
| LintCode.prefer_contains_always_false: |
| status: hasFix |
| LintCode.prefer_contains_always_true: |
| status: hasFix |
| LintCode.prefer_contains_use_contains: |
| status: hasFix |
| LintCode.prefer_double_quotes: |
| status: hasFix |
| LintCode.prefer_expression_function_bodies: |
| status: hasFix |
| LintCode.prefer_final_fields: |
| status: hasFix |
| LintCode.prefer_final_in_for_each_pattern: |
| status: hasFix |
| LintCode.prefer_final_in_for_each_variable: |
| status: hasFix |
| LintCode.prefer_final_locals: |
| status: hasFix |
| LintCode.prefer_final_parameters: |
| status: hasFix |
| LintCode.prefer_for_elements_to_map_fromIterable: |
| status: hasFix |
| LintCode.prefer_foreach: |
| status: needsFix |
| notes: |- |
| The fix is to rewrite the loop. |
| LintCode.prefer_function_declarations_over_variables: |
| status: hasFix |
| LintCode.prefer_generic_function_type_aliases: |
| status: hasFix |
| LintCode.prefer_if_elements_to_conditional_expressions: |
| status: hasFix |
| LintCode.prefer_if_null_operators: |
| status: hasFix |
| LintCode.prefer_initializing_formals: |
| status: hasFix |
| LintCode.prefer_inlined_adds_multiple: |
| status: hasFix |
| LintCode.prefer_inlined_adds_single: |
| status: hasFix |
| LintCode.prefer_int_literals: |
| status: hasFix |
| LintCode.prefer_interpolation_to_compose_strings: |
| status: hasFix |
| LintCode.prefer_is_empty_always_false: |
| status: hasFix |
| LintCode.prefer_is_empty_always_true: |
| status: hasFix |
| LintCode.prefer_is_empty_use_is_empty: |
| status: hasFix |
| LintCode.prefer_is_empty_use_is_not_empty: |
| status: hasFix |
| LintCode.prefer_is_not_empty: |
| status: hasFix |
| LintCode.prefer_is_not_operator: |
| status: hasFix |
| LintCode.prefer_iterable_whereType: |
| status: hasFix |
| LintCode.prefer_mixin: |
| status: needsFix |
| notes: |- |
| The fix is to either rewrite the class as a mixin or add the mixin modifier. |
| LintCode.prefer_null_aware_method_calls: |
| status: needsFix |
| notes: |- |
| The fix is to rewrite the invocation to use `?.`. |
| LintCode.prefer_null_aware_operators: |
| status: hasFix |
| LintCode.prefer_relative_imports: |
| status: hasFix |
| LintCode.prefer_single_quotes: |
| status: hasFix |
| LintCode.prefer_spread_collections: |
| status: hasFix |
| LintCode.prefer_typing_uninitialized_variables_for_field: |
| status: hasFix |
| LintCode.prefer_typing_uninitialized_variables_for_local_variable: |
| status: hasFix |
| LintCode.prefer_void_to_null: |
| status: hasFix |
| LintCode.provide_deprecation_message: |
| status: noFix |
| notes: |- |
| Theoretically we could identify common patterns of messages in doc comments |
| and move them into the annotation, but we'll never recognize all of the |
| possible patterns. |
| LintCode.public_member_api_docs: |
| status: noFix |
| LintCode.recursive_getters: |
| status: noFix |
| LintCode.removed_lint: |
| status: noFix |
| LintCode.require_trailing_commas: |
| status: hasFix |
| LintCode.secure_pubspec_urls: |
| status: noFix |
| LintCode.sized_box_for_whitespace: |
| status: hasFix |
| LintCode.sized_box_shrink_expand: |
| status: needsFix |
| notes: |- |
| The fix is to invoke a different constructor. |
| LintCode.slash_for_doc_comments: |
| status: hasFix |
| LintCode.sort_child_properties_last: |
| status: hasFix |
| LintCode.sort_constructors_first: |
| status: hasFix |
| LintCode.sort_pub_dependencies: |
| status: needsFix |
| LintCode.sort_unnamed_constructors_first: |
| status: hasFix |
| LintCode.specify_nonobvious_local_variable_types: |
| status: hasFix |
| LintCode.test_types_in_equals: |
| status: noFix |
| LintCode.throw_in_finally: |
| status: noFix |
| LintCode.tighten_type_of_initializing_formals: |
| status: needsFix |
| LintCode.type_annotate_public_apis: |
| status: hasFix |
| LintCode.type_init_formals: |
| status: hasFix |
| LintCode.type_literal_in_constant_pattern: |
| status: hasFix |
| LintCode.unawaited_futures: |
| status: hasFix |
| LintCode.unintended_html_in_doc_comment: |
| status: needsFix |
| notes: |- |
| The fix is to encode the angle brackets. |
| LintCode.unnecessary_await_in_return: |
| status: hasFix |
| LintCode.unnecessary_brace_in_string_interps: |
| status: hasFix |
| LintCode.unnecessary_breaks: |
| status: hasFix |
| LintCode.unnecessary_const: |
| status: hasFix |
| LintCode.unnecessary_constructor_name: |
| status: hasFix |
| LintCode.unnecessary_final_with_type: |
| status: hasFix |
| LintCode.unnecessary_final_without_type: |
| status: hasFix |
| LintCode.unnecessary_getters_setters: |
| status: hasFix |
| LintCode.unnecessary_lambdas: |
| status: hasFix |
| LintCode.unnecessary_late: |
| status: hasFix |
| LintCode.unnecessary_library_directive: |
| status: hasFix |
| LintCode.unnecessary_library_name: |
| status: hasFix |
| LintCode.unnecessary_new: |
| status: hasFix |
| LintCode.no_wildcard_variable_uses: |
| status: needsEvaluation |
| LintCode.unnecessary_null_aware_assignments: |
| status: hasFix |
| LintCode.unnecessary_null_aware_operator_on_extension_on_nullable: |
| status: needsFix |
| LintCode.unnecessary_null_checks: |
| status: hasFix |
| LintCode.unnecessary_null_in_if_null_operators: |
| status: hasFix |
| LintCode.unnecessary_nullable_for_final_variable_declarations: |
| status: hasFix |
| LintCode.unnecessary_overrides: |
| status: hasFix |
| LintCode.unnecessary_parenthesis: |
| status: hasFix |
| LintCode.unnecessary_raw_strings: |
| status: hasFix |
| LintCode.unnecessary_statements: |
| status: noFix |
| LintCode.unnecessary_string_escapes: |
| status: hasFix |
| LintCode.unnecessary_string_interpolations: |
| status: hasFix |
| LintCode.unnecessary_this: |
| status: hasFix |
| LintCode.unnecessary_to_list_in_spreads: |
| status: hasFix |
| LintCode.unreachable_from_main: |
| status: hasFix |
| LintCode.unrelated_type_equality_checks_in_expression: |
| status: needsEvaluation |
| LintCode.unrelated_type_equality_checks_in_pattern: |
| status: needsEvaluation |
| LintCode.unsafe_html_attribute: |
| status: noFix |
| LintCode.unsafe_html_method: |
| status: noFix |
| LintCode.unsafe_html_constructor: |
| status: noFix |
| LintCode.use_build_context_synchronously_async_use: |
| status: noFix |
| LintCode.use_build_context_synchronously_wrong_mounted: |
| status: needsFix |
| notes: |- |
| We could have a fix that would replace a mounted check on the wrong element |
| to a mounted check on the right element. |
| LintCode.use_colored_box: |
| status: needsFix |
| LintCode.use_decorated_box: |
| status: hasFix |
| LintCode.use_enums: |
| status: hasFix |
| LintCode.use_full_hex_values_for_flutter_colors: |
| status: hasFix |
| LintCode.use_function_type_syntax_for_parameters: |
| status: hasFix |
| LintCode.use_if_null_to_convert_nulls_to_bools: |
| status: needsFix |
| LintCode.use_is_even_rather_than_modulo: |
| status: needsFix |
| LintCode.use_key_in_widget_constructors: |
| status: hasFix |
| LintCode.use_late_for_private_fields_and_variables: |
| status: needsFix |
| LintCode.use_named_constants: |
| status: hasFix |
| LintCode.use_raw_strings: |
| status: hasFix |
| LintCode.use_rethrow_when_possible: |
| status: hasFix |
| LintCode.use_setters_to_change_properties: |
| status: noFix |
| notes: |- |
| Theoretically we could rewrite the method to a setter, but that would |
| require a refactoring. |
| LintCode.use_string_buffers: |
| status: needsFix |
| notes: |- |
| It isn't clear that this occurs often enough to justify the cost. |
| LintCode.use_string_in_part_of_directives: |
| status: hasFix |
| LintCode.use_test_throws_matchers: |
| status: needsFix |
| LintCode.use_super_parameters_multiple: |
| status: hasFix |
| LintCode.use_super_parameters_single: |
| status: hasFix |
| LintCode.use_to_and_as_if_applicable: |
| status: noFix |
| notes: |- |
| This would require renaming the method, which is a refactoring. |
| LintCode.use_truncating_division: |
| status: hasFix |
| LintCode.valid_regexps: |
| status: noFix |
| LintCode.void_checks: |
| status: noFix |
| ManifestWarningCode.CAMERA_PERMISSIONS_INCOMPATIBLE: |
| status: noFix |
| ManifestWarningCode.NO_TOUCHSCREEN_FEATURE: |
| status: noFix |
| ManifestWarningCode.NON_RESIZABLE_ACTIVITY: |
| status: noFix |
| ManifestWarningCode.PERMISSION_IMPLIES_UNSUPPORTED_HARDWARE: |
| status: noFix |
| ManifestWarningCode.SETTING_ORIENTATION_ON_ACTIVITY: |
| status: noFix |
| ManifestWarningCode.UNSUPPORTED_CHROME_OS_FEATURE: |
| status: noFix |
| ManifestWarningCode.UNSUPPORTED_CHROME_OS_HARDWARE: |
| status: noFix |
| ParserErrorCode.ABSTRACT_CLASS_MEMBER: |
| status: hasFix |
| ParserErrorCode.ABSTRACT_EXTERNAL_FIELD: |
| status: needsFix |
| notes: |- |
| Remove either the `abstract` or the `external` keyword. |
| ParserErrorCode.ABSTRACT_FINAL_BASE_CLASS: |
| status: needsFix |
| notes: |- |
| Remove either the `final` or `base` keyword. |
| ParserErrorCode.ABSTRACT_FINAL_INTERFACE_CLASS: |
| status: needsFix |
| notes: |- |
| Remove either the `final` or `interface` keyword. |
| ParserErrorCode.ABSTRACT_LATE_FIELD: |
| status: needsFix |
| notes: |- |
| Remove either the `abstract` or the `late` keyword. |
| ParserErrorCode.ABSTRACT_SEALED_CLASS: |
| status: needsFix |
| notes: |- |
| Remove either the `abstract` or the `sealed` keyword. |
| ParserErrorCode.ABSTRACT_STATIC_FIELD: |
| status: hasFix |
| ParserErrorCode.ABSTRACT_STATIC_METHOD: |
| status: hasFix |
| ParserErrorCode.ANNOTATION_ON_TYPE_ARGUMENT: |
| status: needsFix |
| notes: |- |
| Remove the annotation. |
| ParserErrorCode.ANNOTATION_SPACE_BEFORE_PARENTHESIS: |
| status: needsFix |
| notes: |- |
| Remove the extra spaces |
| ParserErrorCode.ANNOTATION_WITH_TYPE_ARGUMENTS: |
| status: needsFix |
| notes: |- |
| Remove the type arguments. |
| ParserErrorCode.ANNOTATION_WITH_TYPE_ARGUMENTS_UNINSTANTIATED: |
| status: needsFix |
| notes: |- |
| Add the parens. |
| ParserErrorCode.ASYNC_KEYWORD_USED_AS_IDENTIFIER: |
| status: noFix |
| ParserErrorCode.BASE_ENUM: |
| status: needsEvaluation |
| ParserErrorCode.BINARY_OPERATOR_WRITTEN_OUT: |
| status: needsFix |
| notes: |- |
| Replace with the real operand. |
| ParserErrorCode.BREAK_OUTSIDE_OF_LOOP: |
| status: noFix |
| ParserErrorCode.CATCH_SYNTAX: |
| status: needsFix |
| notes: |- |
| Add `(exception)`. (The longer form is suggested as a learning aid.) |
| ParserErrorCode.CATCH_SYNTAX_EXTRA_PARAMETERS: |
| status: noFix |
| ParserErrorCode.CLASS_IN_CLASS: |
| status: needsFix |
| notes: |- |
| Move the inner class to the top-level. |
| ParserErrorCode.COLON_IN_PLACE_OF_IN: |
| status: hasFix |
| ParserErrorCode.CONFLICTING_MODIFIERS: |
| status: needsFix |
| notes: |- |
| Remove either the left or right modifier. |
| ParserErrorCode.CONST_AND_FINAL: |
| status: needsFix |
| notes: |- |
| Remove either `const` or `final`. |
| ParserErrorCode.CONST_CLASS: |
| status: hasFix |
| ParserErrorCode.CONST_CONSTRUCTOR_WITH_BODY: |
| status: noFix |
| ParserErrorCode.CONST_FACTORY: |
| status: hasFix |
| ParserErrorCode.CONST_METHOD: |
| status: hasFix |
| ParserErrorCode.CONSTRUCTOR_WITH_RETURN_TYPE: |
| status: needsFix |
| notes: |- |
| Remove the return type |
| ParserErrorCode.CONSTRUCTOR_WITH_TYPE_ARGUMENTS: |
| status: needsFix |
| notes: |- |
| Move the type arguments to after the class name. |
| since: ~2.15 |
| ParserErrorCode.CONTINUE_OUTSIDE_OF_LOOP: |
| status: noFix |
| ParserErrorCode.CONTINUE_WITHOUT_LABEL_IN_CASE: |
| status: needsFix |
| notes: |- |
| Suggest each of the labels that are valid. |
| ParserErrorCode.COVARIANT_AND_STATIC: |
| status: needsFix |
| notes: |- |
| Remove either `covariant` or `static`. |
| ParserErrorCode.COVARIANT_CONSTRUCTOR: |
| status: noFix |
| notes: |- |
| This error code is currently unreported and constructors |
| are treated the same as members (see `COVARIANT_MEMBER`). |
| ParserErrorCode.COVARIANT_MEMBER: |
| status: hasFix |
| ParserErrorCode.DECLARATION_NAMED_AUGMENTED_INSIDE_AUGMENTATION: |
| status: noFix |
| ParserErrorCode.DEFAULT_IN_SWITCH_EXPRESSION: |
| status: hasFix |
| ParserErrorCode.DEFAULT_VALUE_IN_FUNCTION_TYPE: |
| status: needsFix |
| notes: |- |
| Remove the default value. |
| ParserErrorCode.DEFERRED_AFTER_PREFIX: |
| status: needsFix |
| notes: |- |
| Move the `deferred` keyword before the prefix. |
| ParserErrorCode.DIRECTIVE_AFTER_DECLARATION: |
| status: needsFix |
| notes: |- |
| Move the directive to the directive section. |
| ParserErrorCode.DUPLICATE_DEFERRED: |
| status: needsFix |
| notes: |- |
| Remove the second `deferred`. |
| ParserErrorCode.DUPLICATE_LABEL_IN_SWITCH_STATEMENT: |
| status: noFix |
| ParserErrorCode.DUPLICATE_PREFIX: |
| status: needsFix |
| notes: |- |
| Remove the duplicate. |
| ParserErrorCode.DUPLICATED_MODIFIER: |
| status: hasFix |
| ParserErrorCode.EMPTY_ENUM_BODY: |
| status: noFix |
| notes: |- |
| We can't guess at the names or number of the enum constants that should be |
| added. |
| ParserErrorCode.EMPTY_RECORD_LITERAL_WITH_COMMA: |
| status: hasFix |
| ParserErrorCode.EMPTY_RECORD_TYPE_NAMED_FIELDS_LIST: |
| status: noFix |
| notes: |- |
| It's likely that the user just hasn't provided a named field yet, and |
| offering to remove the braces would be counter-productive. |
| ParserErrorCode.EMPTY_RECORD_TYPE_WITH_COMMA: |
| status: hasFix |
| ParserErrorCode.ENUM_IN_CLASS: |
| status: needsFix |
| notes: |- |
| Move the nested enum to the top level. |
| ParserErrorCode.EQUALITY_CANNOT_BE_EQUALITY_OPERAND: |
| status: noFix |
| ParserErrorCode.EXPECTED_CASE_OR_DEFAULT: |
| status: noFix |
| ParserErrorCode.EXPECTED_CATCH_CLAUSE_BODY: |
| status: hasFix |
| ParserErrorCode.EXPECTED_CLASS_BODY: |
| status: hasFix |
| ParserErrorCode.EXPECTED_CLASS_MEMBER: |
| status: noFix |
| ParserErrorCode.EXPECTED_ELSE_OR_COMMA: |
| status: noFix |
| ParserErrorCode.EXPECTED_EXECUTABLE: |
| status: noFix |
| ParserErrorCode.EXPECTED_EXTENSION_BODY: |
| status: hasFix |
| ParserErrorCode.EXPECTED_EXTENSION_TYPE_BODY: |
| status: hasFix |
| ParserErrorCode.EXPECTED_FINALLY_CLAUSE_BODY: |
| status: hasFix |
| ParserErrorCode.EXPECTED_IDENTIFIER_BUT_GOT_KEYWORD: |
| status: noFix |
| ParserErrorCode.EXPECTED_INSTEAD: |
| status: noFix |
| ParserErrorCode.EXPECTED_LIST_OR_MAP_LITERAL: |
| status: needsFix |
| notes: |- |
| Add the braces or brackets for the literal. |
| ParserErrorCode.EXPECTED_MIXIN_BODY: |
| status: hasFix |
| ParserErrorCode.EXPECTED_NAMED_TYPE_EXTENDS: |
| status: noFix |
| ParserErrorCode.EXPECTED_NAMED_TYPE_IMPLEMENTS: |
| status: noFix |
| ParserErrorCode.EXPECTED_NAMED_TYPE_ON: |
| status: noFix |
| ParserErrorCode.EXPECTED_NAMED_TYPE_WITH: |
| status: noFix |
| ParserErrorCode.EXPECTED_REPRESENTATION_FIELD: |
| status: noFix |
| ParserErrorCode.EXPECTED_REPRESENTATION_TYPE: |
| status: noFix |
| ParserErrorCode.EXPECTED_STRING_LITERAL: |
| status: noFix |
| ParserErrorCode.EXPECTED_SWITCH_EXPRESSION_BODY: |
| status: hasFix |
| ParserErrorCode.EXPECTED_SWITCH_STATEMENT_BODY: |
| status: hasFix |
| ParserErrorCode.EXPECTED_TOKEN: |
| status: hasFix |
| ParserErrorCode.EXPECTED_TRY_STATEMENT_BODY: |
| status: hasFix |
| ParserErrorCode.EXPECTED_TYPE_NAME: |
| status: noFix |
| ParserErrorCode.EXPERIMENT_NOT_ENABLED: |
| status: needsFix |
| notes: |- |
| Update the sdk constraints. |
| ParserErrorCode.EXPERIMENT_NOT_ENABLED_OFF_BY_DEFAULT: |
| status: needsFix |
| notes: |- |
| Add the experiment to the analysis options file. |
| ParserErrorCode.EXPORT_DIRECTIVE_AFTER_PART_DIRECTIVE: |
| status: needsFix |
| notes: |- |
| Move the directive to a valid place. |
| ParserErrorCode.EXTENSION_AUGMENTATION_HAS_ON_CLAUSE: |
| status: hasFix |
| ParserErrorCode.EXTENSION_DECLARES_ABSTRACT_MEMBER: |
| status: needsFix |
| notes: |- |
| Provide an empty body for the member. |
| ParserErrorCode.EXTENSION_DECLARES_CONSTRUCTOR: |
| status: hasFix |
| ParserErrorCode.EXTENSION_DECLARES_INSTANCE_FIELD: |
| status: needsFix |
| notes: |- |
| Remove the field, or add `static`. |
| ParserErrorCode.EXTENSION_TYPE_EXTENDS: |
| status: needsEvaluation |
| ParserErrorCode.EXTENSION_TYPE_WITH: |
| status: needsEvaluation |
| ParserErrorCode.EXTERNAL_CLASS: |
| status: hasFix |
| ParserErrorCode.EXTERNAL_CONSTRUCTOR_WITH_BODY: |
| status: needsFix |
| notes: |- |
| Remove the `external` keyword. |
| ParserErrorCode.EXTERNAL_CONSTRUCTOR_WITH_FIELD_INITIALIZERS: |
| status: needsFix |
| notes: |- |
| Remove the `external` keyword or remove the initializers. |
| ParserErrorCode.EXTERNAL_CONSTRUCTOR_WITH_INITIALIZER: |
| status: needsFix |
| notes: |- |
| Remove the `external` keyword or remove the initializers. |
| ParserErrorCode.EXTERNAL_ENUM: |
| status: hasFix |
| ParserErrorCode.EXTERNAL_FACTORY_REDIRECTION: |
| status: needsFix |
| notes: |- |
| Remove the `external` keyword. |
| ParserErrorCode.EXTERNAL_FACTORY_WITH_BODY: |
| status: needsFix |
| notes: |- |
| Remove the `external` keyword, or remove the body of the factory. |
| ParserErrorCode.EXTERNAL_FIELD: |
| status: needsFix |
| notes: |- |
| Remove the `external` keyword. |
| ParserErrorCode.EXTERNAL_GETTER_WITH_BODY: |
| status: needsFix |
| notes: |- |
| Remove the `external` keyword, or remove the body. |
| ParserErrorCode.EXTERNAL_LATE_FIELD: |
| status: needsFix |
| notes: |- |
| Remove the `external` keyword. |
| ParserErrorCode.EXTERNAL_METHOD_WITH_BODY: |
| status: needsFix |
| notes: |- |
| Remove the `external` keyword, or remove the body. |
| ParserErrorCode.EXTERNAL_OPERATOR_WITH_BODY: |
| status: needsFix |
| notes: |- |
| Remove the `external` keyword, or remove the body. |
| ParserErrorCode.EXTERNAL_SETTER_WITH_BODY: |
| status: needsFix |
| notes: |- |
| Remove the `external` keyword, or remove the body. |
| ParserErrorCode.EXTERNAL_TYPEDEF: |
| status: hasFix |
| ParserErrorCode.EXTRANEOUS_MODIFIER: |
| status: hasFix |
| ParserErrorCode.EXTRANEOUS_MODIFIER_IN_EXTENSION_TYPE: |
| status: needsEvaluation |
| ParserErrorCode.EXTRANEOUS_MODIFIER_IN_PRIMARY_CONSTRUCTOR: |
| status: needsEvaluation |
| ParserErrorCode.FACTORY_TOP_LEVEL_DECLARATION: |
| status: hasFix |
| ParserErrorCode.FACTORY_WITH_INITIALIZERS: |
| status: needsFix |
| notes: |- |
| Remove the `factory` keyword or remove the initializers. |
| ParserErrorCode.FACTORY_WITHOUT_BODY: |
| status: noFix |
| ParserErrorCode.FIELD_INITIALIZED_OUTSIDE_DECLARING_CLASS: |
| status: noFix |
| ParserErrorCode.FIELD_INITIALIZER_OUTSIDE_CONSTRUCTOR: |
| status: needsFix |
| notes: |- |
| Remove `this.`. |
| ParserErrorCode.FINAL_AND_COVARIANT: |
| status: needsFix |
| notes: |- |
| Remove either `final` or `covariant`. |
| ParserErrorCode.FINAL_AND_COVARIANT_LATE_WITH_INITIALIZER: |
| status: needsFix |
| notes: |- |
| Remove either `final` or `covariant`, or remove the initializer. |
| ParserErrorCode.FINAL_AND_VAR: |
| status: needsFix |
| notes: |- |
| Remove either `final` or `var`. |
| ParserErrorCode.FINAL_CONSTRUCTOR: |
| status: hasFix |
| ParserErrorCode.FINAL_ENUM: |
| status: hasFix |
| ParserErrorCode.FINAL_METHOD: |
| status: hasFix |
| ParserErrorCode.FINAL_MIXIN: |
| status: hasFix |
| ParserErrorCode.FINAL_MIXIN_CLASS: |
| status: hasFix |
| ParserErrorCode.FUNCTION_TYPED_PARAMETER_VAR: |
| status: noFix |
| ParserErrorCode.GETTER_CONSTRUCTOR: |
| status: hasFix |
| ParserErrorCode.GETTER_IN_FUNCTION: |
| status: needsFix |
| notes: |- |
| Move the getter outside the function, or convert the getter to a function. |
| ParserErrorCode.GETTER_WITH_PARAMETERS: |
| status: hasFix |
| ParserErrorCode.ILLEGAL_ASSIGNMENT_TO_NON_ASSIGNABLE: |
| status: noFix |
| ParserErrorCode.ILLEGAL_PATTERN_ASSIGNMENT_VARIABLE_NAME: |
| status: needsEvaluation |
| ParserErrorCode.ILLEGAL_PATTERN_IDENTIFIER_NAME: |
| status: needsEvaluation |
| ParserErrorCode.ILLEGAL_PATTERN_VARIABLE_NAME: |
| status: needsEvaluation |
| ParserErrorCode.IMPLEMENTS_BEFORE_EXTENDS: |
| status: needsFix |
| notes: |- |
| Move the extends clause first. |
| ParserErrorCode.IMPLEMENTS_BEFORE_ON: |
| status: needsFix |
| notes: |- |
| Move the implements after the on. |
| ParserErrorCode.IMPLEMENTS_BEFORE_WITH: |
| status: needsFix |
| notes: |- |
| Move the implements after the with. |
| ParserErrorCode.IMPORT_DIRECTIVE_AFTER_PART_DIRECTIVE: |
| status: needsFix |
| notes: |- |
| Move the directive to a valid location. |
| ParserErrorCode.INITIALIZED_VARIABLE_IN_FOR_EACH: |
| status: needsFix |
| notes: |- |
| Remove the initializer. |
| ParserErrorCode.INTERFACE_ENUM: |
| status: needsEvaluation |
| ParserErrorCode.INTERFACE_MIXIN: |
| status: hasFix |
| ParserErrorCode.INTERFACE_MIXIN_CLASS: |
| status: hasFix |
| ParserErrorCode.INVALID_AWAIT_IN_FOR: |
| status: noFix |
| notes: |- |
| We could potentially remove the await, but we can't convert the loop and it |
| seems wrong to hide the second option. |
| ParserErrorCode.INVALID_CODE_POINT: |
| status: noFix |
| ParserErrorCode.INVALID_COMMENT_REFERENCE: |
| status: noFix |
| ParserErrorCode.INVALID_CONSTANT_CONST_PREFIX: |
| status: needsFix |
| notes: |- |
| Add parents around the expression following `const`. |
| ParserErrorCode.INVALID_CONSTANT_PATTERN_BINARY: |
| status: hasFix |
| ParserErrorCode.INVALID_CONSTANT_PATTERN_DUPLICATE_CONST: |
| status: needsFix |
| notes: |- |
| Remove all but the first `const`. |
| ParserErrorCode.INVALID_CONSTANT_PATTERN_EMPTY_RECORD_LITERAL: |
| status: noFix |
| ParserErrorCode.INVALID_CONSTANT_PATTERN_GENERIC: |
| status: hasFix |
| ParserErrorCode.INVALID_CONSTANT_PATTERN_NEGATION: |
| status: hasFix |
| ParserErrorCode.INVALID_CONSTANT_PATTERN_UNARY: |
| status: needsFix |
| notes: |- |
| Use `AddConst.new`. |
| ParserErrorCode.INVALID_CONSTRUCTOR_NAME: |
| status: noFix |
| ParserErrorCode.INVALID_GENERIC_FUNCTION_TYPE: |
| status: noFix |
| ParserErrorCode.INVALID_HEX_ESCAPE: |
| status: noFix |
| ParserErrorCode.INVALID_INITIALIZER: |
| status: noFix |
| ParserErrorCode.INVALID_INSIDE_UNARY_PATTERN: |
| status: hasFix |
| ParserErrorCode.INVALID_LITERAL_IN_CONFIGURATION: |
| status: noFix |
| ParserErrorCode.INVALID_OPERATOR: |
| status: noFix |
| ParserErrorCode.INVALID_OPERATOR_FOR_SUPER: |
| status: noFix |
| ParserErrorCode.INVALID_OPERATOR_QUESTIONMARK_PERIOD_FOR_SUPER: |
| status: needsFix |
| notes: |- |
| Replace `?.` with `.`. |
| ParserErrorCode.INVALID_STAR_AFTER_ASYNC: |
| status: needsFix |
| notes: |- |
| Convert to a block body (already an assist, maybe no work needed). |
| ParserErrorCode.INVALID_SUPER_IN_INITIALIZER: |
| status: noFix |
| ParserErrorCode.INVALID_SYNC: |
| status: needsFix |
| notes: |- |
| Convert to a block body (already an assist, maybe no work needed). |
| ParserErrorCode.INVALID_THIS_IN_INITIALIZER: |
| status: noFix |
| ParserErrorCode.INVALID_UNICODE_ESCAPE_STARTED: |
| status: noFix |
| ParserErrorCode.INVALID_UNICODE_ESCAPE_U_BRACKET: |
| status: noFix |
| ParserErrorCode.INVALID_UNICODE_ESCAPE_U_NO_BRACKET: |
| status: noFix |
| ParserErrorCode.INVALID_UNICODE_ESCAPE_U_STARTED: |
| status: noFix |
| ParserErrorCode.INVALID_USE_OF_COVARIANT_IN_EXTENSION: |
| status: hasFix |
| ParserErrorCode.INVALID_USE_OF_IDENTIFIER_AUGMENTED: |
| status: noFix |
| ParserErrorCode.LATE_PATTERN_VARIABLE_DECLARATION: |
| status: hasFix |
| ParserErrorCode.LIBRARY_DIRECTIVE_NOT_FIRST: |
| status: needsFix |
| notes: |- |
| Move the directive. |
| ParserErrorCode.LITERAL_WITH_CLASS_AND_NEW: |
| status: needsFix |
| notes: |- |
| Remove `new List.`. |
| ParserErrorCode.LITERAL_WITH_CLASS: |
| status: needsFix |
| notes: |- |
| Remove the `List.`. |
| ParserErrorCode.LITERAL_WITH_NEW: |
| status: hasFix |
| ParserErrorCode.LOCAL_FUNCTION_DECLARATION_MODIFIER: |
| status: noFix |
| ParserErrorCode.MEMBER_WITH_CLASS_NAME: |
| status: noFix |
| ParserErrorCode.MISSING_ASSIGNABLE_SELECTOR: |
| status: noFix |
| ParserErrorCode.MISSING_ASSIGNMENT_IN_INITIALIZER: |
| status: needsFix |
| notes: |- |
| Add the `=`. |
| ParserErrorCode.MISSING_CATCH_OR_FINALLY: |
| status: noFix |
| ParserErrorCode.MISSING_CLOSING_PARENTHESIS: |
| status: noFix |
| notes: |- |
| The targeted location isn't likely to be the right place for the paren. |
| ParserErrorCode.MISSING_CONST_FINAL_VAR_OR_TYPE: |
| status: hasFix |
| ParserErrorCode.MISSING_ENUM_BODY: |
| status: hasFix |
| ParserErrorCode.MISSING_EXPRESSION_IN_INITIALIZER: |
| status: noFix |
| ParserErrorCode.MISSING_EXPRESSION_IN_THROW: |
| status: noFix |
| ParserErrorCode.MISSING_FUNCTION_BODY: |
| status: hasFix |
| ParserErrorCode.MISSING_FUNCTION_KEYWORD: |
| status: noFix |
| ParserErrorCode.MISSING_FUNCTION_PARAMETERS: |
| status: noFix |
| ParserErrorCode.MISSING_GET: |
| status: needsFix |
| notes: |- |
| Add the `get`. |
| ParserErrorCode.MISSING_IDENTIFIER: |
| status: noFix |
| ParserErrorCode.MISSING_INITIALIZER: |
| status: noFix |
| ParserErrorCode.MISSING_KEYWORD_OPERATOR: |
| status: needsFix |
| notes: |- |
| Add `operator`. |
| ParserErrorCode.MISSING_METHOD_PARAMETERS: |
| status: needsFix |
| notes: |- |
| Add an empty parameter list. |
| ParserErrorCode.MISSING_NAME_FOR_NAMED_PARAMETER: |
| status: noFix |
| ParserErrorCode.MISSING_NAME_IN_LIBRARY_DIRECTIVE: |
| status: noFix |
| ParserErrorCode.MISSING_NAME_IN_PART_OF_DIRECTIVE: |
| status: noFix |
| ParserErrorCode.MISSING_PREFIX_IN_DEFERRED_IMPORT: |
| status: noFix |
| ParserErrorCode.MISSING_PRIMARY_CONSTRUCTOR: |
| status: needsEvaluation |
| ParserErrorCode.MISSING_PRIMARY_CONSTRUCTOR_PARAMETERS: |
| status: needsEvaluation |
| ParserErrorCode.MISSING_STAR_AFTER_SYNC: |
| status: needsFix |
| notes: |- |
| Remove the `sync` keyword. Add a `*`. |
| ParserErrorCode.MISSING_STATEMENT: |
| status: noFix |
| ParserErrorCode.MISSING_TERMINATOR_FOR_PARAMETER_GROUP: |
| status: needsFix |
| notes: |- |
| Add the missing terminator. |
| ParserErrorCode.MISSING_TYPEDEF_PARAMETERS: |
| status: hasFix |
| ParserErrorCode.MISSING_VARIABLE_IN_FOR_EACH: |
| status: noFix |
| ParserErrorCode.MIXED_PARAMETER_GROUPS: |
| status: noFix |
| ParserErrorCode.MIXIN_DECLARES_CONSTRUCTOR: |
| status: hasFix |
| ParserErrorCode.MIXIN_WITH_CLAUSE: |
| status: needsEvaluation |
| ParserErrorCode.MODIFIER_OUT_OF_ORDER: |
| status: noFix |
| notes: |- |
| There isn't enough information to reorder them correctly. Consider making |
| this diagnostic less general so that we'll have information for a fix. |
| ParserErrorCode.MULTIPLE_CLAUSES: |
| status: noFix |
| notes: |- |
| There isn't enough information to know how to fix it. Consider making this |
| diagnostic less general so that we'll have information for a fix. |
| ParserErrorCode.MULTIPLE_EXTENDS_CLAUSES: |
| status: noFix |
| ParserErrorCode.MULTIPLE_IMPLEMENTS_CLAUSES: |
| status: needsFix |
| notes: |- |
| Merge the two clauses. |
| ParserErrorCode.MULTIPLE_LIBRARY_DIRECTIVES: |
| status: noFix |
| ParserErrorCode.MULTIPLE_NAMED_PARAMETER_GROUPS: |
| status: needsFix |
| notes: |- |
| Merge the groups. |
| ParserErrorCode.MULTIPLE_ON_CLAUSES: |
| status: needsFix |
| notes: |- |
| Merge the clauses. |
| ParserErrorCode.MULTIPLE_PART_OF_DIRECTIVES: |
| status: noFix |
| ParserErrorCode.MULTIPLE_POSITIONAL_PARAMETER_GROUPS: |
| status: needsFix |
| notes: |- |
| Merge the groups. |
| ParserErrorCode.MULTIPLE_REPRESENTATION_FIELDS: |
| status: needsFix |
| notes: |- |
| Remove extra fields. |
| Maybe wrap into a record. |
| ParserErrorCode.MULTIPLE_VARIABLES_IN_FOR_EACH: |
| status: noFix |
| ParserErrorCode.MULTIPLE_VARIANCE_MODIFIERS: |
| status: noFix |
| ParserErrorCode.MULTIPLE_WITH_CLAUSES: |
| status: needsFix |
| notes: |- |
| Merge the two clauses. |
| ParserErrorCode.NAMED_FUNCTION_EXPRESSION: |
| status: needsFix |
| notes: |- |
| Remove the name. |
| ParserErrorCode.NAMED_FUNCTION_TYPE: |
| status: needsFix |
| notes: |- |
| Replace the name with `Function`. |
| ParserErrorCode.NAMED_PARAMETER_OUTSIDE_GROUP: |
| status: needsFix |
| notes: |- |
| Move it inside a group, creating the group if it doesn't already exist. |
| ParserErrorCode.NATIVE_CLAUSE_IN_NON_SDK_CODE: |
| status: needsFix |
| notes: |- |
| Remove the native clause. |
| ParserErrorCode.NATIVE_CLAUSE_SHOULD_BE_ANNOTATION: |
| status: noFix |
| ParserErrorCode.NATIVE_FUNCTION_BODY_IN_NON_SDK_CODE: |
| status: needsFix |
| notes: |- |
| Remove the `native` keyword. |
| ParserErrorCode.NON_CONSTRUCTOR_FACTORY: |
| status: needsFix |
| notes: |- |
| Remove the keyword `factory`. |
| ParserErrorCode.NON_IDENTIFIER_LIBRARY_NAME: |
| status: noFix |
| ParserErrorCode.NON_PART_OF_DIRECTIVE_IN_PART: |
| status: needsFix |
| notes: |- |
| Remove the directive. Move the directive to the library. |
| ParserErrorCode.NON_STRING_LITERAL_AS_URI: |
| status: noFix |
| ParserErrorCode.NON_USER_DEFINABLE_OPERATOR: |
| status: noFix |
| ParserErrorCode.NORMAL_BEFORE_OPTIONAL_PARAMETERS: |
| status: needsFix |
| notes: |- |
| Move the normal parameters before the optional. |
| ParserErrorCode.NULL_AWARE_CASCADE_OUT_OF_ORDER: |
| status: needsFix |
| notes: |- |
| Move the `?..` to the first operator in the chain. |
| ParserErrorCode.OUT_OF_ORDER_CLAUSES: |
| status: noFix |
| notes: |- |
| There isn't enough information for a fix. Consider splitting this diagnostic |
| so that each variant has enough information. |
| ParserErrorCode.PATTERN_ASSIGNMENT_DECLARES_VARIABLE: |
| status: hasFix |
| ParserErrorCode.PART_OF_NAME: |
| status: needsFix |
| notes: |- |
| Convert to URI. |
| ParserErrorCode.PATTERN_VARIABLE_DECLARATION_OUTSIDE_FUNCTION_OR_METHOD: |
| status: noFix |
| ParserErrorCode.POSITIONAL_AFTER_NAMED_ARGUMENT: |
| status: noFix |
| notes: |- |
| This probably isn't produced anymore. |
| ParserErrorCode.POSITIONAL_PARAMETER_OUTSIDE_GROUP: |
| status: needsFix |
| notes: |- |
| Add the square brackets. |
| ParserErrorCode.PREFIX_AFTER_COMBINATOR: |
| status: needsFix |
| notes: |- |
| Move the prefix before the combinators. |
| ParserErrorCode.RECORD_LITERAL_ONE_POSITIONAL_NO_TRAILING_COMMA: |
| status: hasFix |
| ParserErrorCode.RECORD_TYPE_ONE_POSITIONAL_NO_TRAILING_COMMA: |
| status: hasFix |
| ParserErrorCode.REDIRECTING_CONSTRUCTOR_WITH_BODY: |
| status: needsFix |
| notes: |- |
| Remove the body. Remove the redirection. |
| ParserErrorCode.REDIRECTION_IN_NON_FACTORY_CONSTRUCTOR: |
| status: needsFix |
| notes: |- |
| Remove the redirection. |
| ParserErrorCode.REPRESENTATION_FIELD_MODIFIER: |
| status: needsFix |
| notes: Remove it. |
| ParserErrorCode.REPRESENTATION_FIELD_TRAILING_COMMA: |
| status: hasFix |
| ParserErrorCode.SEALED_ENUM: |
| status: needsEvaluation |
| ParserErrorCode.SEALED_MIXIN: |
| status: hasFix |
| ParserErrorCode.SEALED_MIXIN_CLASS: |
| status: hasFix |
| ParserErrorCode.SETTER_CONSTRUCTOR: |
| status: hasFix |
| ParserErrorCode.SETTER_IN_FUNCTION: |
| status: needsFix |
| notes: |- |
| Move the setter outside the function. Convert the setter to a function. |
| ParserErrorCode.STACK_OVERFLOW: |
| status: noFix |
| ParserErrorCode.STATIC_CONSTRUCTOR: |
| status: hasFix |
| ParserErrorCode.STATIC_GETTER_WITHOUT_BODY: |
| status: hasFix |
| ParserErrorCode.STATIC_OPERATOR: |
| status: hasFix |
| ParserErrorCode.STATIC_SETTER_WITHOUT_BODY: |
| status: hasFix |
| ParserErrorCode.SWITCH_HAS_CASE_AFTER_DEFAULT_CASE: |
| status: needsFix |
| notes: |- |
| Move the default case to the end. |
| ParserErrorCode.SWITCH_HAS_MULTIPLE_DEFAULT_CASES: |
| status: needsFix |
| notes: |- |
| Merge the bodies. |
| ParserErrorCode.TOP_LEVEL_OPERATOR: |
| status: noFix |
| ParserErrorCode.TYPE_ARGUMENTS_ON_TYPE_VARIABLE: |
| status: needsFix |
| notes: |- |
| Remove the type arguments |
| ParserErrorCode.TYPE_BEFORE_FACTORY: |
| status: needsFix |
| notes: |- |
| Move the `factory` before the type. |
| ParserErrorCode.TYPE_PARAMETER_ON_CONSTRUCTOR: |
| status: needsFix |
| notes: |- |
| Remove the type parameters. |
| ParserErrorCode.TYPE_PARAMETER_ON_OPERATOR: |
| status: needsFix |
| notes: |- |
| Remove the type parameters. |
| ParserErrorCode.TYPEDEF_IN_CLASS: |
| status: needsFix |
| notes: |- |
| Move the typedef to the top level. |
| ParserErrorCode.UNEXPECTED_TERMINATOR_FOR_PARAMETER_GROUP: |
| status: needsFix |
| notes: |- |
| Remove the terminator. |
| ParserErrorCode.UNEXPECTED_TOKEN: |
| status: noFix |
| ParserErrorCode.UNEXPECTED_TOKENS: |
| status: noFix |
| ParserErrorCode.VAR_AND_TYPE: |
| status: hasFix |
| ParserErrorCode.VAR_AS_TYPE_NAME: |
| status: hasFix |
| ParserErrorCode.VAR_CLASS: |
| status: needsFix |
| notes: |- |
| Remove `var`. |
| ParserErrorCode.VAR_ENUM: |
| status: needsFix |
| notes: |- |
| Remove `var`. |
| ParserErrorCode.VAR_RETURN_TYPE: |
| status: hasFix |
| ParserErrorCode.VAR_TYPEDEF: |
| status: needsFix |
| notes: |- |
| Remove `var`. |
| ParserErrorCode.VARIABLE_PATTERN_KEYWORD_IN_DECLARATION_CONTEXT: |
| status: hasFix |
| ParserErrorCode.VOID_WITH_TYPE_ARGUMENTS: |
| status: needsFix |
| notes: |- |
| Remove the type arguments. |
| ParserErrorCode.WITH_BEFORE_EXTENDS: |
| status: needsFix |
| notes: |- |
| Move the extends clause. |
| ParserErrorCode.WRONG_SEPARATOR_FOR_POSITIONAL_PARAMETER: |
| status: hasFix |
| ParserErrorCode.WRONG_TERMINATOR_FOR_PARAMETER_GROUP: |
| status: needsFix |
| notes: |- |
| Replace the terminator with the correct terminator. |
| PubspecWarningCode.ASSET_DOES_NOT_EXIST: |
| status: noFix |
| since: ~2.15 |
| PubspecWarningCode.ASSET_DIRECTORY_DOES_NOT_EXIST: |
| status: noFix |
| since: ~2.15 |
| notes: |- |
| Theoretically we could offer to create the directory, but I suspect that |
| this occurs more frequently as a result of mistyping the directory path. |
| PubspecWarningCode.ASSET_FIELD_NOT_LIST: |
| status: noFix |
| since: ~2.15 |
| PubspecWarningCode.ASSET_MISSING_PATH: |
| status: needsFix |
| notes: We could add a path field with a blank value. |
| PubspecWarningCode.ASSET_NOT_STRING: |
| status: noFix |
| since: ~2.15 |
| PubspecWarningCode.ASSET_NOT_STRING_OR_MAP: |
| status: noFix |
| PubspecWarningCode.ASSET_PATH_NOT_STRING: |
| status: noFix |
| PubspecWarningCode.DEPENDENCIES_FIELD_NOT_MAP: |
| status: noFix |
| since: ~2.15 |
| PubspecWarningCode.DEPRECATED_FIELD: |
| status: needsFix |
| since: ~2.15 |
| PubspecWarningCode.FLUTTER_FIELD_NOT_MAP: |
| status: noFix |
| since: ~2.15 |
| PubspecWarningCode.INVALID_DEPENDENCY: |
| status: noFix |
| PubspecWarningCode.INVALID_PLATFORMS_FIELD: |
| status: needsEvaluation |
| PubspecWarningCode.MISSING_DEPENDENCY: |
| status: hasFix |
| PubspecWarningCode.MISSING_NAME: |
| status: hasFix |
| PubspecWarningCode.NAME_NOT_STRING: |
| status: noFix |
| since: ~2.15 |
| PubspecWarningCode.PATH_DOES_NOT_EXIST: |
| status: noFix |
| PubspecWarningCode.PATH_NOT_POSIX: |
| status: needsFix |
| since: ~2.15 |
| notes: |- |
| If the path is a windows path, then we should be able to convert it. |
| PubspecWarningCode.PATH_PUBSPEC_DOES_NOT_EXIST: |
| status: noFix |
| PubspecWarningCode.PLATFORM_VALUE_DISALLOWED: |
| status: needsEvaluation |
| PubspecWarningCode.UNKNOWN_PLATFORM: |
| status: needsEvaluation |
| PubspecWarningCode.UNNECESSARY_DEV_DEPENDENCY: |
| status: needsFix |
| since: ~2.15 |
| notes: |- |
| The fix is to remove the dependency |
| PubspecWarningCode.WORKSPACE_FIELD_NOT_LIST: |
| status: needsEvaluation |
| PubspecWarningCode.WORKSPACE_VALUE_NOT_STRING: |
| status: needsEvaluation |
| PubspecWarningCode.WORKSPACE_VALUE_NOT_SUBDIRECTORY: |
| status: needsEvaluation |
| ScannerErrorCode.EXPECTED_TOKEN: |
| status: noFix |
| ScannerErrorCode.ILLEGAL_CHARACTER: |
| status: noFix |
| ScannerErrorCode.MISSING_DIGIT: |
| status: noFix |
| ScannerErrorCode.MISSING_HEX_DIGIT: |
| status: noFix |
| ScannerErrorCode.MISSING_IDENTIFIER: |
| status: noFix |
| ScannerErrorCode.MISSING_QUOTE: |
| status: noFix |
| ScannerErrorCode.UNABLE_GET_CONTENT: |
| status: noFix |
| ScannerErrorCode.UNEXPECTED_DOLLAR_IN_STRING: |
| status: noFix |
| ScannerErrorCode.UNSUPPORTED_OPERATOR: |
| status: noFix |
| ScannerErrorCode.UNTERMINATED_MULTI_LINE_COMMENT: |
| status: noFix |
| ScannerErrorCode.UNTERMINATED_STRING_LITERAL: |
| status: noFix |
| StaticWarningCode.DEAD_NULL_AWARE_EXPRESSION: |
| status: hasFix |
| StaticWarningCode.INVALID_NULL_AWARE_OPERATOR: |
| status: hasFix |
| StaticWarningCode.INVALID_NULL_AWARE_OPERATOR_AFTER_SHORT_CIRCUIT: |
| status: hasFix |
| StaticWarningCode.MISSING_ENUM_CONSTANT_IN_SWITCH: |
| status: hasFix |
| StaticWarningCode.UNNECESSARY_NON_NULL_ASSERTION: |
| status: hasFix |
| StaticWarningCode.UNNECESSARY_NULL_ASSERT_PATTERN: |
| status: hasFix |
| StaticWarningCode.UNNECESSARY_NULL_CHECK_PATTERN: |
| status: hasFix |
| WarningCode.ARGUMENT_TYPE_NOT_ASSIGNABLE_TO_ERROR_HANDLER: |
| status: noFix |
| notes: |- |
| Fix depends on user's intent, which can't be known. |
| WarningCode.ASSIGNMENT_OF_DO_NOT_STORE: |
| status: noFix |
| notes: |- |
| Fix depends on user's intent, which can't be known. |
| WarningCode.BODY_MIGHT_COMPLETE_NORMALLY_CATCH_ERROR: |
| status: needsFix |
| WarningCode.CAST_FROM_NULL_ALWAYS_FAILS: |
| status: noFix |
| WarningCode.CAST_FROM_NULLABLE_ALWAYS_FAILS: |
| status: noFix |
| WarningCode.CONSTANT_PATTERN_NEVER_MATCHES_VALUE_TYPE: |
| status: noFix |
| WarningCode.BODY_MIGHT_COMPLETE_NORMALLY_NULLABLE: |
| status: hasFix |
| WarningCode.DEAD_CODE: |
| status: hasFix |
| WarningCode.DEAD_CODE_CATCH_FOLLOWING_CATCH: |
| status: hasFix |
| WarningCode.DEAD_CODE_LATE_WILDCARD_VARIABLE_INITIALIZER: |
| status: hasFix |
| WarningCode.DEAD_CODE_ON_CATCH_SUBTYPE: |
| status: hasFix |
| WarningCode.DEPRECATED_EXPORT_USE: |
| status: hasFix |
| notes: |- |
| A data driven fix using `replacedBy`. |
| WarningCode.DEPRECATED_EXTENDS_FUNCTION: |
| status: needsFix |
| notes: |- |
| The fix is to remove `Function` from where it's referenced. |
| WarningCode.DEPRECATED_IMPLEMENTS_FUNCTION: |
| status: hasFix |
| WarningCode.DEPRECATED_MIXIN_FUNCTION: |
| status: needsFix |
| notes: |- |
| The fix is to remove `Function` from where it's referenced. |
| WarningCode.DEPRECATED_NEW_IN_COMMENT_REFERENCE: |
| status: hasFix |
| WarningCode.DOC_DIRECTIVE_ARGUMENT_WRONG_FORMAT: |
| status: noFix |
| WarningCode.DOC_DIRECTIVE_HAS_EXTRA_ARGUMENTS: |
| status: needsFix |
| notes: |- |
| The fix is to remove the extra arguments. |
| WarningCode.DOC_DIRECTIVE_HAS_UNEXPECTED_NAMED_ARGUMENT: |
| status: needsFix |
| notes: |- |
| The fix is to remove the unexpected named argument. |
| WarningCode.DOC_DIRECTIVE_MISSING_CLOSING_BRACE: |
| status: needsFix |
| notes: Add the closing brace at the end of the line. |
| WarningCode.DOC_DIRECTIVE_MISSING_CLOSING_TAG: |
| status: needsFix |
| notes: Add the appropriate closing tag, perhaps on the line just following. |
| WarningCode.DOC_DIRECTIVE_MISSING_ONE_ARGUMENT: |
| status: noFix |
| WarningCode.DOC_DIRECTIVE_MISSING_OPENING_TAG: |
| status: needsFix |
| notes: |- |
| I can think of two: Offer to insert the appropriate starting tag (maybe |
| on the preceding line), and offer to change the end-tag to the start-tag. |
| WarningCode.DOC_DIRECTIVE_MISSING_THREE_ARGUMENTS: |
| status: noFix |
| WarningCode.DOC_DIRECTIVE_MISSING_TWO_ARGUMENTS: |
| status: noFix |
| WarningCode.DOC_DIRECTIVE_UNKNOWN: |
| status: noFix |
| WarningCode.DOC_IMPORT_CANNOT_BE_DEFERRED: |
| status: needsFix |
| WarningCode.DOC_IMPORT_CANNOT_HAVE_CONFIGURATIONS: |
| status: needsFix |
| WarningCode.DUPLICATE_EXPORT: |
| status: needsFix |
| notes: |- |
| One fix is to remove the duplicated export. |
| WarningCode.DUPLICATE_HIDDEN_NAME: |
| status: hasFix |
| WarningCode.DUPLICATE_IGNORE: |
| status: needsFix |
| notes: |- |
| One fix is to remove the duplicated error code. |
| WarningCode.DUPLICATE_IMPORT: |
| status: hasFix |
| WarningCode.DUPLICATE_SHOWN_NAME: |
| status: hasFix |
| WarningCode.EQUAL_ELEMENTS_IN_SET: |
| status: noFix |
| notes: |- |
| Fix depends on user's intent, which can't be known. |
| WarningCode.EQUAL_KEYS_IN_MAP: |
| status: noFix |
| notes: |- |
| Fix depends on user's intent, which can't be known. |
| WarningCode.INFERENCE_FAILURE_ON_COLLECTION_LITERAL: |
| status: noFix |
| WarningCode.INFERENCE_FAILURE_ON_FUNCTION_INVOCATION: |
| status: noFix |
| WarningCode.INFERENCE_FAILURE_ON_FUNCTION_RETURN_TYPE: |
| status: noFix |
| WarningCode.INFERENCE_FAILURE_ON_GENERIC_INVOCATION: |
| status: noFix |
| WarningCode.INFERENCE_FAILURE_ON_INSTANCE_CREATION: |
| status: noFix |
| WarningCode.INFERENCE_FAILURE_ON_UNINITIALIZED_VARIABLE: |
| status: noFix |
| WarningCode.INFERENCE_FAILURE_ON_UNTYPED_PARAMETER: |
| status: noFix |
| WarningCode.INVALID_ANNOTATION_TARGET: |
| status: hasFix |
| WarningCode.INVALID_EXPORT_OF_INTERNAL_ELEMENT: |
| status: needsFix |
| notes: |- |
| Low priority, because this is likely not encountered often. |
| |
| The fix is to update the export directive so that the name is no longer |
| exported. |
| WarningCode.INVALID_EXPORT_OF_INTERNAL_ELEMENT_INDIRECTLY: |
| status: needsFix |
| notes: |- |
| Low priority, because this is likely not encountered often and the only fix |
| is not likely to be the most common fix. |
| |
| The fix is to update the export directive so that the member using the name |
| is no longer exported. |
| WarningCode.INVALID_FACTORY_METHOD_DECL: |
| status: noFix |
| WarningCode.INVALID_FACTORY_METHOD_IMPL: |
| status: noFix |
| WarningCode.INVALID_INTERNAL_ANNOTATION: |
| status: hasFix |
| WarningCode.INVALID_LITERAL_ANNOTATION: |
| status: hasFix |
| WarningCode.INVALID_LANGUAGE_VERSION_OVERRIDE_AT_SIGN: |
| status: needsFix |
| notes: |- |
| If we can identify enough information to do so, the fix is to rewrite the |
| comment into a valid form. |
| WarningCode.INVALID_LANGUAGE_VERSION_OVERRIDE_EQUALS: |
| status: needsFix |
| notes: |- |
| If we can identify enough information to do so, the fix is to rewrite the |
| comment into a valid form. |
| WarningCode.INVALID_LANGUAGE_VERSION_OVERRIDE_GREATER: |
| status: needsFix |
| notes: |- |
| If we can identify enough information to do so, the fix is to rewrite the |
| comment into a valid form. |
| WarningCode.INVALID_LANGUAGE_VERSION_OVERRIDE_LOCATION: |
| status: needsFix |
| notes: |- |
| If we can identify enough information to do so, the fix is to rewrite the |
| comment into a valid form. |
| WarningCode.INVALID_LANGUAGE_VERSION_OVERRIDE_LOWER_CASE: |
| status: needsFix |
| notes: |- |
| If we can identify enough information to do so, the fix is to rewrite the |
| comment into a valid form. |
| WarningCode.INVALID_LANGUAGE_VERSION_OVERRIDE_NUMBER: |
| status: needsFix |
| notes: |- |
| If we can identify enough information to do so, the fix is to rewrite the |
| comment into a valid form. |
| WarningCode.INVALID_LANGUAGE_VERSION_OVERRIDE_PREFIX: |
| status: needsFix |
| notes: |- |
| If we can identify enough information to do so, the fix is to rewrite the |
| comment into a valid form. |
| WarningCode.INVALID_LANGUAGE_VERSION_OVERRIDE_TRAILING_CHARACTERS: |
| status: needsFix |
| notes: |- |
| If we can identify enough information to do so, the fix is to rewrite the |
| comment into a valid form. |
| WarningCode.INVALID_LANGUAGE_VERSION_OVERRIDE_TWO_SLASHES: |
| status: needsFix |
| notes: |- |
| If we can identify enough information to do so, the fix is to rewrite the |
| comment into a valid form. |
| WarningCode.INVALID_NON_VIRTUAL_ANNOTATION: |
| status: hasFix |
| WarningCode.INVALID_OVERRIDE_OF_NON_VIRTUAL_MEMBER: |
| status: noFix |
| WarningCode.INVALID_REOPEN_ANNOTATION: |
| status: hasFix |
| WarningCode.INVALID_REQUIRED_NAMED_PARAM: |
| status: hasFix |
| WarningCode.INVALID_REQUIRED_OPTIONAL_POSITIONAL_PARAM: |
| status: hasFix |
| WarningCode.INVALID_REQUIRED_POSITIONAL_PARAM: |
| status: hasFix |
| WarningCode.invalid_use_of_do_not_submit_member: |
| status: needsEvaluation |
| WarningCode.INVALID_USE_OF_INTERNAL_MEMBER: |
| status: noFix |
| WarningCode.INVALID_USE_OF_PROTECTED_MEMBER: |
| status: noFix |
| WarningCode.INVALID_USE_OF_VISIBLE_FOR_OVERRIDING_MEMBER: |
| status: noFix |
| since: ~2.15 |
| WarningCode.INVALID_USE_OF_VISIBLE_FOR_TEMPLATE_MEMBER: |
| status: noFix |
| WarningCode.INVALID_USE_OF_VISIBLE_FOR_TESTING_MEMBER: |
| status: noFix |
| WarningCode.INVALID_VISIBILITY_ANNOTATION: |
| status: hasFix |
| WarningCode.INVALID_VISIBLE_FOR_OVERRIDING_ANNOTATION: |
| status: hasFix |
| WarningCode.INVALID_VISIBLE_OUTSIDE_TEMPLATE_ANNOTATION: |
| status: needsEvaluation |
| WarningCode.MACRO_WARNING: |
| status: noFix |
| WarningCode.MISSING_OVERRIDE_OF_MUST_BE_OVERRIDDEN_ONE: |
| status: hasFix |
| WarningCode.MISSING_OVERRIDE_OF_MUST_BE_OVERRIDDEN_TWO: |
| status: hasFix |
| WarningCode.MISSING_OVERRIDE_OF_MUST_BE_OVERRIDDEN_THREE_PLUS: |
| status: hasFix |
| WarningCode.MISSING_REQUIRED_PARAM: |
| status: hasFix |
| WarningCode.MISSING_REQUIRED_PARAM_WITH_DETAILS: |
| status: hasFix |
| WarningCode.MIXIN_ON_SEALED_CLASS: |
| status: noFix |
| notes: |- |
| `sealed` annotation is likely to be replaced by the `sealed` keyword |
| in the next stable release. |
| WarningCode.MUST_BE_IMMUTABLE: |
| status: noFix |
| WarningCode.MUST_CALL_SUPER: |
| status: hasFix |
| WarningCode.NON_CONST_ARGUMENT_FOR_CONST_PARAMETER: |
| status: needsEvaluation |
| WarningCode.NON_CONST_CALL_TO_LITERAL_CONSTRUCTOR: |
| status: needsFix |
| notes: |- |
| The fix is to add `const` before the constructor invocation. |
| WarningCode.NON_CONST_CALL_TO_LITERAL_CONSTRUCTOR_USING_NEW: |
| status: hasFix |
| WarningCode.NON_NULLABLE_EQUALS_PARAMETER: |
| status: needsFix |
| notes: |- |
| The fix is to remove the question mark if the parameter has one (if the |
| written type is an alias, it may not). |
| WarningCode.NULLABLE_TYPE_IN_CATCH_CLAUSE: |
| status: hasFix |
| WarningCode.NULL_ARGUMENT_TO_NON_NULL_TYPE: |
| status: noFix |
| since: ~2.15 |
| WarningCode.NULL_CHECK_ALWAYS_FAILS: |
| status: hasFix |
| WarningCode.OVERRIDE_ON_NON_OVERRIDING_FIELD: |
| status: hasFix |
| WarningCode.OVERRIDE_ON_NON_OVERRIDING_GETTER: |
| status: hasFix |
| WarningCode.OVERRIDE_ON_NON_OVERRIDING_METHOD: |
| status: hasFix |
| WarningCode.OVERRIDE_ON_NON_OVERRIDING_SETTER: |
| status: hasFix |
| WarningCode.PATTERN_NEVER_MATCHES_VALUE_TYPE: |
| status: noFix |
| WarningCode.RECEIVER_OF_TYPE_NEVER: |
| status: needsFix |
| notes: |- |
| We _could_ remove the thing being received (method invocation, etc.) |
| WarningCode.REDECLARE_ON_NON_REDECLARING_MEMBER: |
| status: hasFix |
| WarningCode.REMOVED_LINT_USE: |
| status: needsFix |
| WarningCode.REPLACED_LINT_USE: |
| status: needsFix |
| WarningCode.RETURN_OF_DO_NOT_STORE: |
| status: needsFix |
| notes: |- |
| The fix is to add the annotation to the enclosing function. |
| WarningCode.RETURN_OF_INVALID_TYPE_FROM_CATCH_ERROR: |
| status: noFix |
| WarningCode.RETURN_TYPE_INVALID_FOR_CATCH_ERROR: |
| status: noFix |
| WarningCode.SDK_VERSION_CONSTRUCTOR_TEAROFFS: |
| status: needsFix |
| since: 2.15 |
| WarningCode.SDK_VERSION_GT_GT_GT_OPERATOR: |
| status: hasFix |
| WarningCode.SDK_VERSION_SINCE: |
| status: needsFix |
| notes: |- |
| The fix would be to update the SDK constraints. The user would still need to |
| run `dart pub` before the diagnostic would go away, and there's a question |
| whether a fix that doesn't actually fix the problem is something we want. |
| WarningCode.STRICT_RAW_TYPE: |
| status: needsFix |
| notes: |- |
| One fix would be to add an explicit `<dynamic>`, but we can also provide |
| more helpful fixes that pretend inference works the way the user may |
| have thought it did. For example in: `List a = <int>[];`, we can add |
| `<int>` after `List`. |
| WarningCode.SUBTYPE_OF_SEALED_CLASS: |
| status: needsFix |
| notes: |- |
| `sealed` annotation is likely to be replaced by the `sealed` keyword |
| in the next stable release. |
| Remove the sealed class in the `extends` or `implements` clause. |
| Use RemoveNameFromDeclarationClause. |
| WarningCode.TEXT_DIRECTION_CODE_POINT_IN_COMMENT: |
| status: hasFix |
| WarningCode.TEXT_DIRECTION_CODE_POINT_IN_LITERAL: |
| status: hasFix |
| WarningCode.TYPE_CHECK_IS_NOT_NULL: |
| status: hasFix |
| WarningCode.TYPE_CHECK_IS_NULL: |
| status: hasFix |
| WarningCode.UNDEFINED_HIDDEN_NAME: |
| status: hasFix |
| WarningCode.UNDEFINED_REFERENCED_PARAMETER: |
| status: needsFix |
| notes: |- |
| Can try to find the correct parameter name. |
| WarningCode.UNDEFINED_SHOWN_NAME: |
| status: hasFix |
| WarningCode.UNIGNORABLE_IGNORE: |
| status: needsFix |
| notes: |- |
| Remove the ignore comment (or one code in the comment). |
| WarningCode.UNNECESSARY_CAST_PATTERN: |
| status: needsFix |
| notes: |- |
| The fix is to remove the cast pattern, assuming that doing so won't produce |
| invalid code. |
| WarningCode.UNNECESSARY_CAST: |
| status: hasFix |
| WarningCode.UNNECESSARY_FINAL: |
| status: hasFix |
| WarningCode.UNNECESSARY_IGNORE: |
| status: needsFix |
| notes: |- |
| Remove the ignore comment (or one code in the comment). |
| WarningCode.UNNECESSARY_NAN_COMPARISON_FALSE: |
| status: hasFix |
| notes: |- |
| Add another fix to remove the comparison. |
| WarningCode.UNNECESSARY_NAN_COMPARISON_TRUE: |
| status: hasFix |
| notes: |- |
| Add another fix to remove the comparison. |
| WarningCode.UNNECESSARY_NO_SUCH_METHOD: |
| status: needsFix |
| notes: |- |
| Remove the noSuchMethod implementation. |
| WarningCode.UNNECESSARY_NULL_COMPARISON_ALWAYS_NULL_FALSE: |
| status: hasFix |
| WarningCode.UNNECESSARY_NULL_COMPARISON_ALWAYS_NULL_TRUE: |
| status: hasFix |
| WarningCode.UNNECESSARY_NULL_COMPARISON_NEVER_NULL_FALSE: |
| status: hasFix |
| WarningCode.UNNECESSARY_NULL_COMPARISON_NEVER_NULL_TRUE: |
| status: hasFix |
| WarningCode.UNNECESSARY_QUESTION_MARK: |
| status: hasFix |
| WarningCode.UNNECESSARY_SET_LITERAL: |
| status: hasFix |
| WarningCode.UNNECESSARY_TYPE_CHECK_FALSE: |
| status: hasFix |
| WarningCode.UNNECESSARY_TYPE_CHECK_TRUE: |
| status: hasFix |
| WarningCode.UNNECESSARY_WILDCARD_PATTERN: |
| status: hasFix |
| WarningCode.UNREACHABLE_SWITCH_CASE: |
| status: hasFix |
| WarningCode.UNUSED_CATCH_CLAUSE: |
| status: hasFix |
| WarningCode.UNUSED_CATCH_STACK: |
| status: hasFix |
| WarningCode.UNUSED_ELEMENT: |
| status: hasFix |
| WarningCode.UNUSED_ELEMENT_PARAMETER: |
| status: hasFix |
| WarningCode.UNUSED_FIELD: |
| status: hasFix |
| WarningCode.UNUSED_IMPORT: |
| status: hasFix |
| WarningCode.UNUSED_LABEL: |
| status: hasFix |
| WarningCode.UNUSED_LOCAL_VARIABLE: |
| status: hasFix |
| WarningCode.UNUSED_RESULT: |
| status: noFix |
| notes: |- |
| There is no predictable common way in which a result _should_ be used. |
| WarningCode.UNUSED_RESULT_WITH_MESSAGE: |
| status: noFix |
| notes: |- |
| There is no predictable common way in which a result _should_ be used. |
| WarningCode.UNUSED_SHOWN_NAME: |
| status: hasFix |
| WarningCode.URI_DOES_NOT_EXIST_IN_DOC_IMPORT: |
| status: needsFix |
| notes: |- |
| The same fix as CompileTimeErrorCode.URI_DOES_NOT_EXIST |