Skip to content

Commit cb21aa5

Browse files
FMorschelCommit Queue
authored and
Commit Queue
committed
[DAS] Fixes triggers for Create class and Create getter quick-fixes
Fixes: #60527 Change-Id: I85e75c89d9b6057f516e4356865cee19c6eee27c Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/422161 Reviewed-by: Brian Wilkerson <[email protected]> Commit-Queue: Samuel Rawlins <[email protected]> Auto-Submit: Felipe Morschel <[email protected]> Reviewed-by: Samuel Rawlins <[email protected]>
1 parent 62824ba commit cb21aa5

File tree

4 files changed

+52
-4
lines changed

4 files changed

+52
-4
lines changed

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

+3-1
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,9 @@ class CreateClass extends ResolvedCorrectionProducer {
5656
}
5757
className = targetNode.name2.lexeme;
5858
requiresConstConstructor |= _requiresConstConstructor(targetNode);
59-
} else if (targetNode is SimpleIdentifier) {
59+
} else if (targetNode case SimpleIdentifier(
60+
:var parent,
61+
) when parent is! PropertyAccess && parent is! PrefixedIdentifier) {
6062
className = targetNode.nameOfType;
6163
requiresConstConstructor |= _requiresConstConstructor(targetNode);
6264
} else if (targetNode is PrefixedIdentifier) {

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

+2-2
Original file line numberDiff line numberDiff line change
@@ -145,8 +145,8 @@ class CreateGetter extends CreateFieldOrGetter {
145145
InstanceElement? targetElement;
146146
if (target is ExtensionOverride) {
147147
targetElement = target.element2;
148-
} else if (target is Identifier && target.element is ExtensionElement) {
149-
targetElement = target.element as InstanceElement?;
148+
} else if (target case Identifier(element: InstanceElement element)) {
149+
targetElement = element;
150150
staticModifier = true;
151151
} else if (target != null) {
152152
// prepare target interface type

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

+24
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,30 @@ class Test {
4141
]);
4242
}
4343

44+
Future<void> test_class_instanceMember() async {
45+
await resolveTestCode('''
46+
class A {
47+
}
48+
49+
void f() {
50+
int _ = A().Test;
51+
}
52+
''');
53+
await assertNoFix();
54+
}
55+
56+
Future<void> test_class_staticMember() async {
57+
await resolveTestCode('''
58+
class A {
59+
}
60+
61+
void f() {
62+
int _ = A.Test;
63+
}
64+
''');
65+
await assertNoFix();
66+
}
67+
4468
Future<void> test_extends() async {
4569
await resolveTestCode('''
4670
class MyClass extends BaseClass {}

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

+23-1
Original file line numberDiff line numberDiff line change
@@ -620,7 +620,29 @@ void f(A a) {
620620
await assertNoFix();
621621
}
622622

623-
Future<void> test_static() async {
623+
Future<void> test_static_class() async {
624+
await resolveTestCode('''
625+
class C {
626+
}
627+
628+
void f(String s) {
629+
int v = C.test;
630+
print(v);
631+
}
632+
''');
633+
await assertHasFix('''
634+
class C {
635+
static int get test => null;
636+
}
637+
638+
void f(String s) {
639+
int v = C.test;
640+
print(v);
641+
}
642+
''');
643+
}
644+
645+
Future<void> test_static_extension() async {
624646
await resolveTestCode('''
625647
extension E on String {
626648
}

0 commit comments

Comments
 (0)