@@ -15,75 +15,105 @@ main() {
15
15
16
16
@reflectiveTest
17
17
class MixinInheritsFromNotObjectTest extends PubPackageResolutionTest {
18
- test_classDeclaration_extends () async {
18
+ test_classAlias_class_extends () async {
19
19
await assertErrorsInCode (r'''
20
20
class A {}
21
21
class B extends A {}
22
- class C extends Object with B {}
22
+ class C = Object with B;
23
23
''' , [
24
- error (CompileTimeErrorCode .MIXIN_INHERITS_FROM_NOT_OBJECT , 60 , 1 ),
24
+ error (CompileTimeErrorCode .MIXIN_INHERITS_FROM_NOT_OBJECT , 54 , 1 ),
25
25
]);
26
26
}
27
27
28
- test_classDeclaration_extends_new_syntax () async {
29
- await assertNoErrorsInCode (r'''
28
+ test_classAlias_class_with () async {
29
+ await assertErrorsInCode (r'''
30
30
class A {}
31
- mixin B on A {}
32
- class C extends A with B {}
33
- ''' );
31
+ class B extends Object with A {}
32
+ class C = Object with B;
33
+ ''' , [
34
+ error (CompileTimeErrorCode .MIXIN_INHERITS_FROM_NOT_OBJECT , 66 , 1 ),
35
+ ]);
34
36
}
35
37
36
- test_classDeclaration_mixTypeAlias () async {
38
+ test_classAlias_classAlias_with () async {
37
39
await assertNoErrorsInCode (r'''
38
40
class A {}
39
41
class B = Object with A;
40
- class C extends Object with B {}
42
+ class C = Object with B;
41
43
''' );
42
44
}
43
45
44
- test_classDeclaration_with () async {
46
+ test_classAlias_classAlias_with2 () async {
45
47
await assertErrorsInCode (r'''
46
48
class A {}
47
- class B extends Object with A {}
48
- class C extends Object with B {}
49
+ class B {}
50
+ class C = Object with A, B;
51
+ class D = Object with C;
49
52
''' , [
50
53
error (CompileTimeErrorCode .MIXIN_INHERITS_FROM_NOT_OBJECT , 72 , 1 ),
51
54
]);
52
55
}
53
56
54
- test_typeAlias_extends () async {
57
+ test_classAlias_mixin () async {
58
+ await assertNoErrorsInCode (r'''
59
+ class A {}
60
+ mixin B on A {}
61
+ class C = A with B;
62
+ ''' );
63
+ }
64
+
65
+ test_classDeclaration_class_extends () async {
55
66
await assertErrorsInCode (r'''
56
67
class A {}
57
68
class B extends A {}
58
- class C = Object with B;
69
+ class C extends Object with B {}
59
70
''' , [
60
- error (CompileTimeErrorCode .MIXIN_INHERITS_FROM_NOT_OBJECT , 54 , 1 ),
71
+ error (CompileTimeErrorCode .MIXIN_INHERITS_FROM_NOT_OBJECT , 60 , 1 ),
61
72
]);
62
73
}
63
74
64
- test_typeAlias_extends_new_syntax () async {
75
+ test_classDeclaration_class_extends_Object () async {
65
76
await assertNoErrorsInCode (r'''
66
77
class A {}
67
- mixin B on A {}
68
- class C = A with B;
78
+ class B extends Object {}
79
+ class C extends Object with B {}
69
80
''' );
70
81
}
71
82
72
- test_typeAlias_with () async {
83
+ test_classDeclaration_class_with () async {
73
84
await assertErrorsInCode (r'''
74
85
class A {}
75
86
class B extends Object with A {}
76
- class C = Object with B;
87
+ class C extends Object with B {}
77
88
''' , [
78
- error (CompileTimeErrorCode .MIXIN_INHERITS_FROM_NOT_OBJECT , 66 , 1 ),
89
+ error (CompileTimeErrorCode .MIXIN_INHERITS_FROM_NOT_OBJECT , 72 , 1 ),
79
90
]);
80
91
}
81
92
82
- test_typedef_mixTypeAlias () async {
93
+ test_classDeclaration_classAlias_with () async {
83
94
await assertNoErrorsInCode (r'''
84
95
class A {}
85
96
class B = Object with A;
86
- class C = Object with B;
97
+ class C extends Object with B {}
98
+ ''' );
99
+ }
100
+
101
+ test_classDeclaration_classAlias_with2 () async {
102
+ await assertErrorsInCode (r'''
103
+ class A {}
104
+ class B {}
105
+ class C = Object with A, B;
106
+ class D extends Object with C {}
107
+ ''' , [
108
+ error (CompileTimeErrorCode .MIXIN_INHERITS_FROM_NOT_OBJECT , 78 , 1 ),
109
+ ]);
110
+ }
111
+
112
+ test_classDeclaration_mixin () async {
113
+ await assertNoErrorsInCode (r'''
114
+ class A {}
115
+ mixin B on A {}
116
+ class C extends A with B {}
87
117
''' );
88
118
}
89
119
}
0 commit comments