[analyzer] fix `require_trailing_commas` for assertions
Fixes #48605
Change-Id: I62b449b326827e6f289d90f96d8d7658d28d0615
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/237694
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
diff --git a/pkg/analysis_server/lib/src/services/correction/dart/add_trailing_comma.dart b/pkg/analysis_server/lib/src/services/correction/dart/add_trailing_comma.dart
index 4da7cda..1b4aed0 100644
--- a/pkg/analysis_server/lib/src/services/correction/dart/add_trailing_comma.dart
+++ b/pkg/analysis_server/lib/src/services/correction/dart/add_trailing_comma.dart
@@ -25,16 +25,20 @@
Future<void> compute(ChangeBuilder builder) async {
final node = this.node;
if (node is ArgumentList) {
- await builder.addDartFileEdit(file, (builder) {
- builder.addSimpleInsertion(node.arguments.last.end, ',');
- });
+ await _insertComma(builder, node.arguments.last);
} else if (node is FormalParameterList) {
- await builder.addDartFileEdit(file, (builder) {
- builder.addSimpleInsertion(node.parameters.last.end, ',');
- });
+ await _insertComma(builder, node.parameters.last);
+ } else if (node is Assertion) {
+ await _insertComma(builder, node.message ?? node.condition);
}
}
+ Future<void> _insertComma(ChangeBuilder builder, AstNode lastNode) async {
+ await builder.addDartFileEdit(file, (builder) {
+ builder.addSimpleInsertion(lastNode.end, ',');
+ });
+ }
+
/// Return an instance of this class. Used as a tear-off in `FixProcessor`.
static AddTrailingComma newInstance() => AddTrailingComma();
}
diff --git a/pkg/analysis_server/test/src/services/correction/fix/add_trailing_comma_test.dart b/pkg/analysis_server/test/src/services/correction/fix/add_trailing_comma_test.dart
index fe27f30..474e1d8 100644
--- a/pkg/analysis_server/test/src/services/correction/fix/add_trailing_comma_test.dart
+++ b/pkg/analysis_server/test/src/services/correction/fix/add_trailing_comma_test.dart
@@ -72,6 +72,36 @@
@override
String get lintCode => LintNames.require_trailing_commas;
+ Future<void> test_assert_initializer() async {
+ await resolveTestCode('''
+class C {
+ C(a) : assert(a,
+ '');
+}
+''');
+ await assertHasFix('''
+class C {
+ C(a) : assert(a,
+ '',);
+}
+''');
+ }
+
+ Future<void> test_assert_statement() async {
+ await resolveTestCode('''
+void f(a, b) {
+ assert(a ||
+ b);
+}
+''');
+ await assertHasFix('''
+void f(a, b) {
+ assert(a ||
+ b,);
+}
+''');
+ }
+
Future<void> test_named() async {
await resolveTestCode('''
void f({a, b}) {