quick fix for `REPRESENTATION_FIELD_TRAILING_COMMA`
See: https://github.com/dart-lang/sdk/issues/55917
Change-Id: Ib278e49749618325c8c5fcc7a5627840f87c4553
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/371401
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Auto-Submit: Phil Quitslund <pquitslund@google.com>
diff --git a/pkg/analysis_server/lib/src/services/correction/dart/remove_comma.dart b/pkg/analysis_server/lib/src/services/correction/dart/remove_comma.dart
index f7da8ca..1dd3ba0 100644
--- a/pkg/analysis_server/lib/src/services/correction/dart/remove_comma.dart
+++ b/pkg/analysis_server/lib/src/services/correction/dart/remove_comma.dart
@@ -9,15 +9,23 @@
import 'package:analyzer_plugin/utilities/fixes/fixes.dart';
class RemoveComma extends ResolvedCorrectionProducer {
+ final String commaKind;
final String targetDescription;
RemoveComma.emptyRecordLiteral({required CorrectionProducerContext context})
: this._(context: context, targetDescription: 'empty record literals');
-
RemoveComma.emptyRecordType({required CorrectionProducerContext context})
: this._(context: context, targetDescription: 'empty record types');
+ RemoveComma.representationField({required CorrectionProducerContext context})
+ : this._(
+ context: context,
+ commaKind: 'trailing ',
+ targetDescription: 'representation fields');
- RemoveComma._({required super.context, required this.targetDescription});
+ RemoveComma._(
+ {required super.context,
+ this.commaKind = '',
+ required this.targetDescription});
@override
CorrectionApplicability get applicability =>
@@ -27,7 +35,7 @@
FixKind get fixKind => DartFixKind.REMOVE_COMMA;
@override
- List<String>? get multiFixArguments => [targetDescription];
+ List<String>? get multiFixArguments => [commaKind, targetDescription];
@override
FixKind get multiFixKind => DartFixKind.REMOVE_COMMA_MULTI;
diff --git a/pkg/analysis_server/lib/src/services/correction/error_fix_status.yaml b/pkg/analysis_server/lib/src/services/correction/error_fix_status.yaml
index dc21030..0356c88 100644
--- a/pkg/analysis_server/lib/src/services/correction/error_fix_status.yaml
+++ b/pkg/analysis_server/lib/src/services/correction/error_fix_status.yaml
@@ -45,8 +45,8 @@
#
# Stats:
# - 42 "needsEvaluation"
-# - 323 "needsFix"
-# - 424 "hasFix"
+# - 322 "needsFix"
+# - 425 "hasFix"
# - 517 "noFix"
AnalysisOptionsErrorCode.INCLUDED_FILE_PARSE_ERROR:
@@ -3186,9 +3186,7 @@
status: needsFix
notes: Remove it.
ParserErrorCode.REPRESENTATION_FIELD_TRAILING_COMMA:
- status: needsFix
- notes: |-
- Remove the comma.
+ status: hasFix
ParserErrorCode.SEALED_ENUM:
status: needsEvaluation
ParserErrorCode.SEALED_MIXIN:
diff --git a/pkg/analysis_server/lib/src/services/correction/fix.dart b/pkg/analysis_server/lib/src/services/correction/fix.dart
index 803970f..e72157f 100644
--- a/pkg/analysis_server/lib/src/services/correction/fix.dart
+++ b/pkg/analysis_server/lib/src/services/correction/fix.dart
@@ -1026,7 +1026,7 @@
static const REMOVE_COMMA_MULTI = FixKind(
'dart.fix.remove.comma.multi',
DartFixKindPriority.IN_FILE,
- 'Remove commas from {0} everywhere in file',
+ 'Remove {0}commas from {1} everywhere in file',
);
static const REMOVE_COMPARISON = FixKind(
'dart.fix.remove.comparison',
diff --git a/pkg/analysis_server/lib/src/services/correction/fix_internal.dart b/pkg/analysis_server/lib/src/services/correction/fix_internal.dart
index ce8c8ee..b465e41 100644
--- a/pkg/analysis_server/lib/src/services/correction/fix_internal.dart
+++ b/pkg/analysis_server/lib/src/services/correction/fix_internal.dart
@@ -1487,6 +1487,9 @@
ParserErrorCode.RECORD_TYPE_ONE_POSITIONAL_NO_TRAILING_COMMA: [
AddTrailingComma.new,
],
+ ParserErrorCode.REPRESENTATION_FIELD_TRAILING_COMMA: [
+ RemoveComma.representationField,
+ ],
ParserErrorCode.SEALED_MIXIN: [
RemoveLexeme.modifier,
],
diff --git a/pkg/analysis_server/test/src/services/correction/fix/remove_comma_test.dart b/pkg/analysis_server/test/src/services/correction/fix/remove_comma_test.dart
index e94a586..a7dc295 100644
--- a/pkg/analysis_server/test/src/services/correction/fix/remove_comma_test.dart
+++ b/pkg/analysis_server/test/src/services/correction/fix/remove_comma_test.dart
@@ -59,4 +59,13 @@
()? f() => null;
''');
}
+
+ Future<void> test_representationFieldTrailingComma() async {
+ await resolveTestCode('''
+extension type A(int i,) {}
+''');
+ await assertHasFix('''
+extension type A(int i) {}
+''');
+ }
}