Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

Commit 03e4737

Browse files
committed
bulk fix for prefer_contains
Change-Id: Ifb45c1d9dbb19ca7ac6ba20ce9da1b7712827d76 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/156120 Reviewed-by: Brian Wilkerson <[email protected]>
1 parent d983751 commit 03e4737

File tree

3 files changed

+45
-0
lines changed

3 files changed

+45
-0
lines changed

pkg/analysis_server/lib/src/services/correction/bulk_fix_processor.dart

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import 'package:analysis_server/src/services/correction/change_workspace.dart';
1010
import 'package:analysis_server/src/services/correction/dart/abstract_producer.dart';
1111
import 'package:analysis_server/src/services/correction/dart/add_override.dart';
1212
import 'package:analysis_server/src/services/correction/dart/convert_documentation_into_line.dart';
13+
import 'package:analysis_server/src/services/correction/dart/convert_to_contains.dart';
1314
import 'package:analysis_server/src/services/correction/dart/remove_const.dart';
1415
import 'package:analysis_server/src/services/correction/dart/remove_initializer.dart';
1516
import 'package:analysis_server/src/services/correction/dart/remove_unnecessary_new.dart';
@@ -33,6 +34,7 @@ class BulkFixProcessor {
3334
LintNames.avoid_init_to_null: RemoveInitializer.newInstance,
3435
LintNames.avoid_single_cascade_in_expression_statements:
3536
ReplaceCascadeWithDot.newInstance,
37+
LintNames.prefer_contains: ConvertToContains.newInstance,
3638
LintNames.prefer_equal_for_default_values:
3739
ReplaceColonWithEquals.newInstance,
3840
LintNames.slash_for_doc_comments: ConvertDocumentationIntoLine.newInstance,
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
// Copyright (c) 2020, the Dart project authors. Please see the AUTHORS file
2+
// for details. All rights reserved. Use of this source code is governed by a
3+
// BSD-style license that can be found in the LICENSE file.
4+
5+
import 'package:analysis_server/src/services/linter/lint_names.dart';
6+
import 'package:test_reflective_loader/test_reflective_loader.dart';
7+
8+
import 'bulk_fix_processor.dart';
9+
10+
void main() {
11+
defineReflectiveSuite(() {
12+
defineReflectiveTests(ConvertToContainsTest);
13+
});
14+
}
15+
16+
@reflectiveTest
17+
class ConvertToContainsTest extends BulkFixProcessorTest {
18+
@override
19+
String get lintCode => LintNames.prefer_contains;
20+
21+
Future<void> test_singleFile() async {
22+
await resolveTestUnit('''
23+
bool f(List<int> list, int value) {
24+
return -1 != list.indexOf(value);
25+
}
26+
27+
bool f2(List<int> list, int value) {
28+
return 0 > list.indexOf(value);
29+
}
30+
''');
31+
await assertHasFix('''
32+
bool f(List<int> list, int value) {
33+
return list.contains(value);
34+
}
35+
36+
bool f2(List<int> list, int value) {
37+
return !list.contains(value);
38+
}
39+
''');
40+
}
41+
}

pkg/analysis_server/test/src/services/correction/fix/bulk/test_all.dart

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import 'package:test_reflective_loader/test_reflective_loader.dart';
77
import 'add_override_test.dart' as add_override;
88
import 'convert_documentation_into_line_test.dart'
99
as convert_documentation_into_line;
10+
import 'convert_to_contains_test.dart' as convert_to_contains;
1011
import 'remove_initializer_test.dart' as remove_initializer;
1112
import 'remove_unnecessary_const_test.dart' as remove_unnecessary_const;
1213
import 'remove_unnecessary_new_test.dart' as remove_unnecessary_new;
@@ -16,6 +17,7 @@ void main() {
1617
defineReflectiveSuite(() {
1718
add_override.main();
1819
convert_documentation_into_line.main();
20+
convert_to_contains.main();
1921
remove_initializer.main();
2022
remove_unnecessary_const.main();
2123
remove_unnecessary_new.main();

0 commit comments

Comments
 (0)