fix for replace_colon_with_equals
Change-Id: Ifc4f20d6de04d506b783661ce7f0dbcc01440ca9
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/96135
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Phil Quitslund <pquitslund@google.com>
diff --git a/pkg/analysis_server/lib/src/services/correction/fix.dart b/pkg/analysis_server/lib/src/services/correction/fix.dart
index e1c59f3..2a516d4 100644
--- a/pkg/analysis_server/lib/src/services/correction/fix.dart
+++ b/pkg/analysis_server/lib/src/services/correction/fix.dart
@@ -264,6 +264,8 @@
static const REPLACE_BOOLEAN_WITH_BOOL = const FixKind(
'REPLACE_BOOLEAN_WITH_BOOL', 50, "Replace 'boolean' with 'bool'",
appliedTogetherMessage: "Replace all 'boolean' with 'bool' in file");
+ static const REPLACE_COLON_WITH_EQUALS =
+ const FixKind('REPLACE_COLON_WITH_EQUALS', 50, "Replace ':' with '='");
static const REPLACE_FINAL_WITH_CONST = const FixKind(
'REPLACE_FINAL_WITH_CONST', 50, "Replace 'final' with 'const'");
static const REPLACE_RETURN_TYPE_FUTURE = const FixKind(
diff --git a/pkg/analysis_server/lib/src/services/correction/fix_internal.dart b/pkg/analysis_server/lib/src/services/correction/fix_internal.dart
index fc78e84..424ce3c 100644
--- a/pkg/analysis_server/lib/src/services/correction/fix_internal.dart
+++ b/pkg/analysis_server/lib/src/services/correction/fix_internal.dart
@@ -598,6 +598,9 @@
if (errorCode.name == LintNames.prefer_const_declarations) {
await _addFix_replaceFinalWithConst();
}
+ if (errorCode.name == LintNames.prefer_equal_for_default_values) {
+ await _addFix_replaceColonWithEquals();
+ }
if (name == LintNames.prefer_final_fields) {
await _addFix_makeVariableFinal();
}
@@ -3173,6 +3176,17 @@
args: [newName]);
}
+ Future<void> _addFix_replaceColonWithEquals() async {
+ if (node is DefaultFormalParameter) {
+ var changeBuilder = _newDartChangeBuilder();
+ await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
+ builder.addSimpleReplacement(
+ range.token((node as DefaultFormalParameter).separator), '=');
+ });
+ _addFixFromBuilder(changeBuilder, DartFixKind.REPLACE_COLON_WITH_EQUALS);
+ }
+ }
+
Future<void> _addFix_replaceFinalWithConst() async {
// TODO(brianwilkerson) Determine whether this await is necessary.
await null;
@@ -4356,6 +4370,8 @@
static const String prefer_conditional_assignment =
'prefer_conditional_assignment';
static const String prefer_const_declarations = 'prefer_const_declarations';
+ static const String prefer_equal_for_default_values =
+ 'prefer_equal_for_default_values';
static const String prefer_final_fields = 'prefer_final_fields';
static const String prefer_final_locals = 'prefer_final_locals';
static const String prefer_is_not_empty = 'prefer_is_not_empty';
diff --git a/pkg/analysis_server/test/src/services/correction/fix/replace_colon_with_equals_test.dart b/pkg/analysis_server/test/src/services/correction/fix/replace_colon_with_equals_test.dart
new file mode 100644
index 0000000..375a662
--- /dev/null
+++ b/pkg/analysis_server/test/src/services/correction/fix/replace_colon_with_equals_test.dart
@@ -0,0 +1,38 @@
+// Copyright (c) 2019, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'package:analysis_server/src/services/correction/fix.dart';
+import 'package:analysis_server/src/services/correction/fix_internal.dart';
+import 'package:analyzer_plugin/utilities/fixes/fixes.dart';
+import 'package:test_reflective_loader/test_reflective_loader.dart';
+
+import 'fix_processor.dart';
+
+main() {
+ defineReflectiveSuite(() {
+ defineReflectiveTests(ReplaceColonWithEqualsTest);
+ });
+}
+
+@reflectiveTest
+class ReplaceColonWithEqualsTest extends FixProcessorLintTest {
+ @override
+ FixKind get kind => DartFixKind.REPLACE_COLON_WITH_EQUALS;
+
+ @override
+ String get lintCode => LintNames.prefer_equal_for_default_values;
+
+ test_method() async {
+ await resolveTestUnit('''
+void f1({int a}) { }
+
+f1({a/*LINT*/: 1}) => null;
+''');
+ await assertHasFix('''
+void f1({int a}) { }
+
+f1({a/*LINT*/= 1}) => null;
+''');
+ }
+}
diff --git a/pkg/analysis_server/test/src/services/correction/fix/test_all.dart b/pkg/analysis_server/test/src/services/correction/fix/test_all.dart
index 3ab6d1b..542c207 100644
--- a/pkg/analysis_server/test/src/services/correction/fix/test_all.dart
+++ b/pkg/analysis_server/test/src/services/correction/fix/test_all.dart
@@ -82,6 +82,7 @@
import 'remove_unused_import_test.dart' as remove_unused_import;
import 'rename_to_camel_case_test.dart' as rename_to_camel_case;
import 'replace_boolean_with_bool_test.dart' as replace_boolean_with_bool;
+import 'replace_colon_with_equals_test.dart' as replace_colon_with_equals;
import 'replace_final_with_const_test.dart' as replace_final_with_const;
import 'replace_return_type_future_test.dart' as replace_return_type_future;
import 'replace_var_with_dynamic_test.dart' as replace_var_with_dynamic;
@@ -170,6 +171,7 @@
remove_unused_import.main();
rename_to_camel_case.main();
replace_boolean_with_bool.main();
+ replace_colon_with_equals.main();
replace_final_with_const.main();
replace_return_type_future.main();
replace_var_with_dynamic.main();