bulk fix for `prefer_iterable_whereType`
Change-Id: I490bb4cc6e03adb606b45a5aae9dbbc763747124
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/158364
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Phil Quitslund <pquitslund@google.com>
diff --git a/pkg/analysis_server/lib/src/services/correction/bulk_fix_processor.dart b/pkg/analysis_server/lib/src/services/correction/bulk_fix_processor.dart
index c2ad770..72328fa 100644
--- a/pkg/analysis_server/lib/src/services/correction/bulk_fix_processor.dart
+++ b/pkg/analysis_server/lib/src/services/correction/bulk_fix_processor.dart
@@ -17,6 +17,7 @@
import 'package:analysis_server/src/services/correction/dart/convert_to_contains.dart';
import 'package:analysis_server/src/services/correction/dart/convert_to_generic_function_syntax.dart';
import 'package:analysis_server/src/services/correction/dart/convert_to_if_null.dart';
+import 'package:analysis_server/src/services/correction/dart/convert_to_where_type.dart';
import 'package:analysis_server/src/services/correction/dart/create_method.dart';
import 'package:analysis_server/src/services/correction/dart/make_final.dart';
import 'package:analysis_server/src/services/correction/dart/remove_argument.dart';
@@ -91,6 +92,7 @@
LintNames.prefer_if_null_operators: ConvertToIfNull.newInstance,
LintNames.prefer_is_empty: ReplaceWithIsEmpty.newInstance,
LintNames.prefer_is_not_empty: UesIsNotEmpty.newInstance,
+ LintNames.prefer_iterable_whereType: ConvertToWhereType.newInstance,
LintNames.prefer_single_quotes: ConvertToSingleQuotes.newInstance,
LintNames.prefer_spread_collections: ConvertAddAllToSpread.newInstance,
LintNames.slash_for_doc_comments: ConvertDocumentationIntoLine.newInstance,
diff --git a/pkg/analysis_server/test/src/services/correction/fix/bulk/convert_to_where_type_test.dart b/pkg/analysis_server/test/src/services/correction/fix/bulk/convert_to_where_type_test.dart
new file mode 100644
index 0000000..12bc2eb
--- /dev/null
+++ b/pkg/analysis_server/test/src/services/correction/fix/bulk/convert_to_where_type_test.dart
@@ -0,0 +1,41 @@
+// Copyright (c) 2020, 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/linter/lint_names.dart';
+import 'package:test_reflective_loader/test_reflective_loader.dart';
+
+import 'bulk_fix_processor.dart';
+
+void main() {
+ defineReflectiveSuite(() {
+ defineReflectiveTests(ConvertToWhereTypeTest);
+ });
+}
+
+@reflectiveTest
+class ConvertToWhereTypeTest extends BulkFixProcessorTest {
+ @override
+ String get lintCode => LintNames.prefer_iterable_whereType;
+
+ Future<void> test_singleFile() async {
+ await resolveTestUnit('''
+Iterable<C> f(List<Object> list) {
+ return list.where((e) => e is C);
+}
+Iterable<C> f2(List<Object> list) =>
+ list.where((e) => e is C);
+
+class C {}
+''');
+ await assertHasFix('''
+Iterable<C> f(List<Object> list) {
+ return list.whereType<C>();
+}
+Iterable<C> f2(List<Object> list) =>
+ list.whereType<C>();
+
+class C {}
+''');
+ }
+}
diff --git a/pkg/analysis_server/test/src/services/correction/fix/bulk/test_all.dart b/pkg/analysis_server/test/src/services/correction/fix/bulk/test_all.dart
index fe52986..b7a2148 100644
--- a/pkg/analysis_server/test/src/services/correction/fix/bulk/test_all.dart
+++ b/pkg/analysis_server/test/src/services/correction/fix/bulk/test_all.dart
@@ -16,6 +16,7 @@
import 'convert_to_single_quoted_strings_test.dart'
as convert_to_single_quoted_strings;
import 'convert_to_spread_test.dart' as convert_to_spread;
+import 'convert_to_where_type_test.dart' as convert_to_where_type;
import 'create_method_test.dart' as create_method;
import 'make_final_test.dart' as make_final;
import 'remove_argument_test.dart' as remove_argument;
@@ -55,6 +56,7 @@
convert_to_if_null.main();
convert_to_single_quoted_strings.main();
convert_to_spread.main();
+ convert_to_where_type.main();
create_method.main();
make_final.main();
remove_argument.main();