| OLD | NEW |
| 1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2016, 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 // GENERATED - DON'T EDIT. | 5 // GENERATED - DON'T EDIT. |
| 6 // GENERATED - DON'T EDIT. | 6 // GENERATED - DON'T EDIT. |
| 7 // GENERATED - DON'T EDIT. | 7 // GENERATED - DON'T EDIT. |
| 8 // GENERATED - DON'T EDIT. | 8 // GENERATED - DON'T EDIT. |
| 9 // GENERATED - DON'T EDIT. | 9 // GENERATED - DON'T EDIT. |
| 10 // GENERATED - DON'T EDIT. | 10 // GENERATED - DON'T EDIT. |
| 11 // GENERATED - DON'T EDIT. | 11 // GENERATED - DON'T EDIT. |
| 12 // GENERATED - DON'T EDIT. | 12 // GENERATED - DON'T EDIT. |
| 13 | 13 |
| 14 import 'dart:core'; | 14 import 'dart:core'; |
| 15 import 'dart:core' as core; | 15 import 'dart:core' as core; |
| 16 import 'package:expect/expect.dart'; | 16 import 'package:expect/expect.dart'; |
| 17 | 17 |
| 18 @NoInline() | 18 @NoInline() |
| 19 @AssumeDynamic() | 19 @AssumeDynamic() |
| 20 confuse(f) => f; | 20 confuse(f) => f; |
| 21 | 21 |
| 22 final bool inCheckedMode = (() { | 22 typedef F0<T> = Function Function(Function x); |
| 23 bool result = false; | 23 typedef F1<T> = List<Function> Function(); |
| 24 assert(result = true); | 24 typedef F2<T> = List<T> Function(int y, {core.List<core.int> x}); |
| 25 return result; | 25 typedef F3<T> = void Function(int x0, {List<Function> x}); |
| 26 })(); | 26 typedef F4<T> = int Function(int x) Function<B extends core.int>(int x); |
| 27 | 27 typedef F5<T> = int Function(int y, [List<Function> x]) |
| 28 typedef F0<T> | 28 Function<B extends core.int>(int x); |
| 29 = Function Function(Function x); | 29 typedef F6<T> = int Function(int x2, [List<T> x3]) Function<B extends core.int>( |
| 30 typedef F1<T> | 30 int x); |
| 31 = List<Function> Function(); | 31 typedef F7<T> = Function Function({Function x}) Function<B extends core.int>( |
| 32 typedef F2<T> | 32 int x); |
| 33 = List<T> Function(int y, {core.List<core.int> x}); | 33 typedef F8<T> = Function Function(List<T> x) Function<B extends core.int>( |
| 34 typedef F3<T> | 34 int x); |
| 35 = void Function(int x0, {List<Function> x}); | 35 typedef F9<T> = List<Function> Function(int x1, [Function x]) |
| 36 typedef F4<T> | 36 Function<B extends core.int>(int x); |
| 37 = int Function(int x) Function<B extends core.int>(int x); | 37 typedef F10<T> = List<Function> Function([core.List<core.int> x1]) |
| 38 typedef F5<T> | 38 Function<B extends core.int>(int x); |
| 39 = int Function(int y, [List<Function> x]) Function<B extends core.int>( | 39 typedef F11<T> = core.List<core.int> Function(int x, [int x1]) |
| 40 int x); | 40 Function<B extends core.int>(int x); |
| 41 typedef F6<T> | 41 typedef F12<T> = core.List<core.int> Function(int y, {List<Function> x}) |
| 42 = int Function(int x2, [List<T> x3]) Function<B extends core.int>(int x); | 42 Function<B extends core.int>(int x); |
| 43 typedef F7<T> | 43 typedef F13<T> = List<T> Function([int x]) Function<B extends core.int>(int x); |
| 44 = Function Function({Function x}) Function<B extends core.int>(int x); | 44 typedef F14<T> = List<T> Function(List<Function> x1) |
| 45 typedef F8<T> | 45 Function<B extends core.int>(int x); |
| 46 = Function Function(List<T> x) Function<B extends core.int>(int x); | 46 typedef F15<T> = List<T> Function(int x, [List<T> x1]) |
| 47 typedef F9<T> | 47 Function<B extends core.int>(int x); |
| 48 = List<Function> Function(int x1, | 48 typedef F16<T> = Function(int x1, {Function x}) Function<B extends core.int>( |
| 49 [Function x]) Function<B extends core.int>(int x); | 49 int x); |
| 50 typedef F10<T> | 50 typedef F17<T> = Function([List<T> x]) Function<B extends core.int>(int x); |
| 51 = List<Function> Function( | 51 typedef F18<T> = void Function(int y, [Function x]) |
| 52 [core.List<core.int> x1]) Function<B extends core.int>(int x); | 52 Function<B extends core.int>(int x); |
| 53 typedef F11<T> | 53 typedef F19<T> = void Function(int x2, [core.List<core.int> x3]) |
| 54 = core.List<core.int> Function(int x, | 54 Function<B extends core.int>(int x); |
| 55 [int x1]) Function<B extends core.int>(int x); | 55 typedef F20<T> = Function Function<A>(int x) Function<B extends core.int>( |
| 56 typedef F12<T> | 56 int x); |
| 57 = core.List<core.int> Function(int y, | 57 typedef F21<T> = List<T> Function<A>(Function x) Function<B extends core.int>( |
| 58 {List<Function> x}) Function<B extends core.int>(int x); | 58 int x); |
| 59 typedef F13<T> | 59 typedef F22<T> = List<A> Function<A>(List<Function> x) |
| 60 = List<T> Function([int x]) Function<B extends core.int>(int x); | 60 Function<B extends core.int>(int x); |
| 61 typedef F14<T> | |
| 62 = List<T> Function(List<Function> x1) Function<B extends core.int>(int x); | |
| 63 typedef F15<T> | |
| 64 = List<T> Function(int x, [List<T> x1]) Function<B extends core.int>(int x); | |
| 65 typedef F16<T> | |
| 66 = Function(int x1, {Function x}) Function<B extends core.int>(int x); | |
| 67 typedef F17<T> | |
| 68 = Function([List<T> x]) Function<B extends core.int>(int x); | |
| 69 typedef F18<T> | |
| 70 = void Function(int y, [Function x]) Function<B extends core.int>(int x); | |
| 71 typedef F19<T> | |
| 72 = void Function(int x2, | |
| 73 [core.List<core.int> x3]) Function<B extends core.int>(int x); | |
| 74 typedef F20<T> | |
| 75 = Function Function<A>(int x) Function<B extends core.int>(int x); | |
| 76 typedef F21<T> | |
| 77 = List<T> Function<A>(Function x) Function<B extends core.int>(int x); | |
| 78 typedef F22<T> | |
| 79 = List<A> Function<A>(List<Function> x) Function<B extends core.int>(int x); | |
| 80 | 61 |
| 81 Function f0(Function x) => null; | 62 Function f0(Function x) => null; |
| 82 List<Function> f1() => null; | 63 List<Function> f1() => null; |
| 83 List<int> f2(int y, {core.List<core.int> x}) => null; | 64 List<int> f2(int y, {core.List<core.int> x}) => null; |
| 84 void f3(int x0, {List<Function> x}) => null; | 65 void f3(int x0, {List<Function> x}) => null; |
| 85 int Function(int x) f4<B extends core.int>(int x) => null; | 66 int Function(int x) f4<B extends core.int>(int x) => null; |
| 86 int Function(int y, [List<Function> x]) f5<B extends core.int>(int x) => null; | 67 int Function(int y, [List<Function> x]) f5<B extends core.int>(int x) => null; |
| 87 int Function(int x0, [List<int> x1]) f6<B extends core.int>(int x) => null; | 68 int Function(int x0, [List<int> x1]) f6<B extends core.int>(int x) => null; |
| 88 Function Function({Function x}) f7<B extends core.int>(int x) => null; | 69 Function Function({Function x}) f7<B extends core.int>(int x) => null; |
| 89 Function Function(List<int> x) f8<B extends core.int>(int x) => null; | 70 Function Function(List<int> x) f8<B extends core.int>(int x) => null; |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 121 List<T> Function(int y, {core.List<core.int> x}) x2; | 102 List<T> Function(int y, {core.List<core.int> x}) x2; |
| 122 void Function(int x0, {List<Function> x}) x3; | 103 void Function(int x0, {List<Function> x}) x3; |
| 123 int Function(int x) Function<B extends core.int>(int x) x4; | 104 int Function(int x) Function<B extends core.int>(int x) x4; |
| 124 int Function(int y, [List<Function> x]) Function<B extends core.int>(int x) | 105 int Function(int y, [List<Function> x]) Function<B extends core.int>(int x) |
| 125 x5; | 106 x5; |
| 126 int Function(int x2, [List<T> x3]) Function<B extends core.int>(int x) x6; | 107 int Function(int x2, [List<T> x3]) Function<B extends core.int>(int x) x6; |
| 127 Function Function({Function x}) Function<B extends core.int>(int x) x7; | 108 Function Function({Function x}) Function<B extends core.int>(int x) x7; |
| 128 Function Function(List<T> x) Function<B extends core.int>(int x) x8; | 109 Function Function(List<T> x) Function<B extends core.int>(int x) x8; |
| 129 List<Function> Function(int x1, [Function x]) Function<B extends core.int>( | 110 List<Function> Function(int x1, [Function x]) Function<B extends core.int>( |
| 130 int x) x9; | 111 int x) x9; |
| 131 List<Function> Function( | 112 List<Function> Function([core.List<core.int> x1]) |
| 132 [core.List<core.int> x1]) Function<B extends core.int>(int x) x10; | 113 Function<B extends core.int>(int x) x10; |
| 133 core.List<core.int> Function(int x, [int x1]) Function<B extends core.int>( | 114 core.List<core.int> Function(int x, [int x1]) Function<B extends core.int>( |
| 134 int x) x11; | 115 int x) x11; |
| 135 core.List<core.int> Function(int y, | 116 core.List<core.int> Function(int y, {List<Function> x}) |
| 136 {List<Function> x}) Function<B extends core.int>(int x) x12; | 117 Function<B extends core.int>(int x) x12; |
| 137 List<T> Function([int x]) Function<B extends core.int>(int x) x13; | 118 List<T> Function([int x]) Function<B extends core.int>(int x) x13; |
| 138 List<T> Function(List<Function> x1) Function<B extends core.int>(int x) x14; | 119 List<T> Function(List<Function> x1) Function<B extends core.int>(int x) x14; |
| 139 List<T> Function(int x, [List<T> x1]) Function<B extends core.int>(int x) x15; | 120 List<T> Function(int x, [List<T> x1]) Function<B extends core.int>(int x) x15; |
| 140 Function(int x1, {Function x}) Function<B extends core.int>(int x) x16; | 121 Function(int x1, {Function x}) Function<B extends core.int>(int x) x16; |
| 141 Function([List<T> x]) Function<B extends core.int>(int x) x17; | 122 Function([List<T> x]) Function<B extends core.int>(int x) x17; |
| 142 void Function(int y, [Function x]) Function<B extends core.int>(int x) x18; | 123 void Function(int y, [Function x]) Function<B extends core.int>(int x) x18; |
| 143 void Function(int x2, [core.List<core.int> x3]) Function<B extends core.int>( | 124 void Function(int x2, [core.List<core.int> x3]) Function<B extends core.int>( |
| 144 int x) x19; | 125 int x) x19; |
| 145 Function Function<A>(int x) Function<B extends core.int>(int x) x20; | 126 Function Function<A>(int x) Function<B extends core.int>(int x) x20; |
| 146 List<T> Function<A>(Function x) Function<B extends core.int>(int x) x21; | 127 List<T> Function<A>(Function x) Function<B extends core.int>(int x) x21; |
| (...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 278 x2 = confuse(m2); | 259 x2 = confuse(m2); |
| 279 l2 = confuse(m2); | 260 l2 = confuse(m2); |
| 280 if (!tIsBool) { | 261 if (!tIsBool) { |
| 281 Expect.isTrue(f2 is F2<int>); | 262 Expect.isTrue(f2 is F2<int>); |
| 282 Expect.isFalse(f2 is F2<bool>); | 263 Expect.isFalse(f2 is F2<bool>); |
| 283 Expect.isTrue(confuse(f2) is F2<int>); | 264 Expect.isTrue(confuse(f2) is F2<int>); |
| 284 Expect.isFalse(confuse(f2) is F2<bool>); | 265 Expect.isFalse(confuse(f2) is F2<bool>); |
| 285 Expect.equals(tIsDynamic, m2 is F2<bool>); | 266 Expect.equals(tIsDynamic, m2 is F2<bool>); |
| 286 Expect.equals(tIsDynamic, confuse(m2) is F2<bool>); | 267 Expect.equals(tIsDynamic, confuse(m2) is F2<bool>); |
| 287 } else { | 268 } else { |
| 288 if (inCheckedMode) { | 269 if (typeAssertionsEnabled) { |
| 289 Expect.throws(() { | 270 Expect.throws(() { |
| 290 x2 = (f2 as dynamic); | 271 x2 = (f2 as dynamic); |
| 291 }); | 272 }); |
| 292 Expect.throws(() { | 273 Expect.throws(() { |
| 293 x2 = confuse(f2); | 274 x2 = confuse(f2); |
| 294 }); | 275 }); |
| 295 List<T> Function(int y, {core.List<core.int> x}) l2; | 276 List<T> Function(int y, {core.List<core.int> x}) l2; |
| 296 Expect.throws(() { | 277 Expect.throws(() { |
| 297 l2 = (f2 as dynamic); | 278 l2 = (f2 as dynamic); |
| 298 }); | 279 }); |
| (...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 365 l5; | 346 l5; |
| 366 // The static function f5 sets `T` to `int`. | 347 // The static function f5 sets `T` to `int`. |
| 367 if (!tIsBool) { | 348 if (!tIsBool) { |
| 368 x5 = f5 as dynamic; | 349 x5 = f5 as dynamic; |
| 369 l5 = f5 as dynamic; | 350 l5 = f5 as dynamic; |
| 370 x5 = confuse(f5); | 351 x5 = confuse(f5); |
| 371 l5 = confuse(f5); | 352 l5 = confuse(f5); |
| 372 } | 353 } |
| 373 | 354 |
| 374 Expect.isTrue(m5 is F5); | 355 Expect.isTrue(m5 is F5); |
| 375 Expect.isTrue(m5 is int Function(int y, | 356 Expect.isTrue(m5 is int Function(int y, [List<Function> x]) |
| 376 [List<Function> x]) Function<B extends core.int>(int x)); | 357 Function<B extends core.int>(int x)); |
| 377 Expect.isTrue(confuse(m5) is F5); | 358 Expect.isTrue(confuse(m5) is F5); |
| 378 // In checked mode, verifies the type. | 359 // In checked mode, verifies the type. |
| 379 x5 = m5; | 360 x5 = m5; |
| 380 l5 = m5; | 361 l5 = m5; |
| 381 x5 = confuse(m5); | 362 x5 = confuse(m5); |
| 382 l5 = confuse(m5); | 363 l5 = confuse(m5); |
| 383 } | 364 } |
| 384 | 365 |
| 385 /// int Function(int x2, [List<T> x3]) Function<B extends core.int>(int x) | 366 /// int Function(int x2, [List<T> x3]) Function<B extends core.int>(int x) |
| 386 void testF6() { | 367 void testF6() { |
| 387 Expect.isTrue(f6 is F6); | 368 Expect.isTrue(f6 is F6); |
| 388 Expect.isTrue(confuse(f6) is F6); | 369 Expect.isTrue(confuse(f6) is F6); |
| 389 // In checked mode, verifies the type. | 370 // In checked mode, verifies the type. |
| 390 int Function(int x2, [List<T> x3]) Function<B extends core.int>(int x) l6; | 371 int Function(int x2, [List<T> x3]) Function<B extends core.int>(int x) l6; |
| 391 // The static function f6 sets `T` to `int`. | 372 // The static function f6 sets `T` to `int`. |
| 392 if (!tIsBool) { | 373 if (!tIsBool) { |
| 393 x6 = f6 as dynamic; | 374 x6 = f6 as dynamic; |
| 394 l6 = f6 as dynamic; | 375 l6 = f6 as dynamic; |
| 395 x6 = confuse(f6); | 376 x6 = confuse(f6); |
| 396 l6 = confuse(f6); | 377 l6 = confuse(f6); |
| 397 } | 378 } |
| 398 | 379 |
| 399 Expect.isTrue(m6 is F6); | 380 Expect.isTrue(m6 is F6); |
| 400 Expect.isTrue(m6 is int Function(int x2, | 381 Expect.isTrue(m6 is int Function(int x2, [List<T> x3]) |
| 401 [List<T> x3]) Function<B extends core.int>(int x)); | 382 Function<B extends core.int>(int x)); |
| 402 Expect.isTrue(confuse(m6) is F6); | 383 Expect.isTrue(confuse(m6) is F6); |
| 403 // In checked mode, verifies the type. | 384 // In checked mode, verifies the type. |
| 404 x6 = m6; | 385 x6 = m6; |
| 405 l6 = m6; | 386 l6 = m6; |
| 406 x6 = confuse(m6); | 387 x6 = confuse(m6); |
| 407 l6 = confuse(m6); | 388 l6 = confuse(m6); |
| 408 if (!tIsBool) { | 389 if (!tIsBool) { |
| 409 Expect.isTrue(f6 is F6<int>); | 390 Expect.isTrue(f6 is F6<int>); |
| 410 Expect.isFalse(f6 is F6<bool>); | 391 Expect.isFalse(f6 is F6<bool>); |
| 411 Expect.isTrue(confuse(f6) is F6<int>); | 392 Expect.isTrue(confuse(f6) is F6<int>); |
| 412 Expect.isFalse(confuse(f6) is F6<bool>); | 393 Expect.isFalse(confuse(f6) is F6<bool>); |
| 413 Expect.equals(tIsDynamic, m6 is F6<bool>); | 394 Expect.equals(tIsDynamic, m6 is F6<bool>); |
| 414 Expect.equals(tIsDynamic, confuse(m6) is F6<bool>); | 395 Expect.equals(tIsDynamic, confuse(m6) is F6<bool>); |
| 415 } else { | 396 } else { |
| 416 if (inCheckedMode) { | 397 if (typeAssertionsEnabled) { |
| 417 Expect.throws(() { | 398 Expect.throws(() { |
| 418 x6 = (f6 as dynamic); | 399 x6 = (f6 as dynamic); |
| 419 }); | 400 }); |
| 420 Expect.throws(() { | 401 Expect.throws(() { |
| 421 x6 = confuse(f6); | 402 x6 = confuse(f6); |
| 422 }); | 403 }); |
| 423 int Function(int x2, [List<T> x3]) Function<B extends core.int>(int x) | 404 int Function(int x2, [List<T> x3]) Function<B extends core.int>(int x) |
| 424 l6; | 405 l6; |
| 425 Expect.throws(() { | 406 Expect.throws(() { |
| 426 l6 = (f6 as dynamic); | 407 l6 = (f6 as dynamic); |
| (...skipping 18 matching lines...) Expand all Loading... |
| 445 Function Function({Function x}) Function<B extends core.int>(int x) l7; | 426 Function Function({Function x}) Function<B extends core.int>(int x) l7; |
| 446 // The static function f7 sets `T` to `int`. | 427 // The static function f7 sets `T` to `int`. |
| 447 if (!tIsBool) { | 428 if (!tIsBool) { |
| 448 x7 = f7 as dynamic; | 429 x7 = f7 as dynamic; |
| 449 l7 = f7 as dynamic; | 430 l7 = f7 as dynamic; |
| 450 x7 = confuse(f7); | 431 x7 = confuse(f7); |
| 451 l7 = confuse(f7); | 432 l7 = confuse(f7); |
| 452 } | 433 } |
| 453 | 434 |
| 454 Expect.isTrue(m7 is F7); | 435 Expect.isTrue(m7 is F7); |
| 455 Expect.isTrue(m7 is Function Function( | 436 Expect.isTrue(m7 is Function Function({Function x}) |
| 456 {Function x}) Function<B extends core.int>(int x)); | 437 Function<B extends core.int>(int x)); |
| 457 Expect.isTrue(confuse(m7) is F7); | 438 Expect.isTrue(confuse(m7) is F7); |
| 458 // In checked mode, verifies the type. | 439 // In checked mode, verifies the type. |
| 459 x7 = m7; | 440 x7 = m7; |
| 460 l7 = m7; | 441 l7 = m7; |
| 461 x7 = confuse(m7); | 442 x7 = confuse(m7); |
| 462 l7 = confuse(m7); | 443 l7 = confuse(m7); |
| 463 } | 444 } |
| 464 | 445 |
| 465 /// Function Function(List<T> x) Function<B extends core.int>(int x) | 446 /// Function Function(List<T> x) Function<B extends core.int>(int x) |
| 466 void testF8() { | 447 void testF8() { |
| (...skipping 19 matching lines...) Expand all Loading... |
| 486 x8 = confuse(m8); | 467 x8 = confuse(m8); |
| 487 l8 = confuse(m8); | 468 l8 = confuse(m8); |
| 488 if (!tIsBool) { | 469 if (!tIsBool) { |
| 489 Expect.isTrue(f8 is F8<int>); | 470 Expect.isTrue(f8 is F8<int>); |
| 490 Expect.isFalse(f8 is F8<bool>); | 471 Expect.isFalse(f8 is F8<bool>); |
| 491 Expect.isTrue(confuse(f8) is F8<int>); | 472 Expect.isTrue(confuse(f8) is F8<int>); |
| 492 Expect.isFalse(confuse(f8) is F8<bool>); | 473 Expect.isFalse(confuse(f8) is F8<bool>); |
| 493 Expect.equals(tIsDynamic, m8 is F8<bool>); | 474 Expect.equals(tIsDynamic, m8 is F8<bool>); |
| 494 Expect.equals(tIsDynamic, confuse(m8) is F8<bool>); | 475 Expect.equals(tIsDynamic, confuse(m8) is F8<bool>); |
| 495 } else { | 476 } else { |
| 496 if (inCheckedMode) { | 477 if (typeAssertionsEnabled) { |
| 497 Expect.throws(() { | 478 Expect.throws(() { |
| 498 x8 = (f8 as dynamic); | 479 x8 = (f8 as dynamic); |
| 499 }); | 480 }); |
| 500 Expect.throws(() { | 481 Expect.throws(() { |
| 501 x8 = confuse(f8); | 482 x8 = confuse(f8); |
| 502 }); | 483 }); |
| 503 Function Function(List<T> x) Function<B extends core.int>(int x) l8; | 484 Function Function(List<T> x) Function<B extends core.int>(int x) l8; |
| 504 Expect.throws(() { | 485 Expect.throws(() { |
| 505 l8 = (f8 as dynamic); | 486 l8 = (f8 as dynamic); |
| 506 }); | 487 }); |
| (...skipping 17 matching lines...) Expand all Loading... |
| 524 int x) l9; | 505 int x) l9; |
| 525 // The static function f9 sets `T` to `int`. | 506 // The static function f9 sets `T` to `int`. |
| 526 if (!tIsBool) { | 507 if (!tIsBool) { |
| 527 x9 = f9 as dynamic; | 508 x9 = f9 as dynamic; |
| 528 l9 = f9 as dynamic; | 509 l9 = f9 as dynamic; |
| 529 x9 = confuse(f9); | 510 x9 = confuse(f9); |
| 530 l9 = confuse(f9); | 511 l9 = confuse(f9); |
| 531 } | 512 } |
| 532 | 513 |
| 533 Expect.isTrue(m9 is F9); | 514 Expect.isTrue(m9 is F9); |
| 534 Expect.isTrue(m9 is List<Function> Function(int x1, | 515 Expect.isTrue(m9 is List<Function> Function(int x1, [Function x]) |
| 535 [Function x]) Function<B extends core.int>(int x)); | 516 Function<B extends core.int>(int x)); |
| 536 Expect.isTrue(confuse(m9) is F9); | 517 Expect.isTrue(confuse(m9) is F9); |
| 537 // In checked mode, verifies the type. | 518 // In checked mode, verifies the type. |
| 538 x9 = m9; | 519 x9 = m9; |
| 539 l9 = m9; | 520 l9 = m9; |
| 540 x9 = confuse(m9); | 521 x9 = confuse(m9); |
| 541 l9 = confuse(m9); | 522 l9 = confuse(m9); |
| 542 } | 523 } |
| 543 | 524 |
| 544 /// List<Function> Function([core.List<core.int> x1]) Function<B extends core.
int>(int x) | 525 /// List<Function> Function([core.List<core.int> x1]) Function<B extends core.
int>(int x) |
| 545 void testF10() { | 526 void testF10() { |
| 546 Expect.isTrue(f10 is F10); | 527 Expect.isTrue(f10 is F10); |
| 547 Expect.isTrue(confuse(f10) is F10); | 528 Expect.isTrue(confuse(f10) is F10); |
| 548 // In checked mode, verifies the type. | 529 // In checked mode, verifies the type. |
| 549 List<Function> Function( | 530 List<Function> Function([core.List<core.int> x1]) |
| 550 [core.List<core.int> x1]) Function<B extends core.int>(int x) l10; | 531 Function<B extends core.int>(int x) l10; |
| 551 // The static function f10 sets `T` to `int`. | 532 // The static function f10 sets `T` to `int`. |
| 552 if (!tIsBool) { | 533 if (!tIsBool) { |
| 553 x10 = f10 as dynamic; | 534 x10 = f10 as dynamic; |
| 554 l10 = f10 as dynamic; | 535 l10 = f10 as dynamic; |
| 555 x10 = confuse(f10); | 536 x10 = confuse(f10); |
| 556 l10 = confuse(f10); | 537 l10 = confuse(f10); |
| 557 } | 538 } |
| 558 | 539 |
| 559 Expect.isTrue(m10 is F10); | 540 Expect.isTrue(m10 is F10); |
| 560 Expect.isTrue(m10 is List<Function> Function( | 541 Expect.isTrue(m10 is List<Function> Function([core.List<core.int> x1]) |
| 561 [core.List<core.int> x1]) Function<B extends core.int>(int x)); | 542 Function<B extends core.int>(int x)); |
| 562 Expect.isTrue(confuse(m10) is F10); | 543 Expect.isTrue(confuse(m10) is F10); |
| 563 // In checked mode, verifies the type. | 544 // In checked mode, verifies the type. |
| 564 x10 = m10; | 545 x10 = m10; |
| 565 l10 = m10; | 546 l10 = m10; |
| 566 x10 = confuse(m10); | 547 x10 = confuse(m10); |
| 567 l10 = confuse(m10); | 548 l10 = confuse(m10); |
| 568 } | 549 } |
| 569 | 550 |
| 570 /// core.List<core.int> Function(int x, [int x1]) Function<B extends core.int>
(int x) | 551 /// core.List<core.int> Function(int x, [int x1]) Function<B extends core.int>
(int x) |
| 571 void testF11() { | 552 void testF11() { |
| 572 Expect.isTrue(f11 is F11); | 553 Expect.isTrue(f11 is F11); |
| 573 Expect.isTrue(confuse(f11) is F11); | 554 Expect.isTrue(confuse(f11) is F11); |
| 574 // In checked mode, verifies the type. | 555 // In checked mode, verifies the type. |
| 575 core.List<core.int> Function(int x, [int x1]) Function<B extends core.int>( | 556 core.List<core.int> Function(int x, [int x1]) Function<B extends core.int>( |
| 576 int x) l11; | 557 int x) l11; |
| 577 // The static function f11 sets `T` to `int`. | 558 // The static function f11 sets `T` to `int`. |
| 578 if (!tIsBool) { | 559 if (!tIsBool) { |
| 579 x11 = f11 as dynamic; | 560 x11 = f11 as dynamic; |
| 580 l11 = f11 as dynamic; | 561 l11 = f11 as dynamic; |
| 581 x11 = confuse(f11); | 562 x11 = confuse(f11); |
| 582 l11 = confuse(f11); | 563 l11 = confuse(f11); |
| 583 } | 564 } |
| 584 | 565 |
| 585 Expect.isTrue(m11 is F11); | 566 Expect.isTrue(m11 is F11); |
| 586 Expect.isTrue(m11 is core.List<core.int> Function(int x, | 567 Expect.isTrue(m11 is core.List<core.int> Function(int x, [int x1]) |
| 587 [int x1]) Function<B extends core.int>(int x)); | 568 Function<B extends core.int>(int x)); |
| 588 Expect.isTrue(confuse(m11) is F11); | 569 Expect.isTrue(confuse(m11) is F11); |
| 589 // In checked mode, verifies the type. | 570 // In checked mode, verifies the type. |
| 590 x11 = m11; | 571 x11 = m11; |
| 591 l11 = m11; | 572 l11 = m11; |
| 592 x11 = confuse(m11); | 573 x11 = confuse(m11); |
| 593 l11 = confuse(m11); | 574 l11 = confuse(m11); |
| 594 } | 575 } |
| 595 | 576 |
| 596 /// core.List<core.int> Function(int y, {List<Function> x}) Function<B extends
core.int>(int x) | 577 /// core.List<core.int> Function(int y, {List<Function> x}) Function<B extends
core.int>(int x) |
| 597 void testF12() { | 578 void testF12() { |
| 598 Expect.isTrue(f12 is F12); | 579 Expect.isTrue(f12 is F12); |
| 599 Expect.isTrue(confuse(f12) is F12); | 580 Expect.isTrue(confuse(f12) is F12); |
| 600 // In checked mode, verifies the type. | 581 // In checked mode, verifies the type. |
| 601 core.List<core.int> Function(int y, | 582 core.List<core.int> Function(int y, {List<Function> x}) |
| 602 {List<Function> x}) Function<B extends core.int>(int x) l12; | 583 Function<B extends core.int>(int x) l12; |
| 603 // The static function f12 sets `T` to `int`. | 584 // The static function f12 sets `T` to `int`. |
| 604 if (!tIsBool) { | 585 if (!tIsBool) { |
| 605 x12 = f12 as dynamic; | 586 x12 = f12 as dynamic; |
| 606 l12 = f12 as dynamic; | 587 l12 = f12 as dynamic; |
| 607 x12 = confuse(f12); | 588 x12 = confuse(f12); |
| 608 l12 = confuse(f12); | 589 l12 = confuse(f12); |
| 609 } | 590 } |
| 610 | 591 |
| 611 Expect.isTrue(m12 is F12); | 592 Expect.isTrue(m12 is F12); |
| 612 Expect.isTrue(m12 is core.List<core.int> Function(int y, | 593 Expect.isTrue(m12 is core.List<core.int> Function(int y, {List<Function> x}) |
| 613 {List<Function> x}) Function<B extends core.int>(int x)); | 594 Function<B extends core.int>(int x)); |
| 614 Expect.isTrue(confuse(m12) is F12); | 595 Expect.isTrue(confuse(m12) is F12); |
| 615 // In checked mode, verifies the type. | 596 // In checked mode, verifies the type. |
| 616 x12 = m12; | 597 x12 = m12; |
| 617 l12 = m12; | 598 l12 = m12; |
| 618 x12 = confuse(m12); | 599 x12 = confuse(m12); |
| 619 l12 = confuse(m12); | 600 l12 = confuse(m12); |
| 620 } | 601 } |
| 621 | 602 |
| 622 /// List<T> Function([int x]) Function<B extends core.int>(int x) | 603 /// List<T> Function([int x]) Function<B extends core.int>(int x) |
| 623 void testF13() { | 604 void testF13() { |
| (...skipping 19 matching lines...) Expand all Loading... |
| 643 x13 = confuse(m13); | 624 x13 = confuse(m13); |
| 644 l13 = confuse(m13); | 625 l13 = confuse(m13); |
| 645 if (!tIsBool) { | 626 if (!tIsBool) { |
| 646 Expect.isTrue(f13 is F13<int>); | 627 Expect.isTrue(f13 is F13<int>); |
| 647 Expect.isFalse(f13 is F13<bool>); | 628 Expect.isFalse(f13 is F13<bool>); |
| 648 Expect.isTrue(confuse(f13) is F13<int>); | 629 Expect.isTrue(confuse(f13) is F13<int>); |
| 649 Expect.isFalse(confuse(f13) is F13<bool>); | 630 Expect.isFalse(confuse(f13) is F13<bool>); |
| 650 Expect.equals(tIsDynamic, m13 is F13<bool>); | 631 Expect.equals(tIsDynamic, m13 is F13<bool>); |
| 651 Expect.equals(tIsDynamic, confuse(m13) is F13<bool>); | 632 Expect.equals(tIsDynamic, confuse(m13) is F13<bool>); |
| 652 } else { | 633 } else { |
| 653 if (inCheckedMode) { | 634 if (typeAssertionsEnabled) { |
| 654 Expect.throws(() { | 635 Expect.throws(() { |
| 655 x13 = (f13 as dynamic); | 636 x13 = (f13 as dynamic); |
| 656 }); | 637 }); |
| 657 Expect.throws(() { | 638 Expect.throws(() { |
| 658 x13 = confuse(f13); | 639 x13 = confuse(f13); |
| 659 }); | 640 }); |
| 660 List<T> Function([int x]) Function<B extends core.int>(int x) l13; | 641 List<T> Function([int x]) Function<B extends core.int>(int x) l13; |
| 661 Expect.throws(() { | 642 Expect.throws(() { |
| 662 l13 = (f13 as dynamic); | 643 l13 = (f13 as dynamic); |
| 663 }); | 644 }); |
| (...skipping 16 matching lines...) Expand all Loading... |
| 680 List<T> Function(List<Function> x1) Function<B extends core.int>(int x) l14; | 661 List<T> Function(List<Function> x1) Function<B extends core.int>(int x) l14; |
| 681 // The static function f14 sets `T` to `int`. | 662 // The static function f14 sets `T` to `int`. |
| 682 if (!tIsBool) { | 663 if (!tIsBool) { |
| 683 x14 = f14 as dynamic; | 664 x14 = f14 as dynamic; |
| 684 l14 = f14 as dynamic; | 665 l14 = f14 as dynamic; |
| 685 x14 = confuse(f14); | 666 x14 = confuse(f14); |
| 686 l14 = confuse(f14); | 667 l14 = confuse(f14); |
| 687 } | 668 } |
| 688 | 669 |
| 689 Expect.isTrue(m14 is F14); | 670 Expect.isTrue(m14 is F14); |
| 690 Expect.isTrue(m14 is List<T> Function( | 671 Expect.isTrue(m14 is List<T> Function(List<Function> x1) |
| 691 List<Function> x1) Function<B extends core.int>(int x)); | 672 Function<B extends core.int>(int x)); |
| 692 Expect.isTrue(confuse(m14) is F14); | 673 Expect.isTrue(confuse(m14) is F14); |
| 693 // In checked mode, verifies the type. | 674 // In checked mode, verifies the type. |
| 694 x14 = m14; | 675 x14 = m14; |
| 695 l14 = m14; | 676 l14 = m14; |
| 696 x14 = confuse(m14); | 677 x14 = confuse(m14); |
| 697 l14 = confuse(m14); | 678 l14 = confuse(m14); |
| 698 if (!tIsBool) { | 679 if (!tIsBool) { |
| 699 Expect.isTrue(f14 is F14<int>); | 680 Expect.isTrue(f14 is F14<int>); |
| 700 Expect.isFalse(f14 is F14<bool>); | 681 Expect.isFalse(f14 is F14<bool>); |
| 701 Expect.isTrue(confuse(f14) is F14<int>); | 682 Expect.isTrue(confuse(f14) is F14<int>); |
| 702 Expect.isFalse(confuse(f14) is F14<bool>); | 683 Expect.isFalse(confuse(f14) is F14<bool>); |
| 703 Expect.equals(tIsDynamic, m14 is F14<bool>); | 684 Expect.equals(tIsDynamic, m14 is F14<bool>); |
| 704 Expect.equals(tIsDynamic, confuse(m14) is F14<bool>); | 685 Expect.equals(tIsDynamic, confuse(m14) is F14<bool>); |
| 705 } else { | 686 } else { |
| 706 if (inCheckedMode) { | 687 if (typeAssertionsEnabled) { |
| 707 Expect.throws(() { | 688 Expect.throws(() { |
| 708 x14 = (f14 as dynamic); | 689 x14 = (f14 as dynamic); |
| 709 }); | 690 }); |
| 710 Expect.throws(() { | 691 Expect.throws(() { |
| 711 x14 = confuse(f14); | 692 x14 = confuse(f14); |
| 712 }); | 693 }); |
| 713 List<T> Function(List<Function> x1) Function<B extends core.int>(int x) | 694 List<T> Function(List<Function> x1) Function<B extends core.int>(int x) |
| 714 l14; | 695 l14; |
| 715 Expect.throws(() { | 696 Expect.throws(() { |
| 716 l14 = (f14 as dynamic); | 697 l14 = (f14 as dynamic); |
| (...skipping 19 matching lines...) Expand all Loading... |
| 736 l15; | 717 l15; |
| 737 // The static function f15 sets `T` to `int`. | 718 // The static function f15 sets `T` to `int`. |
| 738 if (!tIsBool) { | 719 if (!tIsBool) { |
| 739 x15 = f15 as dynamic; | 720 x15 = f15 as dynamic; |
| 740 l15 = f15 as dynamic; | 721 l15 = f15 as dynamic; |
| 741 x15 = confuse(f15); | 722 x15 = confuse(f15); |
| 742 l15 = confuse(f15); | 723 l15 = confuse(f15); |
| 743 } | 724 } |
| 744 | 725 |
| 745 Expect.isTrue(m15 is F15); | 726 Expect.isTrue(m15 is F15); |
| 746 Expect.isTrue(m15 is List<T> Function(int x, | 727 Expect.isTrue(m15 is List<T> Function(int x, [List<T> x1]) |
| 747 [List<T> x1]) Function<B extends core.int>(int x)); | 728 Function<B extends core.int>(int x)); |
| 748 Expect.isTrue(confuse(m15) is F15); | 729 Expect.isTrue(confuse(m15) is F15); |
| 749 // In checked mode, verifies the type. | 730 // In checked mode, verifies the type. |
| 750 x15 = m15; | 731 x15 = m15; |
| 751 l15 = m15; | 732 l15 = m15; |
| 752 x15 = confuse(m15); | 733 x15 = confuse(m15); |
| 753 l15 = confuse(m15); | 734 l15 = confuse(m15); |
| 754 if (!tIsBool) { | 735 if (!tIsBool) { |
| 755 Expect.isTrue(f15 is F15<int>); | 736 Expect.isTrue(f15 is F15<int>); |
| 756 Expect.isFalse(f15 is F15<bool>); | 737 Expect.isFalse(f15 is F15<bool>); |
| 757 Expect.isTrue(confuse(f15) is F15<int>); | 738 Expect.isTrue(confuse(f15) is F15<int>); |
| 758 Expect.isFalse(confuse(f15) is F15<bool>); | 739 Expect.isFalse(confuse(f15) is F15<bool>); |
| 759 Expect.equals(tIsDynamic, m15 is F15<bool>); | 740 Expect.equals(tIsDynamic, m15 is F15<bool>); |
| 760 Expect.equals(tIsDynamic, confuse(m15) is F15<bool>); | 741 Expect.equals(tIsDynamic, confuse(m15) is F15<bool>); |
| 761 } else { | 742 } else { |
| 762 if (inCheckedMode) { | 743 if (typeAssertionsEnabled) { |
| 763 Expect.throws(() { | 744 Expect.throws(() { |
| 764 x15 = (f15 as dynamic); | 745 x15 = (f15 as dynamic); |
| 765 }); | 746 }); |
| 766 Expect.throws(() { | 747 Expect.throws(() { |
| 767 x15 = confuse(f15); | 748 x15 = confuse(f15); |
| 768 }); | 749 }); |
| 769 List<T> Function(int x, [List<T> x1]) Function<B extends core.int>( | 750 List<T> Function(int x, [List<T> x1]) Function<B extends core.int>( |
| 770 int x) l15; | 751 int x) l15; |
| 771 Expect.throws(() { | 752 Expect.throws(() { |
| 772 l15 = (f15 as dynamic); | 753 l15 = (f15 as dynamic); |
| (...skipping 18 matching lines...) Expand all Loading... |
| 791 Function(int x1, {Function x}) Function<B extends core.int>(int x) l16; | 772 Function(int x1, {Function x}) Function<B extends core.int>(int x) l16; |
| 792 // The static function f16 sets `T` to `int`. | 773 // The static function f16 sets `T` to `int`. |
| 793 if (!tIsBool) { | 774 if (!tIsBool) { |
| 794 x16 = f16 as dynamic; | 775 x16 = f16 as dynamic; |
| 795 l16 = f16 as dynamic; | 776 l16 = f16 as dynamic; |
| 796 x16 = confuse(f16); | 777 x16 = confuse(f16); |
| 797 l16 = confuse(f16); | 778 l16 = confuse(f16); |
| 798 } | 779 } |
| 799 | 780 |
| 800 Expect.isTrue(m16 is F16); | 781 Expect.isTrue(m16 is F16); |
| 801 Expect.isTrue(m16 is Function(int x1, | 782 Expect.isTrue(m16 is Function(int x1, {Function x}) |
| 802 {Function x}) Function<B extends core.int>(int x)); | 783 Function<B extends core.int>(int x)); |
| 803 Expect.isTrue(confuse(m16) is F16); | 784 Expect.isTrue(confuse(m16) is F16); |
| 804 // In checked mode, verifies the type. | 785 // In checked mode, verifies the type. |
| 805 x16 = m16; | 786 x16 = m16; |
| 806 l16 = m16; | 787 l16 = m16; |
| 807 x16 = confuse(m16); | 788 x16 = confuse(m16); |
| 808 l16 = confuse(m16); | 789 l16 = confuse(m16); |
| 809 } | 790 } |
| 810 | 791 |
| 811 /// Function([List<T> x]) Function<B extends core.int>(int x) | 792 /// Function([List<T> x]) Function<B extends core.int>(int x) |
| 812 void testF17() { | 793 void testF17() { |
| (...skipping 19 matching lines...) Expand all Loading... |
| 832 x17 = confuse(m17); | 813 x17 = confuse(m17); |
| 833 l17 = confuse(m17); | 814 l17 = confuse(m17); |
| 834 if (!tIsBool) { | 815 if (!tIsBool) { |
| 835 Expect.isTrue(f17 is F17<int>); | 816 Expect.isTrue(f17 is F17<int>); |
| 836 Expect.isFalse(f17 is F17<bool>); | 817 Expect.isFalse(f17 is F17<bool>); |
| 837 Expect.isTrue(confuse(f17) is F17<int>); | 818 Expect.isTrue(confuse(f17) is F17<int>); |
| 838 Expect.isFalse(confuse(f17) is F17<bool>); | 819 Expect.isFalse(confuse(f17) is F17<bool>); |
| 839 Expect.equals(tIsDynamic, m17 is F17<bool>); | 820 Expect.equals(tIsDynamic, m17 is F17<bool>); |
| 840 Expect.equals(tIsDynamic, confuse(m17) is F17<bool>); | 821 Expect.equals(tIsDynamic, confuse(m17) is F17<bool>); |
| 841 } else { | 822 } else { |
| 842 if (inCheckedMode) { | 823 if (typeAssertionsEnabled) { |
| 843 Expect.throws(() { | 824 Expect.throws(() { |
| 844 x17 = (f17 as dynamic); | 825 x17 = (f17 as dynamic); |
| 845 }); | 826 }); |
| 846 Expect.throws(() { | 827 Expect.throws(() { |
| 847 x17 = confuse(f17); | 828 x17 = confuse(f17); |
| 848 }); | 829 }); |
| 849 Function([List<T> x]) Function<B extends core.int>(int x) l17; | 830 Function([List<T> x]) Function<B extends core.int>(int x) l17; |
| 850 Expect.throws(() { | 831 Expect.throws(() { |
| 851 l17 = (f17 as dynamic); | 832 l17 = (f17 as dynamic); |
| 852 }); | 833 }); |
| (...skipping 16 matching lines...) Expand all Loading... |
| 869 void Function(int y, [Function x]) Function<B extends core.int>(int x) l18; | 850 void Function(int y, [Function x]) Function<B extends core.int>(int x) l18; |
| 870 // The static function f18 sets `T` to `int`. | 851 // The static function f18 sets `T` to `int`. |
| 871 if (!tIsBool) { | 852 if (!tIsBool) { |
| 872 x18 = f18 as dynamic; | 853 x18 = f18 as dynamic; |
| 873 l18 = f18 as dynamic; | 854 l18 = f18 as dynamic; |
| 874 x18 = confuse(f18); | 855 x18 = confuse(f18); |
| 875 l18 = confuse(f18); | 856 l18 = confuse(f18); |
| 876 } | 857 } |
| 877 | 858 |
| 878 Expect.isTrue(m18 is F18); | 859 Expect.isTrue(m18 is F18); |
| 879 Expect.isTrue(m18 is void Function(int y, | 860 Expect.isTrue(m18 is void Function(int y, [Function x]) |
| 880 [Function x]) Function<B extends core.int>(int x)); | 861 Function<B extends core.int>(int x)); |
| 881 Expect.isTrue(confuse(m18) is F18); | 862 Expect.isTrue(confuse(m18) is F18); |
| 882 // In checked mode, verifies the type. | 863 // In checked mode, verifies the type. |
| 883 x18 = m18; | 864 x18 = m18; |
| 884 l18 = m18; | 865 l18 = m18; |
| 885 x18 = confuse(m18); | 866 x18 = confuse(m18); |
| 886 l18 = confuse(m18); | 867 l18 = confuse(m18); |
| 887 } | 868 } |
| 888 | 869 |
| 889 /// void Function(int x2, [core.List<core.int> x3]) Function<B extends core.in
t>(int x) | 870 /// void Function(int x2, [core.List<core.int> x3]) Function<B extends core.in
t>(int x) |
| 890 void testF19() { | 871 void testF19() { |
| 891 Expect.isTrue(f19 is F19); | 872 Expect.isTrue(f19 is F19); |
| 892 Expect.isTrue(confuse(f19) is F19); | 873 Expect.isTrue(confuse(f19) is F19); |
| 893 // In checked mode, verifies the type. | 874 // In checked mode, verifies the type. |
| 894 void Function(int x2, | 875 void Function(int x2, [core.List<core.int> x3]) |
| 895 [core.List<core.int> x3]) Function<B extends core.int>(int x) l19; | 876 Function<B extends core.int>(int x) l19; |
| 896 // The static function f19 sets `T` to `int`. | 877 // The static function f19 sets `T` to `int`. |
| 897 if (!tIsBool) { | 878 if (!tIsBool) { |
| 898 x19 = f19 as dynamic; | 879 x19 = f19 as dynamic; |
| 899 l19 = f19 as dynamic; | 880 l19 = f19 as dynamic; |
| 900 x19 = confuse(f19); | 881 x19 = confuse(f19); |
| 901 l19 = confuse(f19); | 882 l19 = confuse(f19); |
| 902 } | 883 } |
| 903 | 884 |
| 904 Expect.isTrue(m19 is F19); | 885 Expect.isTrue(m19 is F19); |
| 905 Expect.isTrue(m19 is void Function(int x2, | 886 Expect.isTrue(m19 is void Function(int x2, [core.List<core.int> x3]) |
| 906 [core.List<core.int> x3]) Function<B extends core.int>(int x)); | 887 Function<B extends core.int>(int x)); |
| 907 Expect.isTrue(confuse(m19) is F19); | 888 Expect.isTrue(confuse(m19) is F19); |
| 908 // In checked mode, verifies the type. | 889 // In checked mode, verifies the type. |
| 909 x19 = m19; | 890 x19 = m19; |
| 910 l19 = m19; | 891 l19 = m19; |
| 911 x19 = confuse(m19); | 892 x19 = confuse(m19); |
| 912 l19 = confuse(m19); | 893 l19 = confuse(m19); |
| 913 } | 894 } |
| 914 | 895 |
| 915 /// Function Function<A>(int x) Function<B extends core.int>(int x) | 896 /// Function Function<A>(int x) Function<B extends core.int>(int x) |
| 916 void testF20() { | 897 void testF20() { |
| (...skipping 28 matching lines...) Expand all Loading... |
| 945 List<T> Function<A>(Function x) Function<B extends core.int>(int x) l21; | 926 List<T> Function<A>(Function x) Function<B extends core.int>(int x) l21; |
| 946 // The static function f21 sets `T` to `int`. | 927 // The static function f21 sets `T` to `int`. |
| 947 if (!tIsBool) { | 928 if (!tIsBool) { |
| 948 x21 = f21 as dynamic; | 929 x21 = f21 as dynamic; |
| 949 l21 = f21 as dynamic; | 930 l21 = f21 as dynamic; |
| 950 x21 = confuse(f21); | 931 x21 = confuse(f21); |
| 951 l21 = confuse(f21); | 932 l21 = confuse(f21); |
| 952 } | 933 } |
| 953 | 934 |
| 954 Expect.isTrue(m21 is F21); | 935 Expect.isTrue(m21 is F21); |
| 955 Expect.isTrue(m21 is List<T> Function<A>( | 936 Expect.isTrue(m21 is List<T> Function<A>(Function x) |
| 956 Function x) Function<B extends core.int>(int x)); | 937 Function<B extends core.int>(int x)); |
| 957 Expect.isTrue(confuse(m21) is F21); | 938 Expect.isTrue(confuse(m21) is F21); |
| 958 // In checked mode, verifies the type. | 939 // In checked mode, verifies the type. |
| 959 x21 = m21; | 940 x21 = m21; |
| 960 l21 = m21; | 941 l21 = m21; |
| 961 x21 = confuse(m21); | 942 x21 = confuse(m21); |
| 962 l21 = confuse(m21); | 943 l21 = confuse(m21); |
| 963 if (!tIsBool) { | 944 if (!tIsBool) { |
| 964 Expect.isTrue(f21 is F21<int>); | 945 Expect.isTrue(f21 is F21<int>); |
| 965 Expect.isFalse(f21 is F21<bool>); | 946 Expect.isFalse(f21 is F21<bool>); |
| 966 Expect.isTrue(confuse(f21) is F21<int>); | 947 Expect.isTrue(confuse(f21) is F21<int>); |
| 967 Expect.isFalse(confuse(f21) is F21<bool>); | 948 Expect.isFalse(confuse(f21) is F21<bool>); |
| 968 Expect.equals(tIsDynamic, m21 is F21<bool>); | 949 Expect.equals(tIsDynamic, m21 is F21<bool>); |
| 969 Expect.equals(tIsDynamic, confuse(m21) is F21<bool>); | 950 Expect.equals(tIsDynamic, confuse(m21) is F21<bool>); |
| 970 } else { | 951 } else { |
| 971 if (inCheckedMode) { | 952 if (typeAssertionsEnabled) { |
| 972 Expect.throws(() { | 953 Expect.throws(() { |
| 973 x21 = (f21 as dynamic); | 954 x21 = (f21 as dynamic); |
| 974 }); | 955 }); |
| 975 Expect.throws(() { | 956 Expect.throws(() { |
| 976 x21 = confuse(f21); | 957 x21 = confuse(f21); |
| 977 }); | 958 }); |
| 978 List<T> Function<A>(Function x) Function<B extends core.int>(int x) l21; | 959 List<T> Function<A>(Function x) Function<B extends core.int>(int x) l21; |
| 979 Expect.throws(() { | 960 Expect.throws(() { |
| 980 l21 = (f21 as dynamic); | 961 l21 = (f21 as dynamic); |
| 981 }); | 962 }); |
| (...skipping 18 matching lines...) Expand all Loading... |
| 1000 l22; | 981 l22; |
| 1001 // The static function f22 sets `T` to `int`. | 982 // The static function f22 sets `T` to `int`. |
| 1002 if (!tIsBool) { | 983 if (!tIsBool) { |
| 1003 x22 = f22 as dynamic; | 984 x22 = f22 as dynamic; |
| 1004 l22 = f22 as dynamic; | 985 l22 = f22 as dynamic; |
| 1005 x22 = confuse(f22); | 986 x22 = confuse(f22); |
| 1006 l22 = confuse(f22); | 987 l22 = confuse(f22); |
| 1007 } | 988 } |
| 1008 | 989 |
| 1009 Expect.isTrue(m22 is F22); | 990 Expect.isTrue(m22 is F22); |
| 1010 Expect.isTrue(m22 is List<A> Function<A>( | 991 Expect.isTrue(m22 is List<A> Function<A>(List<Function> x) |
| 1011 List<Function> x) Function<B extends core.int>(int x)); | 992 Function<B extends core.int>(int x)); |
| 1012 Expect.isTrue(confuse(m22) is F22); | 993 Expect.isTrue(confuse(m22) is F22); |
| 1013 // In checked mode, verifies the type. | 994 // In checked mode, verifies the type. |
| 1014 x22 = m22; | 995 x22 = m22; |
| 1015 l22 = m22; | 996 l22 = m22; |
| 1016 x22 = confuse(m22); | 997 x22 = confuse(m22); |
| 1017 l22 = confuse(m22); | 998 l22 = confuse(m22); |
| 1018 } | 999 } |
| 1019 } | 1000 } |
| 1020 | 1001 |
| 1021 void main() { | 1002 void main() { |
| 1022 new U67().runTests(); | 1003 new U67().runTests(); |
| 1023 new U67<int>(tIsInt: true).runTests(); | 1004 new U67<int>(tIsInt: true).runTests(); |
| 1024 new U67<bool>(tIsBool: true).runTests(); | 1005 new U67<bool>(tIsBool: true).runTests(); |
| 1025 } | 1006 } |
| OLD | NEW |