Skip to content

Commit 2258ea7

Browse files
pqCommit Queue
authored and
Commit Queue
committed
[quick fix] new correction for unnecessary_underscores
Bug: #56595 Change-Id: If7faeca31b4340fcd4b7d5f4642caf284cf36308 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/403383 Commit-Queue: Phil Quitslund <[email protected]> Reviewed-by: Brian Wilkerson <[email protected]>
1 parent a33ae0f commit 2258ea7

File tree

4 files changed

+52
-1
lines changed

4 files changed

+52
-1
lines changed

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

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,12 @@ class ConvertToWildcardVariable extends ResolvedCorrectionProducer {
3030
if (!wildcardVariablesEnabled) return;
3131

3232
var node = this.node;
33+
34+
if (node is FormalParameter) {
35+
await computeFormalParameterConversion(builder, node);
36+
return;
37+
}
38+
3339
if (node is! VariableDeclaration) return;
3440

3541
var nameToken = node.name;
@@ -55,4 +61,13 @@ class ConvertToWildcardVariable extends ResolvedCorrectionProducer {
5561
}
5662
});
5763
}
64+
65+
Future<void> computeFormalParameterConversion(
66+
ChangeBuilder builder,
67+
FormalParameter node,
68+
) async {
69+
await builder.addDartFileEdit(file, (builder) {
70+
builder.addSimpleReplacement(range.token(node.name!), '_');
71+
});
72+
}
5873
}

pkg/analysis_server/lib/src/services/correction/error_fix_status.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2456,7 +2456,7 @@ LintCode.unnecessary_this:
24562456
LintCode.unnecessary_to_list_in_spreads:
24572457
status: hasFix
24582458
LintCode.unnecessary_underscores:
2459-
status: needsFix
2459+
status: hasFix
24602460
LintCode.unreachable_from_main:
24612461
status: hasFix
24622462
LintCode.unrelated_type_equality_checks_in_expression:

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -511,6 +511,7 @@ final _builtInLintProducers = <LintCode, List<ProducerGenerator>>{
511511
],
512512
LinterLintCode.unnecessary_to_list_in_spreads: [RemoveToList.new],
513513
LinterLintCode.unnecessary_this: [RemoveThisExpression.new],
514+
LinterLintCode.unnecessary_underscores: [ConvertToWildcardVariable.new],
514515
LinterLintCode.unreachable_from_main: [RemoveUnusedElement.new],
515516
LinterLintCode.use_colored_box: [ReplaceContainerWithColoredBox.new],
516517
LinterLintCode.use_decorated_box: [ReplaceWithDecoratedBox.new],

pkg/analysis_server/test/src/services/correction/fix/convert_to_wildcard_variable_test.dart

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,15 @@
44

55
import 'package:analysis_server/src/services/correction/fix.dart';
66
import 'package:analyzer_plugin/utilities/fixes/fixes.dart';
7+
import 'package:linter/src/lint_names.dart';
78
import 'package:test_reflective_loader/test_reflective_loader.dart';
89

910
import 'fix_processor.dart';
1011

1112
void main() {
1213
defineReflectiveSuite(() {
1314
defineReflectiveTests(ConvertToWildcardVariableTest);
15+
defineReflectiveTests(ConvertUnnecessaryUnderscoresTest);
1416
});
1517
}
1618

@@ -116,3 +118,36 @@ void f() {
116118
await assertNoFix();
117119
}
118120
}
121+
122+
@reflectiveTest
123+
class ConvertUnnecessaryUnderscoresTest extends FixProcessorLintTest {
124+
@override
125+
FixKind get kind => DartFixKind.CONVERT_TO_WILDCARD_VARIABLE;
126+
127+
@override
128+
String get lintCode => LintNames.unnecessary_underscores;
129+
130+
Future<void> test_functionParameter() async {
131+
await resolveTestCode(r'''
132+
void f(int __) {}
133+
''');
134+
await assertHasFix(r'''
135+
void f(int _) {}
136+
''');
137+
}
138+
139+
Future<void> test_localVariable() async {
140+
await resolveTestCode(r'''
141+
void f() {
142+
// ignore: UNUSED_LOCAL_VARIABLE
143+
int __ = 0;
144+
}
145+
''');
146+
await assertHasFix(r'''
147+
void f() {
148+
// ignore: UNUSED_LOCAL_VARIABLE
149+
int _ = 0;
150+
}
151+
''');
152+
}
153+
}

0 commit comments

Comments
 (0)