File tree 4 files changed +52
-4
lines changed
lib/src/services/correction/dart
test/src/services/correction/fix
4 files changed +52
-4
lines changed Original file line number Diff line number Diff line change @@ -56,7 +56,9 @@ class CreateClass extends ResolvedCorrectionProducer {
56
56
}
57
57
className = targetNode.name2.lexeme;
58
58
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 ) {
60
62
className = targetNode.nameOfType;
61
63
requiresConstConstructor | = _requiresConstConstructor (targetNode);
62
64
} else if (targetNode is PrefixedIdentifier ) {
Original file line number Diff line number Diff line change @@ -145,8 +145,8 @@ class CreateGetter extends CreateFieldOrGetter {
145
145
InstanceElement ? targetElement;
146
146
if (target is ExtensionOverride ) {
147
147
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;
150
150
staticModifier = true ;
151
151
} else if (target != null ) {
152
152
// prepare target interface type
Original file line number Diff line number Diff line change @@ -41,6 +41,30 @@ class Test {
41
41
]);
42
42
}
43
43
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
+
44
68
Future <void > test_extends () async {
45
69
await resolveTestCode ('''
46
70
class MyClass extends BaseClass {}
Original file line number Diff line number Diff line change @@ -620,7 +620,29 @@ void f(A a) {
620
620
await assertNoFix ();
621
621
}
622
622
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 {
624
646
await resolveTestCode ('''
625
647
extension E on String {
626
648
}
You can’t perform that action at this time.
0 commit comments