[DAS] Adds priority tests for `CHANGE_TYPE_ANNOTATION` fix
This also changes the priority of some fixes:
- `ADD_AWAIT` and `ADD_AWAIT_MULTI` are now one point higher than standard
- `ADD_EXPLICIT_CAST` and `ADD_EXPLICIT_CAST_MULTI` are now one point lower than standard
This ensures that when these fixes are available, `ADD_AWAIT` is preferred over `CHANGE_TYPE_ANNOTATION` and lastly `ADD_EXPLICIT_CAST`.
Fixes: https://github.com/dart-lang/sdk/issues/61421
Change-Id: I89cf9d9dd386773ebcb998207213cf6e636a060e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/448643
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Auto-Submit: Felipe Morschel <git@fmorschel.dev>
diff --git a/pkg/analysis_server/lib/src/services/correction/dart/add_await.dart b/pkg/analysis_server/lib/src/services/correction/dart/add_await.dart
index 285a019..7e81d3b 100644
--- a/pkg/analysis_server/lib/src/services/correction/dart/add_await.dart
+++ b/pkg/analysis_server/lib/src/services/correction/dart/add_await.dart
@@ -37,9 +37,6 @@
@override
FixKind get fixKind => DartFixKind.ADD_AWAIT;
- @override
- FixKind get multiFixKind => DartFixKind.ADD_AWAIT_MULTI;
-
FunctionBody? get _functionBodyIfNotAsync {
var body = node.thisOrAncestorOfType<FunctionBody>();
if (body != null && !body.isAsynchronous && body.star == null) {
diff --git a/pkg/analysis_server/lib/src/services/correction/fix.dart b/pkg/analysis_server/lib/src/services/correction/fix.dart
index 396ac0c..ccdef60 100644
--- a/pkg/analysis_server/lib/src/services/correction/fix.dart
+++ b/pkg/analysis_server/lib/src/services/correction/fix.dart
@@ -39,14 +39,9 @@
);
static const ADD_AWAIT = FixKind(
'dart.fix.add.await',
- DartFixKindPriority.standard,
+ DartFixKindPriority.standard + 1,
"Add 'await' keyword",
);
- static const ADD_AWAIT_MULTI = FixKind(
- 'dart.fix.add.await.multi',
- DartFixKindPriority.inFile,
- "Add 'await's everywhere in file",
- );
static const ADD_CALL_SUPER = FixKind(
'dart.fix.add.callSuper',
DartFixKindPriority.standard,
@@ -149,7 +144,7 @@
);
static const ADD_EXPLICIT_CAST = FixKind(
'dart.fix.add.explicitCast',
- DartFixKindPriority.standard,
+ DartFixKindPriority.standard - 1,
'Add cast',
);
static const ADD_EXPLICIT_CAST_MULTI = FixKind(
diff --git a/pkg/analysis_server/test/src/services/correction/fix/change_type_annotation_test.dart b/pkg/analysis_server/test/src/services/correction/fix/change_type_annotation_test.dart
index 3eab490..4d163c7 100644
--- a/pkg/analysis_server/test/src/services/correction/fix/change_type_annotation_test.dart
+++ b/pkg/analysis_server/test/src/services/correction/fix/change_type_annotation_test.dart
@@ -10,11 +10,30 @@
void main() {
defineReflectiveSuite(() {
+ defineReflectiveTests(ChangeTypeAnnotationPriorityTest);
defineReflectiveTests(ChangeTypeAnnotationTest);
});
}
@reflectiveTest
+class ChangeTypeAnnotationPriorityTest extends FixPriorityTest {
+ Future<void> test_futureType() async {
+ await resolveTestCode('''
+Future<int> foo() async => 0;
+
+Future<void> bar() async {
+ int _ = foo();
+}
+''');
+ await assertFixPriorityOrder([
+ DartFixKind.ADD_AWAIT,
+ DartFixKind.CHANGE_TYPE_ANNOTATION,
+ DartFixKind.ADD_EXPLICIT_CAST,
+ ]);
+ }
+}
+
+@reflectiveTest
class ChangeTypeAnnotationTest extends FixProcessorTest {
@override
FixKind get kind => DartFixKind.CHANGE_TYPE_ANNOTATION;