Skip to content

Commit bd42ae8

Browse files
keertipCommit Queue
authored and
Commit Queue
committed
Add tests to class_to_enum and class_to_mixin using class modifiers.
Bug: 51496 Change-Id: Ib37979b39b7c63daa89c0746ac5c231a2269ef46 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/286948 Reviewed-by: Phil Quitslund <[email protected]> Reviewed-by: Brian Wilkerson <[email protected]> Commit-Queue: Keerti Parthasarathy <[email protected]>
1 parent c021746 commit bd42ae8

File tree

2 files changed

+118
-0
lines changed

2 files changed

+118
-0
lines changed

pkg/analysis_server/test/src/services/correction/assist/convert_class_to_enum_test.dart

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -242,6 +242,18 @@ abstract class E {}
242242
await assertNoAssistAt('E {');
243243
}
244244

245+
Future<void> test_invalid_base() async {
246+
await resolveTestCode('''
247+
base class E {
248+
final int index;
249+
250+
static const E c0 = E(0);
251+
const E(this.index);
252+
}
253+
''');
254+
await assertNoAssistAt('E {');
255+
}
256+
245257
Future<void> test_invalid_constructorUsedInConstructor() async {
246258
await resolveTestCode('''
247259
class _E {
@@ -318,6 +330,17 @@ class _E {
318330
await assertNoAssistAt('E {');
319331
}
320332

333+
Future<void> test_invalid_final() async {
334+
await resolveTestCode('''
335+
final class E {
336+
static const E c = E();
337+
338+
const E();
339+
}
340+
''');
341+
await assertNoAssistAt('E {');
342+
}
343+
321344
Future<void> test_invalid_hasPart() async {
322345
// Change this test if the assist becomes able to look for references to the
323346
// class and its constructors in part files.
@@ -416,6 +439,17 @@ class _E {
416439
await assertNoAssistAt('E {');
417440
}
418441

442+
Future<void> test_invalid_sealed() async {
443+
await resolveTestCode('''
444+
sealed class E {
445+
final int index;
446+
447+
const E._(this.index);
448+
}
449+
''');
450+
await assertNoAssistAt('E {');
451+
}
452+
419453
Future<void> test_minimal_privateClass() async {
420454
await resolveTestCode('''
421455
class _E {

pkg/analysis_server/test/src/services/correction/assist/convert_class_to_mixin_test.dart

Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,39 @@ mixin A {}
2828
''');
2929
}
3030

31+
Future<void> test_base_extendsWithImplements_super_both() async {
32+
await resolveTestCode('''
33+
class A {
34+
a() {}
35+
}
36+
mixin class B {
37+
b() {}
38+
}
39+
class C {}
40+
base class D extends A with B implements C {
41+
d() {
42+
super.a();
43+
super.b();
44+
}
45+
}
46+
''');
47+
await assertHasAssistAt('D', '''
48+
class A {
49+
a() {}
50+
}
51+
mixin class B {
52+
b() {}
53+
}
54+
class C {}
55+
base mixin D on A, B implements C {
56+
d() {
57+
super.a();
58+
super.b();
59+
}
60+
}
61+
''');
62+
}
63+
3164
Future<void> test_extends_noSuper() async {
3265
await resolveTestCode('''
3366
class A {}
@@ -337,6 +370,17 @@ mixin D on B implements A, C {
337370
''');
338371
}
339372

373+
Future<void> test_final_implements() async {
374+
await resolveTestCode('''
375+
class A {}
376+
final class B implements A {}
377+
''');
378+
await assertHasAssistAt('B', '''
379+
class A {}
380+
final mixin B implements A {}
381+
''');
382+
}
383+
340384
Future<void> test_implements() async {
341385
await resolveTestCode('''
342386
class A {}
@@ -373,6 +417,46 @@ mixin A {}
373417
''');
374418
}
375419

420+
Future<void> test_sealed_extends_noSuper() async {
421+
await resolveTestCode('''
422+
class A {}
423+
sealed class B extends A {}
424+
''');
425+
await assertHasAssistAt('B', '''
426+
class A {}
427+
sealed mixin B implements A {}
428+
''');
429+
}
430+
431+
Future<void> test_sealed_extendsWith_super_extends() async {
432+
await resolveTestCode('''
433+
class A {
434+
a() {}
435+
}
436+
mixin class B {
437+
b() {}
438+
}
439+
sealed class C extends A with B {
440+
c() {
441+
super.a();
442+
}
443+
}
444+
''');
445+
await assertHasAssistAt('C', '''
446+
class A {
447+
a() {}
448+
}
449+
mixin class B {
450+
b() {}
451+
}
452+
sealed mixin C on A implements B {
453+
c() {
454+
super.a();
455+
}
456+
}
457+
''');
458+
}
459+
376460
Future<void> test_typeParameters() async {
377461
await resolveTestCode('''
378462
class A<T> {}

0 commit comments

Comments
 (0)