OLD | NEW |
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, 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 // Test type promotion of parameters. | 5 // Test type promotion of parameters. |
6 | 6 |
7 class A { | 7 class A { |
8 var a = "a"; | 8 var a = "a"; |
9 } | 9 } |
10 class B extends A { | 10 class B extends A { |
(...skipping 10 matching lines...) Expand all Loading... |
21 var b = ""; | 21 var b = ""; |
22 var c = ""; | 22 var c = ""; |
23 var d = ""; | 23 var d = ""; |
24 } | 24 } |
25 | 25 |
26 void main() { | 26 void main() { |
27 test(new E()); | 27 test(new E()); |
28 } | 28 } |
29 void test(A a) { | 29 void test(A a) { |
30 print(a.a); | 30 print(a.a); |
31 print(a.b); /// 01: static type warning | 31 print(a.b); //# 01: static type warning |
32 print(a.c); /// 02: static type warning | 32 print(a.c); //# 02: static type warning |
33 print(a.d); /// 03: static type warning | 33 print(a.d); //# 03: static type warning |
34 | 34 |
35 if (a is B) { | 35 if (a is B) { |
36 print(a.a); | 36 print(a.a); |
37 print(a.b); | 37 print(a.b); |
38 print(a.c); /// 04: static type warning | 38 print(a.c); //# 04: static type warning |
39 print(a.d); /// 05: static type warning | 39 print(a.d); //# 05: static type warning |
40 | 40 |
41 if (a is C) { | 41 if (a is C) { |
42 print(a.a); | 42 print(a.a); |
43 print(a.b); | 43 print(a.b); |
44 print(a.c); | 44 print(a.c); |
45 print(a.d); /// 06: static type warning | 45 print(a.d); //# 06: static type warning |
46 } | 46 } |
47 | 47 |
48 print(a.a); | 48 print(a.a); |
49 print(a.b); | 49 print(a.b); |
50 print(a.c); /// 07: static type warning | 50 print(a.c); //# 07: static type warning |
51 print(a.d); /// 08: static type warning | 51 print(a.d); //# 08: static type warning |
52 } | 52 } |
53 if (a is C) { | 53 if (a is C) { |
54 print(a.a); | 54 print(a.a); |
55 print(a.b); | 55 print(a.b); |
56 print(a.c); | 56 print(a.c); |
57 print(a.d); /// 09: static type warning | 57 print(a.d); //# 09: static type warning |
58 | 58 |
59 if (a is B) { | 59 if (a is B) { |
60 print(a.a); | 60 print(a.a); |
61 print(a.b); | 61 print(a.b); |
62 print(a.c); | 62 print(a.c); |
63 print(a.d); /// 10: static type warning | 63 print(a.d); //# 10: static type warning |
64 } | 64 } |
65 if (a is D) { | 65 if (a is D) { |
66 print(a.a); | 66 print(a.a); |
67 print(a.b); | 67 print(a.b); |
68 print(a.c); | 68 print(a.c); |
69 print(a.d); /// 11: static type warning | 69 print(a.d); //# 11: static type warning |
70 } | 70 } |
71 | 71 |
72 print(a.a); | 72 print(a.a); |
73 print(a.b); | 73 print(a.b); |
74 print(a.c); | 74 print(a.c); |
75 print(a.d); /// 12: static type warning | 75 print(a.d); //# 12: static type warning |
76 } | 76 } |
77 | 77 |
78 print(a.a); | 78 print(a.a); |
79 print(a.b); /// 13: static type warning | 79 print(a.b); //# 13: static type warning |
80 print(a.c); /// 14: static type warning | 80 print(a.c); //# 14: static type warning |
81 print(a.d); /// 15: static type warning | 81 print(a.d); //# 15: static type warning |
82 | 82 |
83 if (a is D) { | 83 if (a is D) { |
84 print(a.a); | 84 print(a.a); |
85 print(a.b); /// 16: static type warning | 85 print(a.b); //# 16: static type warning |
86 print(a.c); /// 17: static type warning | 86 print(a.c); //# 17: static type warning |
87 print(a.d); | 87 print(a.d); |
88 } | 88 } |
89 | 89 |
90 print(a.a); | 90 print(a.a); |
91 print(a.b); /// 18: static type warning | 91 print(a.b); //# 18: static type warning |
92 print(a.c); /// 19: static type warning | 92 print(a.c); //# 19: static type warning |
93 print(a.d); /// 20: static type warning | 93 print(a.d); //# 20: static type warning |
94 | 94 |
95 var o1 = a is B ? | 95 var o1 = a is B ? |
96 '${a.a}' | 96 '${a.a}' |
97 '${a.b}' | 97 '${a.b}' |
98 '${a.c}' /// 21: static type warning | 98 '${a.c}' //# 21: static type warning |
99 '${a.d}' /// 22: static type warning | 99 '${a.d}' //# 22: static type warning |
100 : | 100 : |
101 '${a.a}' | 101 '${a.a}' |
102 '${a.b}' /// 23: static type warning | 102 '${a.b}' //# 23: static type warning |
103 '${a.c}' /// 24: static type warning | 103 '${a.c}' //# 24: static type warning |
104 '${a.d}' /// 25: static type warning | 104 '${a.d}' //# 25: static type warning |
105 ; | 105 ; |
106 | 106 |
107 var o2 = a is C ? | 107 var o2 = a is C ? |
108 '${a.a}' | 108 '${a.a}' |
109 '${a.b}' | 109 '${a.b}' |
110 '${a.c}' | 110 '${a.c}' |
111 '${a.d}' /// 26: static type warning | 111 '${a.d}' //# 26: static type warning |
112 : | 112 : |
113 '${a.a}' | 113 '${a.a}' |
114 '${a.b}' /// 27: static type warning | 114 '${a.b}' //# 27: static type warning |
115 '${a.c}' /// 28: static type warning | 115 '${a.c}' //# 28: static type warning |
116 '${a.d}' /// 29: static type warning | 116 '${a.d}' //# 29: static type warning |
117 ; | 117 ; |
118 | 118 |
119 var o3 = a is D ? | 119 var o3 = a is D ? |
120 '${a.a}' | 120 '${a.a}' |
121 '${a.b}' /// 30: static type warning | 121 '${a.b}' //# 30: static type warning |
122 '${a.c}' /// 31: static type warning | 122 '${a.c}' //# 31: static type warning |
123 '${a.d}' | 123 '${a.d}' |
124 : | 124 : |
125 '${a.a}' | 125 '${a.a}' |
126 '${a.b}' /// 32: static type warning | 126 '${a.b}' //# 32: static type warning |
127 '${a.c}' /// 33: static type warning | 127 '${a.c}' //# 33: static type warning |
128 '${a.d}' /// 34: static type warning | 128 '${a.d}' //# 34: static type warning |
129 ; | 129 ; |
130 | 130 |
131 if (a is B && a is B) { | 131 if (a is B && a is B) { |
132 print(a.a); | 132 print(a.a); |
133 print(a.b); | 133 print(a.b); |
134 print(a.c); /// 35: static type warning | 134 print(a.c); //# 35: static type warning |
135 print(a.d); /// 36: static type warning | 135 print(a.d); //# 36: static type warning |
136 } | 136 } |
137 if (a is B && a is C) { | 137 if (a is B && a is C) { |
138 print(a.a); | 138 print(a.a); |
139 print(a.b); | 139 print(a.b); |
140 print(a.c); | 140 print(a.c); |
141 print(a.d); /// 37: static type warning | 141 print(a.d); //# 37: static type warning |
142 } | 142 } |
143 if (a is C && a is B) { | 143 if (a is C && a is B) { |
144 print(a.a); | 144 print(a.a); |
145 print(a.b); | 145 print(a.b); |
146 print(a.c); | 146 print(a.c); |
147 print(a.d); /// 38: static type warning | 147 print(a.d); //# 38: static type warning |
148 } | 148 } |
149 if (a is C && a is D) { | 149 if (a is C && a is D) { |
150 print(a.a); | 150 print(a.a); |
151 print(a.b); | 151 print(a.b); |
152 print(a.c); | 152 print(a.c); |
153 print(a.d); /// 39: static type warning | 153 print(a.d); //# 39: static type warning |
154 } | 154 } |
155 if (a is D && a is C) { | 155 if (a is D && a is C) { |
156 print(a.a); | 156 print(a.a); |
157 print(a.b); /// 40: static type warning | 157 print(a.b); //# 40: static type warning |
158 print(a.c); /// 41: static type warning | 158 print(a.c); //# 41: static type warning |
159 print(a.d); | 159 print(a.d); |
160 } | 160 } |
161 if (a is D | 161 if (a is D |
162 && a.a == "" | 162 && a.a == "" |
163 && a.b == "" /// 42: static type warning | 163 && a.b == "" //# 42: static type warning |
164 && a.c == "" /// 43: static type warning | 164 && a.c == "" //# 43: static type warning |
165 && a.d == "") { | 165 && a.d == "") { |
166 print(a.a); | 166 print(a.a); |
167 print(a.b); /// 44: static type warning | 167 print(a.b); //# 44: static type warning |
168 print(a.c); /// 45: static type warning | 168 print(a.c); //# 45: static type warning |
169 print(a.d); | 169 print(a.d); |
170 } | 170 } |
171 if (a.a == "" | 171 if (a.a == "" |
172 && a.b == "" /// 46: static type warning | 172 && a.b == "" //# 46: static type warning |
173 && a.c == "" /// 47: static type warning | 173 && a.c == "" //# 47: static type warning |
174 && a.d == "" /// 48: static type warning | 174 && a.d == "" //# 48: static type warning |
175 && a is B | 175 && a is B |
176 && a.a == "" | 176 && a.a == "" |
177 && a.b == "" | 177 && a.b == "" |
178 && a.c == "" /// 49: static type warning | 178 && a.c == "" //# 49: static type warning |
179 && a.d == "" /// 50: static type warning | 179 && a.d == "" //# 50: static type warning |
180 && a is C | 180 && a is C |
181 && a.a == "" | 181 && a.a == "" |
182 && a.b == "" | 182 && a.b == "" |
183 && a.c == "" | 183 && a.c == "" |
184 && a.d == "" /// 51: static type warning | 184 && a.d == "" //# 51: static type warning |
185 ) { | 185 ) { |
186 print(a.a); | 186 print(a.a); |
187 print(a.b); | 187 print(a.b); |
188 print(a.c); | 188 print(a.c); |
189 print(a.d); /// 52: static type warning | 189 print(a.d); //# 52: static type warning |
190 } | 190 } |
191 if ((a is B)) { | 191 if ((a is B)) { |
192 print(a.a); | 192 print(a.a); |
193 print(a.b); | 193 print(a.b); |
194 print(a.c); /// 54: static type warning | 194 print(a.c); //# 54: static type warning |
195 print(a.d); /// 55: static type warning | 195 print(a.d); //# 55: static type warning |
196 } | 196 } |
197 if ((a is B && (a) is C) && a is B) { | 197 if ((a is B && (a) is C) && a is B) { |
198 print(a.a); | 198 print(a.a); |
199 print(a.b); | 199 print(a.b); |
200 print(a.c); | 200 print(a.c); |
201 print(a.d); /// 56: static type warning | 201 print(a.d); //# 56: static type warning |
202 } | 202 } |
203 } | 203 } |
OLD | NEW |