| 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> = int Function(core.List<core.int> x); |
| 23 bool result = false; | 23 typedef F1<T> = List<Function> Function(int y, {Function x}); |
| 24 assert(result = true); | 24 typedef F2<T> = List<T> Function(int x0, {int x}); |
| 25 return result; | 25 typedef F3<T> = Function(int x0, {List<T> x}); |
| 26 })(); | 26 typedef F4<T> = Function<A>(Function x); |
| 27 | 27 typedef F5<T> = int Function(int x2, [Function x3]) Function(int x); |
| 28 typedef F0<T> | 28 typedef F6<T> = int Function(int x1, {core.List<core.int> x}) Function(int x); |
| 29 = int Function(core.List<core.int> x); | 29 typedef F7<T> = Function Function(Function x) Function(int x); |
| 30 typedef F1<T> | 30 typedef F8<T> = Function Function(int y, [core.List<core.int> x]) Function( |
| 31 = List<Function> Function(int y, {Function x}); | 31 int x); |
| 32 typedef F2<T> | 32 typedef F9<T> = List<Function> Function([int x1]) Function(int x); |
| 33 = List<T> Function(int x0, {int x}); | 33 typedef F10<T> = List<Function> Function({List<Function> x}) Function(int x); |
| 34 typedef F3<T> | 34 typedef F11<T> = List<Function> Function() Function(int x); |
| 35 = Function(int x0, {List<T> x}); | 35 typedef F12<T> = core.List<core.int> Function(int x1, [List<Function> x]) |
| 36 typedef F4<T> | 36 Function(int x); |
| 37 = Function<A>(Function x); | 37 typedef F13<T> = core.List<core.int> Function([List<T> x1]) Function(int x); |
| 38 typedef F5<T> | 38 typedef F14<T> = List<T> Function(int x, [Function x1]) Function(int x); |
| 39 = int Function(int x2, [Function x3]) Function(int x); | 39 typedef F15<T> = List<T> Function(int y, {core.List<core.int> x}) Function( |
| 40 typedef F6<T> | 40 int x); |
| 41 = int Function(int x1, {core.List<core.int> x}) Function(int x); | 41 typedef F16<T> = Function([Function x]) Function(int x); |
| 42 typedef F7<T> | 42 typedef F17<T> = Function(core.List<core.int> x1) Function(int x); |
| 43 = Function Function(Function x) Function(int x); | 43 typedef F18<T> = void Function(int x2, [int x3]) Function(int x); |
| 44 typedef F8<T> | 44 typedef F19<T> = void Function(int x1, {List<Function> x}) Function(int x); |
| 45 = Function Function(int y, [core.List<core.int> x]) Function(int x); | 45 typedef F20<T> = int Function<A>(int x) Function(int x); |
| 46 typedef F9<T> | 46 typedef F21<T> = core.List<core.int> Function<A>(Function x) Function(int x); |
| 47 = List<Function> Function([int x1]) Function(int x); | 47 typedef F22<T> = A Function<A>(List<Function> x) Function(int x); |
| 48 typedef F10<T> | 48 typedef F23<T> = B Function(B x) Function<B extends core.int>(int x); |
| 49 = List<Function> Function({List<Function> x}) Function(int x); | |
| 50 typedef F11<T> | |
| 51 = List<Function> Function() Function(int x); | |
| 52 typedef F12<T> | |
| 53 = core.List<core.int> Function(int x1, [List<Function> x]) Function(int x); | |
| 54 typedef F13<T> | |
| 55 = core.List<core.int> Function([List<T> x1]) Function(int x); | |
| 56 typedef F14<T> | |
| 57 = List<T> Function(int x, [Function x1]) Function(int x); | |
| 58 typedef F15<T> | |
| 59 = List<T> Function(int y, {core.List<core.int> x}) Function(int x); | |
| 60 typedef F16<T> | |
| 61 = Function([Function x]) Function(int x); | |
| 62 typedef F17<T> | |
| 63 = Function(core.List<core.int> x1) Function(int x); | |
| 64 typedef F18<T> | |
| 65 = void Function(int x2, [int x3]) Function(int x); | |
| 66 typedef F19<T> | |
| 67 = void Function(int x1, {List<Function> x}) Function(int x); | |
| 68 typedef F20<T> | |
| 69 = int Function<A>(int x) Function(int x); | |
| 70 typedef F21<T> | |
| 71 = core.List<core.int> Function<A>(Function x) Function(int x); | |
| 72 typedef F22<T> | |
| 73 = A Function<A>(List<Function> x) Function(int x); | |
| 74 typedef F23<T> | |
| 75 = B Function(B x) Function<B extends core.int>(int x); | |
| 76 | 49 |
| 77 int f0(core.List<core.int> x) => null; | 50 int f0(core.List<core.int> x) => null; |
| 78 List<Function> f1(int y, {Function x}) => null; | 51 List<Function> f1(int y, {Function x}) => null; |
| 79 List<int> f2(int x0, {int x}) => null; | 52 List<int> f2(int x0, {int x}) => null; |
| 80 f3(int x0, {List<int> x}) => null; | 53 f3(int x0, {List<int> x}) => null; |
| 81 f4<A>(Function x) => null; | 54 f4<A>(Function x) => null; |
| 82 int Function(int x0, [Function x1]) f5(int x) => null; | 55 int Function(int x0, [Function x1]) f5(int x) => null; |
| 83 int Function(int x0, {core.List<core.int> x}) f6(int x) => null; | 56 int Function(int x0, {core.List<core.int> x}) f6(int x) => null; |
| 84 Function Function(Function x) f7(int x) => null; | 57 Function Function(Function x) f7(int x) => null; |
| 85 Function Function(int y, [core.List<core.int> x]) f8(int x) => null; | 58 Function Function(int y, [core.List<core.int> x]) f8(int x) => null; |
| (...skipping 169 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 255 x2 = confuse(m2); | 228 x2 = confuse(m2); |
| 256 l2 = confuse(m2); | 229 l2 = confuse(m2); |
| 257 if (!tIsBool) { | 230 if (!tIsBool) { |
| 258 Expect.isTrue(f2 is F2<int>); | 231 Expect.isTrue(f2 is F2<int>); |
| 259 Expect.isFalse(f2 is F2<bool>); | 232 Expect.isFalse(f2 is F2<bool>); |
| 260 Expect.isTrue(confuse(f2) is F2<int>); | 233 Expect.isTrue(confuse(f2) is F2<int>); |
| 261 Expect.isFalse(confuse(f2) is F2<bool>); | 234 Expect.isFalse(confuse(f2) is F2<bool>); |
| 262 Expect.equals(tIsDynamic, m2 is F2<bool>); | 235 Expect.equals(tIsDynamic, m2 is F2<bool>); |
| 263 Expect.equals(tIsDynamic, confuse(m2) is F2<bool>); | 236 Expect.equals(tIsDynamic, confuse(m2) is F2<bool>); |
| 264 } else { | 237 } else { |
| 265 if (inCheckedMode) { | 238 if (typeAssertionsEnabled) { |
| 266 Expect.throws(() { | 239 Expect.throws(() { |
| 267 x2 = (f2 as dynamic); | 240 x2 = (f2 as dynamic); |
| 268 }); | 241 }); |
| 269 Expect.throws(() { | 242 Expect.throws(() { |
| 270 x2 = confuse(f2); | 243 x2 = confuse(f2); |
| 271 }); | 244 }); |
| 272 List<T> Function(int x0, {int x}) l2; | 245 List<T> Function(int x0, {int x}) l2; |
| 273 Expect.throws(() { | 246 Expect.throws(() { |
| 274 l2 = (f2 as dynamic); | 247 l2 = (f2 as dynamic); |
| 275 }); | 248 }); |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 307 x3 = confuse(m3); | 280 x3 = confuse(m3); |
| 308 l3 = confuse(m3); | 281 l3 = confuse(m3); |
| 309 if (!tIsBool) { | 282 if (!tIsBool) { |
| 310 Expect.isTrue(f3 is F3<int>); | 283 Expect.isTrue(f3 is F3<int>); |
| 311 Expect.isFalse(f3 is F3<bool>); | 284 Expect.isFalse(f3 is F3<bool>); |
| 312 Expect.isTrue(confuse(f3) is F3<int>); | 285 Expect.isTrue(confuse(f3) is F3<int>); |
| 313 Expect.isFalse(confuse(f3) is F3<bool>); | 286 Expect.isFalse(confuse(f3) is F3<bool>); |
| 314 Expect.equals(tIsDynamic, m3 is F3<bool>); | 287 Expect.equals(tIsDynamic, m3 is F3<bool>); |
| 315 Expect.equals(tIsDynamic, confuse(m3) is F3<bool>); | 288 Expect.equals(tIsDynamic, confuse(m3) is F3<bool>); |
| 316 } else { | 289 } else { |
| 317 if (inCheckedMode) { | 290 if (typeAssertionsEnabled) { |
| 318 Expect.throws(() { | 291 Expect.throws(() { |
| 319 x3 = (f3 as dynamic); | 292 x3 = (f3 as dynamic); |
| 320 }); | 293 }); |
| 321 Expect.throws(() { | 294 Expect.throws(() { |
| 322 x3 = confuse(f3); | 295 x3 = confuse(f3); |
| 323 }); | 296 }); |
| 324 Function(int x0, {List<T> x}) l3; | 297 Function(int x0, {List<T> x}) l3; |
| 325 Expect.throws(() { | 298 Expect.throws(() { |
| 326 l3 = (f3 as dynamic); | 299 l3 = (f3 as dynamic); |
| 327 }); | 300 }); |
| (...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 441 Function Function(int y, [core.List<core.int> x]) Function(int x) l8; | 414 Function Function(int y, [core.List<core.int> x]) Function(int x) l8; |
| 442 // The static function f8 sets `T` to `int`. | 415 // The static function f8 sets `T` to `int`. |
| 443 if (!tIsBool) { | 416 if (!tIsBool) { |
| 444 x8 = f8 as dynamic; | 417 x8 = f8 as dynamic; |
| 445 l8 = f8 as dynamic; | 418 l8 = f8 as dynamic; |
| 446 x8 = confuse(f8); | 419 x8 = confuse(f8); |
| 447 l8 = confuse(f8); | 420 l8 = confuse(f8); |
| 448 } | 421 } |
| 449 | 422 |
| 450 Expect.isTrue(m8 is F8); | 423 Expect.isTrue(m8 is F8); |
| 451 Expect.isTrue(m8 is Function Function(int y, | 424 Expect.isTrue(m8 is Function Function(int y, [core.List<core.int> x]) |
| 452 [core.List<core.int> x]) Function(int x)); | 425 Function(int x)); |
| 453 Expect.isTrue(confuse(m8) is F8); | 426 Expect.isTrue(confuse(m8) is F8); |
| 454 // In checked mode, verifies the type. | 427 // In checked mode, verifies the type. |
| 455 x8 = m8; | 428 x8 = m8; |
| 456 l8 = m8; | 429 l8 = m8; |
| 457 x8 = confuse(m8); | 430 x8 = confuse(m8); |
| 458 l8 = confuse(m8); | 431 l8 = confuse(m8); |
| 459 } | 432 } |
| 460 | 433 |
| 461 /// List<Function> Function([int x1]) Function(int x) | 434 /// List<Function> Function([int x1]) Function(int x) |
| 462 void testF9() { | 435 void testF9() { |
| (...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 541 // The static function f12 sets `T` to `int`. | 514 // The static function f12 sets `T` to `int`. |
| 542 if (!tIsBool) { | 515 if (!tIsBool) { |
| 543 x12 = f12 as dynamic; | 516 x12 = f12 as dynamic; |
| 544 l12 = f12 as dynamic; | 517 l12 = f12 as dynamic; |
| 545 x12 = confuse(f12); | 518 x12 = confuse(f12); |
| 546 l12 = confuse(f12); | 519 l12 = confuse(f12); |
| 547 } | 520 } |
| 548 | 521 |
| 549 Expect.isTrue(m12 is F12); | 522 Expect.isTrue(m12 is F12); |
| 550 Expect.isTrue(m12 is core.List<core.int> Function(int x1, | 523 Expect.isTrue(m12 is core.List<core.int> Function(int x1, |
| 551 [List<Function> x]) Function(int x)); | 524 [List<Function> x]) |
| 525 Function(int x)); |
| 552 Expect.isTrue(confuse(m12) is F12); | 526 Expect.isTrue(confuse(m12) is F12); |
| 553 // In checked mode, verifies the type. | 527 // In checked mode, verifies the type. |
| 554 x12 = m12; | 528 x12 = m12; |
| 555 l12 = m12; | 529 l12 = m12; |
| 556 x12 = confuse(m12); | 530 x12 = confuse(m12); |
| 557 l12 = confuse(m12); | 531 l12 = confuse(m12); |
| 558 } | 532 } |
| 559 | 533 |
| 560 /// core.List<core.int> Function([List<T> x1]) Function(int x) | 534 /// core.List<core.int> Function([List<T> x1]) Function(int x) |
| 561 void testF13() { | 535 void testF13() { |
| (...skipping 19 matching lines...) Expand all Loading... |
| 581 x13 = confuse(m13); | 555 x13 = confuse(m13); |
| 582 l13 = confuse(m13); | 556 l13 = confuse(m13); |
| 583 if (!tIsBool) { | 557 if (!tIsBool) { |
| 584 Expect.isTrue(f13 is F13<int>); | 558 Expect.isTrue(f13 is F13<int>); |
| 585 Expect.isFalse(f13 is F13<bool>); | 559 Expect.isFalse(f13 is F13<bool>); |
| 586 Expect.isTrue(confuse(f13) is F13<int>); | 560 Expect.isTrue(confuse(f13) is F13<int>); |
| 587 Expect.isFalse(confuse(f13) is F13<bool>); | 561 Expect.isFalse(confuse(f13) is F13<bool>); |
| 588 Expect.equals(tIsDynamic, m13 is F13<bool>); | 562 Expect.equals(tIsDynamic, m13 is F13<bool>); |
| 589 Expect.equals(tIsDynamic, confuse(m13) is F13<bool>); | 563 Expect.equals(tIsDynamic, confuse(m13) is F13<bool>); |
| 590 } else { | 564 } else { |
| 591 if (inCheckedMode) { | 565 if (typeAssertionsEnabled) { |
| 592 Expect.throws(() { | 566 Expect.throws(() { |
| 593 x13 = (f13 as dynamic); | 567 x13 = (f13 as dynamic); |
| 594 }); | 568 }); |
| 595 Expect.throws(() { | 569 Expect.throws(() { |
| 596 x13 = confuse(f13); | 570 x13 = confuse(f13); |
| 597 }); | 571 }); |
| 598 core.List<core.int> Function([List<T> x1]) Function(int x) l13; | 572 core.List<core.int> Function([List<T> x1]) Function(int x) l13; |
| 599 Expect.throws(() { | 573 Expect.throws(() { |
| 600 l13 = (f13 as dynamic); | 574 l13 = (f13 as dynamic); |
| 601 }); | 575 }); |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 634 x14 = confuse(m14); | 608 x14 = confuse(m14); |
| 635 l14 = confuse(m14); | 609 l14 = confuse(m14); |
| 636 if (!tIsBool) { | 610 if (!tIsBool) { |
| 637 Expect.isTrue(f14 is F14<int>); | 611 Expect.isTrue(f14 is F14<int>); |
| 638 Expect.isFalse(f14 is F14<bool>); | 612 Expect.isFalse(f14 is F14<bool>); |
| 639 Expect.isTrue(confuse(f14) is F14<int>); | 613 Expect.isTrue(confuse(f14) is F14<int>); |
| 640 Expect.isFalse(confuse(f14) is F14<bool>); | 614 Expect.isFalse(confuse(f14) is F14<bool>); |
| 641 Expect.equals(tIsDynamic, m14 is F14<bool>); | 615 Expect.equals(tIsDynamic, m14 is F14<bool>); |
| 642 Expect.equals(tIsDynamic, confuse(m14) is F14<bool>); | 616 Expect.equals(tIsDynamic, confuse(m14) is F14<bool>); |
| 643 } else { | 617 } else { |
| 644 if (inCheckedMode) { | 618 if (typeAssertionsEnabled) { |
| 645 Expect.throws(() { | 619 Expect.throws(() { |
| 646 x14 = (f14 as dynamic); | 620 x14 = (f14 as dynamic); |
| 647 }); | 621 }); |
| 648 Expect.throws(() { | 622 Expect.throws(() { |
| 649 x14 = confuse(f14); | 623 x14 = confuse(f14); |
| 650 }); | 624 }); |
| 651 List<T> Function(int x, [Function x1]) Function(int x) l14; | 625 List<T> Function(int x, [Function x1]) Function(int x) l14; |
| 652 Expect.throws(() { | 626 Expect.throws(() { |
| 653 l14 = (f14 as dynamic); | 627 l14 = (f14 as dynamic); |
| 654 }); | 628 }); |
| (...skipping 16 matching lines...) Expand all Loading... |
| 671 List<T> Function(int y, {core.List<core.int> x}) Function(int x) l15; | 645 List<T> Function(int y, {core.List<core.int> x}) Function(int x) l15; |
| 672 // The static function f15 sets `T` to `int`. | 646 // The static function f15 sets `T` to `int`. |
| 673 if (!tIsBool) { | 647 if (!tIsBool) { |
| 674 x15 = f15 as dynamic; | 648 x15 = f15 as dynamic; |
| 675 l15 = f15 as dynamic; | 649 l15 = f15 as dynamic; |
| 676 x15 = confuse(f15); | 650 x15 = confuse(f15); |
| 677 l15 = confuse(f15); | 651 l15 = confuse(f15); |
| 678 } | 652 } |
| 679 | 653 |
| 680 Expect.isTrue(m15 is F15); | 654 Expect.isTrue(m15 is F15); |
| 681 Expect.isTrue(m15 is List<T> Function(int y, | 655 Expect.isTrue(m15 is List<T> Function(int y, {core.List<core.int> x}) |
| 682 {core.List<core.int> x}) Function(int x)); | 656 Function(int x)); |
| 683 Expect.isTrue(confuse(m15) is F15); | 657 Expect.isTrue(confuse(m15) is F15); |
| 684 // In checked mode, verifies the type. | 658 // In checked mode, verifies the type. |
| 685 x15 = m15; | 659 x15 = m15; |
| 686 l15 = m15; | 660 l15 = m15; |
| 687 x15 = confuse(m15); | 661 x15 = confuse(m15); |
| 688 l15 = confuse(m15); | 662 l15 = confuse(m15); |
| 689 if (!tIsBool) { | 663 if (!tIsBool) { |
| 690 Expect.isTrue(f15 is F15<int>); | 664 Expect.isTrue(f15 is F15<int>); |
| 691 Expect.isFalse(f15 is F15<bool>); | 665 Expect.isFalse(f15 is F15<bool>); |
| 692 Expect.isTrue(confuse(f15) is F15<int>); | 666 Expect.isTrue(confuse(f15) is F15<int>); |
| 693 Expect.isFalse(confuse(f15) is F15<bool>); | 667 Expect.isFalse(confuse(f15) is F15<bool>); |
| 694 Expect.equals(tIsDynamic, m15 is F15<bool>); | 668 Expect.equals(tIsDynamic, m15 is F15<bool>); |
| 695 Expect.equals(tIsDynamic, confuse(m15) is F15<bool>); | 669 Expect.equals(tIsDynamic, confuse(m15) is F15<bool>); |
| 696 } else { | 670 } else { |
| 697 if (inCheckedMode) { | 671 if (typeAssertionsEnabled) { |
| 698 Expect.throws(() { | 672 Expect.throws(() { |
| 699 x15 = (f15 as dynamic); | 673 x15 = (f15 as dynamic); |
| 700 }); | 674 }); |
| 701 Expect.throws(() { | 675 Expect.throws(() { |
| 702 x15 = confuse(f15); | 676 x15 = confuse(f15); |
| 703 }); | 677 }); |
| 704 List<T> Function(int y, {core.List<core.int> x}) Function(int x) l15; | 678 List<T> Function(int y, {core.List<core.int> x}) Function(int x) l15; |
| 705 Expect.throws(() { | 679 Expect.throws(() { |
| 706 l15 = (f15 as dynamic); | 680 l15 = (f15 as dynamic); |
| 707 }); | 681 }); |
| (...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 910 x23 = confuse(m23); | 884 x23 = confuse(m23); |
| 911 l23 = confuse(m23); | 885 l23 = confuse(m23); |
| 912 } | 886 } |
| 913 } | 887 } |
| 914 | 888 |
| 915 void main() { | 889 void main() { |
| 916 new U33().runTests(); | 890 new U33().runTests(); |
| 917 new U33<int>(tIsInt: true).runTests(); | 891 new U33<int>(tIsInt: true).runTests(); |
| 918 new U33<bool>(tIsBool: true).runTests(); | 892 new U33<bool>(tIsBool: true).runTests(); |
| 919 } | 893 } |
| OLD | NEW |