Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(673)

Side by Side Diff: tests/compiler/dart2js/type_variable_bound_test.dart

Issue 2990223002: Reformat untouched files. (Closed)
Patch Set: Created 3 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 import 'dart:async'; 5 import 'dart:async';
6 import "package:async_helper/async_helper.dart"; 6 import "package:async_helper/async_helper.dart";
7 import 'compiler_helper.dart'; 7 import 'compiler_helper.dart';
8 import "package:expect/expect.dart"; 8 import "package:expect/expect.dart";
9 9
10 Future compile(String source) { 10 Future compile(String source) {
(...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after
157 new A(); 157 new A();
158 new A<num>(); 158 new A<num>();
159 new A<dynamic>(); 159 new A<dynamic>();
160 new A<int>(); 160 new A<int>();
161 new A<double>(); 161 new A<double>();
162 } 162 }
163 """); 163 """);
164 } 164 }
165 165
166 Future test6() { 166 Future test6() {
167 return test( 167 return test(r"""
168 r"""
169 class A<T extends num> {} 168 class A<T extends num> {}
170 169
171 void main() { 170 void main() {
172 new A<String>(); 171 new A<String>();
173 } 172 }
174 """, 173 """, warnings: MessageKind.INVALID_TYPE_VARIABLE_BOUND);
175 warnings: MessageKind.INVALID_TYPE_VARIABLE_BOUND);
176 } 174 }
177 175
178 Future test7() { 176 Future test7() {
179 return test( 177 return test(r"""
180 r"""
181 class A<T extends num> {} 178 class A<T extends num> {}
182 class B<T> extends A<T> {} // Warning produced here. 179 class B<T> extends A<T> {} // Warning produced here.
183 180
184 void main() { 181 void main() {
185 new B(); // No warning produced here. 182 new B(); // No warning produced here.
186 new B<String>(); // No warning produced here. 183 new B<String>(); // No warning produced here.
187 } 184 }
188 """, 185 """, warnings: MessageKind.INVALID_TYPE_VARIABLE_BOUND);
189 warnings: MessageKind.INVALID_TYPE_VARIABLE_BOUND);
190 } 186 }
191 187
192 Future test8() { 188 Future test8() {
193 return test(r""" 189 return test(r"""
194 class B<T extends B<T>> {} 190 class B<T extends B<T>> {}
195 class C<T extends B<T>> extends B<T> {} 191 class C<T extends B<T>> extends B<T> {}
196 class D<T extends C<T>> extends C<T> {} 192 class D<T extends C<T>> extends C<T> {}
197 class E<T extends E<T>> extends D<T> {} 193 class E<T extends E<T>> extends D<T> {}
198 class F extends E<F> {} 194 class F extends E<F> {}
199 195
(...skipping 10 matching lines...) Expand all
210 new D<C<F>>(); 206 new D<C<F>>();
211 new E(); 207 new E();
212 new E<dynamic>(); 208 new E<dynamic>();
213 new E<E<F>>(); 209 new E<E<F>>();
214 new F(); 210 new F();
215 } 211 }
216 """); 212 """);
217 } 213 }
218 214
219 Future test9() { 215 Future test9() {
220 return test( 216 return test(r"""
221 r"""
222 class B<T extends B<T>> {} 217 class B<T extends B<T>> {}
223 class C<T extends B<T>> extends B<T> {} 218 class C<T extends B<T>> extends B<T> {}
224 class D<T extends C<T>> extends C<T> {} 219 class D<T extends C<T>> extends C<T> {}
225 class E<T extends E<T>> extends D<T> {} 220 class E<T extends E<T>> extends D<T> {}
226 class F extends E<F> {} 221 class F extends E<F> {}
227 222
228 void main() { 223 void main() {
229 new D<B<F>>(); // Warning: B<F> is not a subtype of C<T>. 224 new D<B<F>>(); // Warning: B<F> is not a subtype of C<T>.
230 new E<D<F>>(); // Warning: E<F> is not a subtype of E<T>. 225 new E<D<F>>(); // Warning: E<F> is not a subtype of E<T>.
231 } 226 }
232 """, 227 """, warnings: [
233 warnings: [ 228 MessageKind.INVALID_TYPE_VARIABLE_BOUND,
234 MessageKind.INVALID_TYPE_VARIABLE_BOUND, 229 MessageKind.INVALID_TYPE_VARIABLE_BOUND
235 MessageKind.INVALID_TYPE_VARIABLE_BOUND 230 ]);
236 ]);
237 } 231 }
238 232
239 Future test10() { 233 Future test10() {
240 return test(r""" 234 return test(r"""
241 class A { 235 class A {
242 const A(); 236 const A();
243 } 237 }
244 class Test<T extends A> { 238 class Test<T extends A> {
245 final T x = const A(); 239 final T x = const A();
246 const Test(); 240 const Test();
247 } 241 }
248 main() { 242 main() {
249 print(const Test<A>()); 243 print(const Test<A>());
250 } 244 }
251 """); 245 """);
252 } 246 }
253 247
254 // TODO(het): The error is reported twice because both the Dart and JS constant 248 // TODO(het): The error is reported twice because both the Dart and JS constant
255 // compilers are run on the const constructor, investigate why. 249 // compilers are run on the const constructor, investigate why.
256 Future test11() { 250 Future test11() {
257 return test( 251 return test(r"""
258 r"""
259 class A { 252 class A {
260 const A(); 253 const A();
261 } 254 }
262 class B extends A { 255 class B extends A {
263 const B(); 256 const B();
264 } 257 }
265 class Test<T extends A> { 258 class Test<T extends A> {
266 final T x = const A(); 259 final T x = const A();
267 const Test(); 260 const Test();
268 } 261 }
269 main() { 262 main() {
270 print(const Test<B>()); 263 print(const Test<B>());
271 } 264 }
272 """, 265 """, errors: [MessageKind.NOT_ASSIGNABLE, MessageKind.NOT_ASSIGNABLE]);
273 errors: [MessageKind.NOT_ASSIGNABLE, MessageKind.NOT_ASSIGNABLE]);
274 } 266 }
275 267
276 main() { 268 main() {
277 asyncTest(() async { 269 asyncTest(() async {
278 await test1(); 270 await test1();
279 await test2(); 271 await test2();
280 await test3(); 272 await test3();
281 await test4(); 273 await test4();
282 await test5(); 274 await test5();
283 await test6(); 275 await test6();
284 await test7(); 276 await test7();
285 await test8(); 277 await test8();
286 await test9(); 278 await test9();
287 await test10(); 279 await test10();
288 await test11(); 280 await test11();
289 }); 281 });
290 } 282 }
OLDNEW
« no previous file with comments | « tests/compiler/dart2js/type_mask2_test.dart ('k') | tests/compiler/dart2js/union_type_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698