OLD | NEW |
1 // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 // Testing that the reserved word `void` is allowed to occur as a type. | 5 // Testing that the reserved word `void` is allowed to occur as a type, not |
6 | 6 // just as a return type. |
7 import 'package:expect/expect.dart'; | |
8 | 7 |
9 class A<T> { | 8 class A<T> { |
10 T t; | 9 final T t; |
11 const A(this.t); | 10 const A(this.t); |
12 } | 11 } |
13 | 12 |
14 const void x1 = null; | 13 const void x1 = null; |
15 const A<void> x2 = const A<void>(null); | 14 const A<void> x2 = const A<void>(null); |
16 | 15 |
17 final void x3 = null; | 16 final void x3 = null; |
18 final A<void> x4 = new A<void>(null); | 17 final A<void> x4 = new A<void>(null); |
19 | 18 |
20 void x5 = null, x6; | 19 void x5 = null, x6; |
21 A<void> x7 = new A<void>(null), x8; | 20 A<void> x7 = new A<void>(null), x8; |
22 | 21 |
23 void get g1 => null; | 22 void get g1 => null; |
24 A<void> get g2 => new A<void>(null); | 23 A<void> get g2 => new A<void>(null); |
25 void set s1(void x) => null; | 24 void set s1(void x) => null; |
26 void set s2(A<void> x) => null; | 25 void set s2(A<void> x) => null; |
27 void m1(void x, [void y]) => null; | 26 void m1(void x, [void y]) => null; |
28 void m2(void x, {void y}) => null; | 27 void m2(void x, {void y}) => null; |
29 A<void> m3(A<void> x, [A<void> y]) => new A<void>(null); | 28 A<void> m3(A<void> x, [A<void> y]) => new A<void>(null); |
30 A<void> m4(A<void> x, {A<void> y}) => new A<void>(null); | 29 A<void> m4(A<void> x, {A<void> y}) => new A<void>(null); |
31 | 30 |
32 class B<S, T> {} | 31 class B<S, T> implements A<void> { void get t => null; } |
33 | 32 |
34 class C extends A<void> with B<void, A<void>> implements A<void> { | 33 class C extends A<void> with B<void, A<void>> { |
| 34 C(): super(null); |
| 35 |
35 static final void x1 = null; | 36 static final void x1 = null; |
36 static final A<void> x2 = new A<void>(null); | 37 static final A<void> x2 = new A<void>(null); |
37 | 38 |
38 static const void x3 = null; | 39 static const void x3 = null; |
39 static const A<void> x4 = const A<void>(null); | 40 static const A<void> x4 = const A<void>(null); |
40 | 41 |
41 final void x5 = null, x6; | 42 final void x5 = null; |
42 final A<void> x7 = new A<void>(null), x8; | 43 final A<void> x6 = new A<void>(null); |
43 | 44 |
44 static void x9 = null, x10; | 45 static void x7 = null, x8; |
45 static A<void> x11 = new A<void>(null), x12; | 46 static A<void> x9 = new A<void>(null), x10; |
46 | 47 |
47 covariant void x13 = null, x14; | 48 covariant void x11 = null, x12; |
48 covariant A<void> x15 = new A<void>(null), x16; | 49 covariant A<void> x13 = new A<void>(null), x14; |
49 | 50 |
50 static void get g1 => null; | 51 static void get g1 => null; |
51 static A<void> get g2 => new A<void>(null); | 52 static A<void> get g2 => new A<void>(null); |
52 static void set s1(void x) => null; | 53 static void set s1(void x) => null; |
53 static void set s2(A<void> x) => null; | 54 static void set s2(A<void> x) => null; |
54 static void m1(void x, [void y]) => null; | 55 static void m1(void x, [void y]) => null; |
55 static void m2(void x, {void y}) => null; | 56 static void m2(void x, {void y}) => null; |
56 static A<void> m3(A<void> x, [A<void> y]) => null; | 57 static A<void> m3(A<void> x, [A<void> y]) => null; |
57 static A<void> m4(A<void> x, {A<void> y}) => null; | 58 static A<void> m4(A<void> x, {A<void> y}) => null; |
58 | 59 |
59 void get g3 => null; | 60 void get g3 => null; |
60 A<void> get g4 => new A<void>(null); | 61 A<void> get g4 => new A<void>(null); |
61 void set s3(void x) => null; | 62 void set s3(void x) => null; |
62 void set s4(A<void> x) => null; | 63 void set s4(A<void> x) => null; |
63 void m5(void x, [void y]) => null; | 64 void m5(void x, [void y]) => null; |
64 void m6(void x, {void y}) => null; | 65 void m6(void x, {void y}) => null; |
65 A<void> m7(A<void> x, [A<void> y]) => null; | 66 A<void> m7(A<void> x, [A<void> y]) => null; |
66 A<void> m8(A<void> x, {A<void> y}) => null; | 67 A<void> m8(A<void> x, {A<void> y}) => null; |
67 | 68 |
68 // Ensure that all members are used, and use `void` in expressions. | 69 // Ensure that all members are used, and use `void` in expressions. |
69 void run() { | 70 void run() { |
70 var ignore = [x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, | 71 var ignore = [ |
71 x15, x16, g1, g2, g3, g4]; | 72 x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, // |
| 73 g1, g2, g3, g4, |
| 74 ]; |
72 | 75 |
73 s1 = null; | 76 s1 = null; |
74 s2 = new A<void>(null); | 77 s2 = new A<void>(null); |
75 s3 = null; | 78 s3 = null; |
76 s4 = new A<void>(null); | 79 s4 = new A<void>(null); |
77 m1(null, null); | 80 m1(null, null); |
78 m2(null, y: null); | 81 m2(null, y: null); |
79 m3(null, new A<void>(null)); | 82 m3(null, new A<void>(null)); |
80 m4(null, y: new A<void>(null)); | 83 m4(null, y: new A<void>(null)); |
81 m5(null, null); | 84 m5(null, null); |
(...skipping 14 matching lines...) Expand all Loading... |
96 var ignore = [x1, x2, x3, x4, x5, x6, x7, x8, g1, g2]; | 99 var ignore = [x1, x2, x3, x4, x5, x6, x7, x8, g1, g2]; |
97 | 100 |
98 s1 = null; | 101 s1 = null; |
99 s2 = new A<void>(null); | 102 s2 = new A<void>(null); |
100 m1(null, null); | 103 m1(null, null); |
101 m2(null, y: null); | 104 m2(null, y: null); |
102 m3(null, null); | 105 m3(null, null); |
103 m4(null, y: null); | 106 m4(null, y: null); |
104 new C().run(); | 107 new C().run(); |
105 } | 108 } |
OLD | NEW |