| Index: pkg/analysis_server/lib/src/services/correction/fix.dart
|
| diff --git a/pkg/analysis_server/lib/src/services/correction/fix.dart b/pkg/analysis_server/lib/src/services/correction/fix.dart
|
| index e1f81f641a1f8c561b41587a752098c60d5f3e7e..cd1900a1f76c88cfead8cb8b7620f77f7e255a90 100644
|
| --- a/pkg/analysis_server/lib/src/services/correction/fix.dart
|
| +++ b/pkg/analysis_server/lib/src/services/correction/fix.dart
|
| @@ -10,6 +10,7 @@ import 'package:analyzer/file_system/file_system.dart';
|
| import 'package:analyzer/src/generated/engine.dart';
|
| import 'package:analyzer/src/generated/error.dart';
|
| import 'package:analyzer/src/generated/java_engine.dart';
|
| +import 'package:analyzer/src/generated/parser.dart';
|
|
|
| /**
|
| * Compute and return the fixes available for the given [error]. The error was
|
| @@ -38,6 +39,77 @@ List<Fix> computeFixes(ServerPlugin plugin, ResourceProvider resourceProvider,
|
| }
|
|
|
| /**
|
| + * Return true if this [errorCode] is likely to have a fix associated with it.
|
| + */
|
| +bool hasFix(ErrorCode errorCode) {
|
| + switch (errorCode) {
|
| + case StaticWarningCode.UNDEFINED_CLASS_BOOLEAN:
|
| + case StaticWarningCode.CONCRETE_CLASS_WITH_ABSTRACT_MEMBER:
|
| + case StaticWarningCode.EXTRA_POSITIONAL_ARGUMENTS:
|
| + case StaticWarningCode.NEW_WITH_UNDEFINED_CONSTRUCTOR:
|
| + case StaticWarningCode.NON_ABSTRACT_CLASS_INHERITS_ABSTRACT_MEMBER_ONE:
|
| + case StaticWarningCode.NON_ABSTRACT_CLASS_INHERITS_ABSTRACT_MEMBER_TWO:
|
| + case StaticWarningCode.NON_ABSTRACT_CLASS_INHERITS_ABSTRACT_MEMBER_THREE:
|
| + case StaticWarningCode.NON_ABSTRACT_CLASS_INHERITS_ABSTRACT_MEMBER_FOUR:
|
| + case StaticWarningCode.NON_ABSTRACT_CLASS_INHERITS_ABSTRACT_MEMBER_FIVE_PLUS:
|
| + case StaticWarningCode.CAST_TO_NON_TYPE:
|
| + case StaticWarningCode.TYPE_TEST_WITH_UNDEFINED_NAME:
|
| + case StaticWarningCode.UNDEFINED_CLASS:
|
| + case StaticWarningCode.FINAL_NOT_INITIALIZED:
|
| + case StaticWarningCode.FINAL_NOT_INITIALIZED_CONSTRUCTOR_1:
|
| + case StaticWarningCode.FINAL_NOT_INITIALIZED_CONSTRUCTOR_2:
|
| + case StaticWarningCode.FINAL_NOT_INITIALIZED_CONSTRUCTOR_3_PLUS:
|
| + case StaticWarningCode.UNDEFINED_IDENTIFIER:
|
| + return true;
|
| + }
|
| +
|
| + switch (errorCode) {
|
| + case CompileTimeErrorCode.CONST_INITIALIZED_WITH_NON_CONSTANT_VALUE:
|
| + case CompileTimeErrorCode.INVALID_ANNOTATION:
|
| + case CompileTimeErrorCode.NO_DEFAULT_SUPER_CONSTRUCTOR_EXPLICIT:
|
| + case CompileTimeErrorCode.PART_OF_NON_PART:
|
| + case CompileTimeErrorCode.UNDEFINED_CONSTRUCTOR_IN_INITIALIZER_DEFAULT:
|
| + case CompileTimeErrorCode.URI_DOES_NOT_EXIST:
|
| + return true;
|
| + }
|
| +
|
| + switch (errorCode) {
|
| + case HintCode.DEAD_CODE:
|
| + case HintCode.DIVISION_OPTIMIZATION:
|
| + case HintCode.TYPE_CHECK_IS_NOT_NULL:
|
| + case HintCode.TYPE_CHECK_IS_NULL:
|
| + case HintCode.UNDEFINED_GETTER:
|
| + case HintCode.UNDEFINED_SETTER:
|
| + case HintCode.UNNECESSARY_CAST:
|
| + case HintCode.UNUSED_CATCH_CLAUSE:
|
| + case HintCode.UNUSED_CATCH_STACK:
|
| + case HintCode.UNUSED_IMPORT:
|
| + case HintCode.UNDEFINED_METHOD:
|
| + return true;
|
| + }
|
| +
|
| + switch (errorCode) {
|
| + case ParserErrorCode.EXPECTED_TOKEN:
|
| + case ParserErrorCode.GETTER_WITH_PARAMETERS:
|
| + case ParserErrorCode.VAR_AS_TYPE_NAME:
|
| + return true;
|
| + }
|
| +
|
| + switch (errorCode) {
|
| + case StaticTypeWarningCode.ILLEGAL_ASYNC_RETURN_TYPE:
|
| + case StaticTypeWarningCode.INSTANCE_ACCESS_TO_STATIC_MEMBER:
|
| + case StaticTypeWarningCode.INVOCATION_OF_NON_FUNCTION:
|
| + case StaticTypeWarningCode.NON_TYPE_AS_TYPE_ARGUMENT:
|
| + case StaticTypeWarningCode.UNDEFINED_FUNCTION:
|
| + case StaticTypeWarningCode.UNDEFINED_GETTER:
|
| + case StaticTypeWarningCode.UNDEFINED_METHOD:
|
| + case StaticTypeWarningCode.UNDEFINED_SETTER:
|
| + return true;
|
| + }
|
| + return false;
|
| +}
|
| +
|
| +/**
|
| * An enumeration of possible quick fix kinds.
|
| */
|
| class DartFixKind {
|
|
|