From 03e4737f31151663badde83c5514389f8587efff Mon Sep 17 00:00:00 2001 From: pq Date: Tue, 28 Jul 2020 18:24:26 +0000 Subject: [PATCH] bulk fix for `prefer_contains` Change-Id: Ifb45c1d9dbb19ca7ac6ba20ce9da1b7712827d76 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/156120 Reviewed-by: Brian Wilkerson --- .../correction/bulk_fix_processor.dart | 2 + .../fix/bulk/convert_to_contains_test.dart | 41 +++++++++++++++++++ .../correction/fix/bulk/test_all.dart | 2 + 3 files changed, 45 insertions(+) create mode 100644 pkg/analysis_server/test/src/services/correction/fix/bulk/convert_to_contains_test.dart 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 79b52ecb8d6..8a6caf76516 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 @@ -10,6 +10,7 @@ import 'package:analysis_server/src/services/correction/change_workspace.dart'; import 'package:analysis_server/src/services/correction/dart/abstract_producer.dart'; import 'package:analysis_server/src/services/correction/dart/add_override.dart'; import 'package:analysis_server/src/services/correction/dart/convert_documentation_into_line.dart'; +import 'package:analysis_server/src/services/correction/dart/convert_to_contains.dart'; import 'package:analysis_server/src/services/correction/dart/remove_const.dart'; import 'package:analysis_server/src/services/correction/dart/remove_initializer.dart'; import 'package:analysis_server/src/services/correction/dart/remove_unnecessary_new.dart'; @@ -33,6 +34,7 @@ class BulkFixProcessor { LintNames.avoid_init_to_null: RemoveInitializer.newInstance, LintNames.avoid_single_cascade_in_expression_statements: ReplaceCascadeWithDot.newInstance, + LintNames.prefer_contains: ConvertToContains.newInstance, LintNames.prefer_equal_for_default_values: ReplaceColonWithEquals.newInstance, LintNames.slash_for_doc_comments: ConvertDocumentationIntoLine.newInstance, diff --git a/pkg/analysis_server/test/src/services/correction/fix/bulk/convert_to_contains_test.dart b/pkg/analysis_server/test/src/services/correction/fix/bulk/convert_to_contains_test.dart new file mode 100644 index 00000000000..5e7445b39e4 --- /dev/null +++ b/pkg/analysis_server/test/src/services/correction/fix/bulk/convert_to_contains_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(ConvertToContainsTest); + }); +} + +@reflectiveTest +class ConvertToContainsTest extends BulkFixProcessorTest { + @override + String get lintCode => LintNames.prefer_contains; + + Future test_singleFile() async { + await resolveTestUnit(''' +bool f(List list, int value) { + return -1 != list.indexOf(value); +} + +bool f2(List list, int value) { + return 0 > list.indexOf(value); +} +'''); + await assertHasFix(''' +bool f(List list, int value) { + return list.contains(value); +} + +bool f2(List list, int value) { + return !list.contains(value); +} +'''); + } +} 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 16794c1ca34..201e749e66a 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 @@ -7,6 +7,7 @@ import 'package:test_reflective_loader/test_reflective_loader.dart'; import 'add_override_test.dart' as add_override; import 'convert_documentation_into_line_test.dart' as convert_documentation_into_line; +import 'convert_to_contains_test.dart' as convert_to_contains; import 'remove_initializer_test.dart' as remove_initializer; import 'remove_unnecessary_const_test.dart' as remove_unnecessary_const; import 'remove_unnecessary_new_test.dart' as remove_unnecessary_new; @@ -16,6 +17,7 @@ void main() { defineReflectiveSuite(() { add_override.main(); convert_documentation_into_line.main(); + convert_to_contains.main(); remove_initializer.main(); remove_unnecessary_const.main(); remove_unnecessary_new.main();