Skip to content

Commit e1f9348

Browse files
FMorschelCommit Queue
authored andcommitted
[DAS] Fixes Create extension method in tearoffs
Fixes: #61192 Change-Id: I92bdbb4132dd86f473faf3a4159ff6de3a6e2ad9 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/455760 Reviewed-by: Samuel Rawlins <[email protected]> Reviewed-by: Brian Wilkerson <[email protected]> Commit-Queue: Brian Wilkerson <[email protected]> Auto-Submit: Felipe Morschel <[email protected]>
1 parent de6b38c commit e1f9348

File tree

3 files changed

+40
-4
lines changed

3 files changed

+40
-4
lines changed

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -773,22 +773,22 @@ abstract final class DartFixKind {
773773
);
774774
static const createExtensionGetter = FixKind(
775775
'dart.fix.create.extension.getter',
776-
DartFixKindPriority.ignore,
776+
DartFixKindPriority.standard - 3, // Lower than createExtensionMethod
777777
"Create extension getter '{0}'",
778778
);
779779
static const createExtensionMethod = FixKind(
780780
'dart.fix.create.extension.method',
781-
DartFixKindPriority.ignore,
781+
DartFixKindPriority.standard - 2,
782782
"Create extension method '{0}'",
783783
);
784784
static const createExtensionOperator = FixKind(
785785
'dart.fix.create.extension.operator',
786-
DartFixKindPriority.ignore,
786+
DartFixKindPriority.standard - 2,
787787
"Create extension operator '{0}'",
788788
);
789789
static const createExtensionSetter = FixKind(
790790
'dart.fix.create.extension.setter',
791-
DartFixKindPriority.ignore,
791+
DartFixKindPriority.standard - 3, // Matching createExtensionGetter
792792
"Create extension setter '{0}'",
793793
);
794794
static const createField = FixKind(

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -956,6 +956,7 @@ final _builtInNonLintGenerators = <DiagnosticCode, List<ProducerGenerator>>{
956956
],
957957
CompileTimeErrorCode.undefinedGetter: [
958958
ChangeTo.getterOrSetter,
959+
CreateExtensionMethod.new,
959960
CreateExtensionGetter.new,
960961
CreateField.new,
961962
CreateGetter.new,

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

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ void main() {
1414
defineReflectiveTests(CreateExtensionGetterTest);
1515
defineReflectiveTests(CreateExtensionMethodTest);
1616
defineReflectiveTests(CreateExtensionOperatorTest);
17+
defineReflectiveTests(CreateExtensionPriorityTest);
1718
defineReflectiveTests(CreateExtensionSetterTest);
1819
});
1920
}
@@ -1581,6 +1582,23 @@ extension <T extends num> on T {
15811582
''');
15821583
}
15831584

1585+
Future<void> test_tearoff() async {
1586+
await resolveTestCode('''
1587+
class A<T> {}
1588+
1589+
T? Function() i<T>(A<T> a) => a.test;
1590+
''');
1591+
await assertHasFix('''
1592+
class A<T> {}
1593+
1594+
T? Function() i<T>(A<T> a) => a.test;
1595+
1596+
extension <T> on A<T> {
1597+
T? test() {}
1598+
}
1599+
''');
1600+
}
1601+
15841602
Future<void> test_typeArgument_parameter() async {
15851603
await resolveTestCode('''
15861604
void f<T>(T p) {
@@ -1933,6 +1951,23 @@ extension on String {
19331951
}
19341952
}
19351953

1954+
@reflectiveTest
1955+
class CreateExtensionPriorityTest extends FixPriorityTest {
1956+
Future<void> test_method_getter() async {
1957+
await resolveTestCode('''
1958+
class A {}
1959+
void f(void Function() fn) {
1960+
f(A().test);
1961+
}
1962+
''');
1963+
await assertFixPriorityOrder([
1964+
DartFixKind.createField,
1965+
DartFixKind.createExtensionMethod,
1966+
DartFixKind.createExtensionGetter,
1967+
]);
1968+
}
1969+
}
1970+
19361971
@reflectiveTest
19371972
class CreateExtensionSetterTest extends FixProcessorTest {
19381973
@override

0 commit comments

Comments
 (0)