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();