1{ 2 "type": "Program", 3 "statements": [ 4 { 5 "type": "ClassDeclaration", 6 "definition": { 7 "id": { 8 "type": "Identifier", 9 "name": "Tup", 10 "decorators": [], 11 "loc": { 12 "start": { 13 "line": 17, 14 "column": 7, 15 "program": "generics_5.ets" 16 }, 17 "end": { 18 "line": 17, 19 "column": 10, 20 "program": "generics_5.ets" 21 } 22 } 23 }, 24 "typeParameters": { 25 "type": "TSTypeParameterDeclaration", 26 "params": [ 27 { 28 "type": "TSTypeParameter", 29 "name": { 30 "type": "Identifier", 31 "name": "A", 32 "decorators": [], 33 "loc": { 34 "start": { 35 "line": 17, 36 "column": 11, 37 "program": "generics_5.ets" 38 }, 39 "end": { 40 "line": 17, 41 "column": 12, 42 "program": "generics_5.ets" 43 } 44 } 45 }, 46 "loc": { 47 "start": { 48 "line": 17, 49 "column": 11, 50 "program": "generics_5.ets" 51 }, 52 "end": { 53 "line": 17, 54 "column": 13, 55 "program": "generics_5.ets" 56 } 57 } 58 } 59 ], 60 "loc": { 61 "start": { 62 "line": 17, 63 "column": 10, 64 "program": "generics_5.ets" 65 }, 66 "end": { 67 "line": 17, 68 "column": 13, 69 "program": "generics_5.ets" 70 } 71 } 72 }, 73 "superClass": null, 74 "implements": [], 75 "body": [ 76 { 77 "type": "MethodDefinition", 78 "key": { 79 "type": "Identifier", 80 "name": "constructor", 81 "decorators": [], 82 "loc": { 83 "start": { 84 "line": 17, 85 "column": 15, 86 "program": "generics_5.ets" 87 }, 88 "end": { 89 "line": 17, 90 "column": 15, 91 "program": "generics_5.ets" 92 } 93 } 94 }, 95 "kind": "constructor", 96 "static": false, 97 "optional": false, 98 "computed": false, 99 "value": { 100 "type": "FunctionExpression", 101 "function": { 102 "type": "ScriptFunction", 103 "id": { 104 "type": "Identifier", 105 "name": "constructor", 106 "decorators": [], 107 "loc": { 108 "start": { 109 "line": 17, 110 "column": 15, 111 "program": "generics_5.ets" 112 }, 113 "end": { 114 "line": 17, 115 "column": 15, 116 "program": "generics_5.ets" 117 } 118 } 119 }, 120 "generator": false, 121 "async": false, 122 "expression": false, 123 "params": [], 124 "body": { 125 "type": "BlockStatement", 126 "statements": [], 127 "loc": { 128 "start": { 129 "line": 17, 130 "column": 15, 131 "program": "generics_5.ets" 132 }, 133 "end": { 134 "line": 17, 135 "column": 15, 136 "program": "generics_5.ets" 137 } 138 } 139 }, 140 "loc": { 141 "start": { 142 "line": 17, 143 "column": 15, 144 "program": "generics_5.ets" 145 }, 146 "end": { 147 "line": 17, 148 "column": 15, 149 "program": "generics_5.ets" 150 } 151 } 152 }, 153 "loc": { 154 "start": { 155 "line": 17, 156 "column": 15, 157 "program": "generics_5.ets" 158 }, 159 "end": { 160 "line": 17, 161 "column": 15, 162 "program": "generics_5.ets" 163 } 164 } 165 }, 166 "overloads": [], 167 "decorators": [], 168 "loc": { 169 "start": { 170 "line": 1, 171 "column": 1, 172 "program": null 173 }, 174 "end": { 175 "line": 1, 176 "column": 1, 177 "program": null 178 } 179 } 180 } 181 ], 182 "loc": { 183 "start": { 184 "line": 17, 185 "column": 14, 186 "program": "generics_5.ets" 187 }, 188 "end": { 189 "line": 18, 190 "column": 9, 191 "program": "generics_5.ets" 192 } 193 } 194 }, 195 "loc": { 196 "start": { 197 "line": 17, 198 "column": 1, 199 "program": "generics_5.ets" 200 }, 201 "end": { 202 "line": 18, 203 "column": 9, 204 "program": "generics_5.ets" 205 } 206 } 207 }, 208 { 209 "type": "ClassDeclaration", 210 "definition": { 211 "id": { 212 "type": "Identifier", 213 "name": "ETSGLOBAL", 214 "decorators": [], 215 "loc": { 216 "start": { 217 "line": 1, 218 "column": 1, 219 "program": "generics_5.ets" 220 }, 221 "end": { 222 "line": 1, 223 "column": 1, 224 "program": "generics_5.ets" 225 } 226 } 227 }, 228 "superClass": null, 229 "implements": [], 230 "body": [ 231 { 232 "type": "MethodDefinition", 233 "key": { 234 "type": "Identifier", 235 "name": "_$init$_", 236 "decorators": [], 237 "loc": { 238 "start": { 239 "line": 1, 240 "column": 1, 241 "program": null 242 }, 243 "end": { 244 "line": 1, 245 "column": 1, 246 "program": null 247 } 248 } 249 }, 250 "kind": "method", 251 "accessibility": "public", 252 "static": true, 253 "optional": false, 254 "computed": false, 255 "value": { 256 "type": "FunctionExpression", 257 "function": { 258 "type": "ScriptFunction", 259 "id": { 260 "type": "Identifier", 261 "name": "_$init$_", 262 "decorators": [], 263 "loc": { 264 "start": { 265 "line": 1, 266 "column": 1, 267 "program": null 268 }, 269 "end": { 270 "line": 1, 271 "column": 1, 272 "program": null 273 } 274 } 275 }, 276 "generator": false, 277 "async": false, 278 "expression": false, 279 "params": [], 280 "body": { 281 "type": "BlockStatement", 282 "statements": [], 283 "loc": { 284 "start": { 285 "line": 1, 286 "column": 1, 287 "program": null 288 }, 289 "end": { 290 "line": 1, 291 "column": 1, 292 "program": null 293 } 294 } 295 }, 296 "loc": { 297 "start": { 298 "line": 1, 299 "column": 1, 300 "program": null 301 }, 302 "end": { 303 "line": 1, 304 "column": 1, 305 "program": null 306 } 307 } 308 }, 309 "loc": { 310 "start": { 311 "line": 1, 312 "column": 1, 313 "program": null 314 }, 315 "end": { 316 "line": 1, 317 "column": 1, 318 "program": null 319 } 320 } 321 }, 322 "overloads": [], 323 "decorators": [], 324 "loc": { 325 "start": { 326 "line": 1, 327 "column": 1, 328 "program": "generics_5.ets" 329 }, 330 "end": { 331 "line": 1, 332 "column": 1, 333 "program": "generics_5.ets" 334 } 335 } 336 }, 337 { 338 "type": "MethodDefinition", 339 "key": { 340 "type": "Identifier", 341 "name": "foo", 342 "decorators": [], 343 "loc": { 344 "start": { 345 "line": 16, 346 "column": 10, 347 "program": "generics_5.ets" 348 }, 349 "end": { 350 "line": 16, 351 "column": 13, 352 "program": "generics_5.ets" 353 } 354 } 355 }, 356 "kind": "method", 357 "accessibility": "public", 358 "static": true, 359 "optional": false, 360 "computed": false, 361 "value": { 362 "type": "FunctionExpression", 363 "function": { 364 "type": "ScriptFunction", 365 "id": { 366 "type": "Identifier", 367 "name": "foo", 368 "decorators": [], 369 "loc": { 370 "start": { 371 "line": 16, 372 "column": 10, 373 "program": "generics_5.ets" 374 }, 375 "end": { 376 "line": 16, 377 "column": 13, 378 "program": "generics_5.ets" 379 } 380 } 381 }, 382 "generator": false, 383 "async": false, 384 "expression": false, 385 "params": [ 386 { 387 "type": "ETSParameterExpression", 388 "name": { 389 "type": "Identifier", 390 "name": "x", 391 "typeAnnotation": { 392 "type": "ETSFunctionType", 393 "params": [], 394 "returnType": { 395 "type": "ETSTypeReference", 396 "part": { 397 "type": "ETSTypeReferencePart", 398 "name": { 399 "type": "Identifier", 400 "name": "T", 401 "decorators": [], 402 "loc": { 403 "start": { 404 "line": 16, 405 "column": 26, 406 "program": "generics_5.ets" 407 }, 408 "end": { 409 "line": 16, 410 "column": 27, 411 "program": "generics_5.ets" 412 } 413 } 414 }, 415 "loc": { 416 "start": { 417 "line": 16, 418 "column": 26, 419 "program": "generics_5.ets" 420 }, 421 "end": { 422 "line": 16, 423 "column": 28, 424 "program": "generics_5.ets" 425 } 426 } 427 }, 428 "loc": { 429 "start": { 430 "line": 16, 431 "column": 26, 432 "program": "generics_5.ets" 433 }, 434 "end": { 435 "line": 16, 436 "column": 28, 437 "program": "generics_5.ets" 438 } 439 } 440 }, 441 "loc": { 442 "start": { 443 "line": 16, 444 "column": 20, 445 "program": "generics_5.ets" 446 }, 447 "end": { 448 "line": 16, 449 "column": 28, 450 "program": "generics_5.ets" 451 } 452 } 453 }, 454 "decorators": [], 455 "loc": { 456 "start": { 457 "line": 16, 458 "column": 17, 459 "program": "generics_5.ets" 460 }, 461 "end": { 462 "line": 16, 463 "column": 28, 464 "program": "generics_5.ets" 465 } 466 } 467 }, 468 "loc": { 469 "start": { 470 "line": 16, 471 "column": 17, 472 "program": "generics_5.ets" 473 }, 474 "end": { 475 "line": 16, 476 "column": 28, 477 "program": "generics_5.ets" 478 } 479 } 480 } 481 ], 482 "returnType": { 483 "type": "ETSPrimitiveType", 484 "loc": { 485 "start": { 486 "line": 16, 487 "column": 30, 488 "program": "generics_5.ets" 489 }, 490 "end": { 491 "line": 16, 492 "column": 34, 493 "program": "generics_5.ets" 494 } 495 } 496 }, 497 "typeParameters": { 498 "type": "TSTypeParameterDeclaration", 499 "params": [ 500 { 501 "type": "TSTypeParameter", 502 "name": { 503 "type": "Identifier", 504 "name": "T", 505 "decorators": [], 506 "loc": { 507 "start": { 508 "line": 16, 509 "column": 14, 510 "program": "generics_5.ets" 511 }, 512 "end": { 513 "line": 16, 514 "column": 15, 515 "program": "generics_5.ets" 516 } 517 } 518 }, 519 "loc": { 520 "start": { 521 "line": 16, 522 "column": 14, 523 "program": "generics_5.ets" 524 }, 525 "end": { 526 "line": 16, 527 "column": 16, 528 "program": "generics_5.ets" 529 } 530 } 531 } 532 ], 533 "loc": { 534 "start": { 535 "line": 16, 536 "column": 13, 537 "program": "generics_5.ets" 538 }, 539 "end": { 540 "line": 16, 541 "column": 16, 542 "program": "generics_5.ets" 543 } 544 } 545 }, 546 "body": { 547 "type": "BlockStatement", 548 "statements": [], 549 "loc": { 550 "start": { 551 "line": 16, 552 "column": 35, 553 "program": "generics_5.ets" 554 }, 555 "end": { 556 "line": 16, 557 "column": 37, 558 "program": "generics_5.ets" 559 } 560 } 561 }, 562 "loc": { 563 "start": { 564 "line": 16, 565 "column": 10, 566 "program": "generics_5.ets" 567 }, 568 "end": { 569 "line": 16, 570 "column": 37, 571 "program": "generics_5.ets" 572 } 573 } 574 }, 575 "loc": { 576 "start": { 577 "line": 16, 578 "column": 10, 579 "program": "generics_5.ets" 580 }, 581 "end": { 582 "line": 16, 583 "column": 37, 584 "program": "generics_5.ets" 585 } 586 } 587 }, 588 "overloads": [], 589 "decorators": [], 590 "loc": { 591 "start": { 592 "line": 16, 593 "column": 1, 594 "program": "generics_5.ets" 595 }, 596 "end": { 597 "line": 16, 598 "column": 37, 599 "program": "generics_5.ets" 600 } 601 } 602 }, 603 { 604 "type": "MethodDefinition", 605 "key": { 606 "type": "Identifier", 607 "name": "main", 608 "decorators": [], 609 "loc": { 610 "start": { 611 "line": 18, 612 "column": 10, 613 "program": "generics_5.ets" 614 }, 615 "end": { 616 "line": 18, 617 "column": 14, 618 "program": "generics_5.ets" 619 } 620 } 621 }, 622 "kind": "method", 623 "accessibility": "public", 624 "static": true, 625 "optional": false, 626 "computed": false, 627 "value": { 628 "type": "FunctionExpression", 629 "function": { 630 "type": "ScriptFunction", 631 "id": { 632 "type": "Identifier", 633 "name": "main", 634 "decorators": [], 635 "loc": { 636 "start": { 637 "line": 18, 638 "column": 10, 639 "program": "generics_5.ets" 640 }, 641 "end": { 642 "line": 18, 643 "column": 14, 644 "program": "generics_5.ets" 645 } 646 } 647 }, 648 "generator": false, 649 "async": false, 650 "expression": false, 651 "params": [], 652 "returnType": { 653 "type": "ETSPrimitiveType", 654 "loc": { 655 "start": { 656 "line": 18, 657 "column": 18, 658 "program": "generics_5.ets" 659 }, 660 "end": { 661 "line": 18, 662 "column": 22, 663 "program": "generics_5.ets" 664 } 665 } 666 }, 667 "body": { 668 "type": "BlockStatement", 669 "statements": [ 670 { 671 "type": "ExpressionStatement", 672 "expression": { 673 "type": "CallExpression", 674 "callee": { 675 "type": "Identifier", 676 "name": "foo", 677 "decorators": [], 678 "loc": { 679 "start": { 680 "line": 19, 681 "column": 3, 682 "program": "generics_5.ets" 683 }, 684 "end": { 685 "line": 19, 686 "column": 6, 687 "program": "generics_5.ets" 688 } 689 } 690 }, 691 "arguments": [ 692 { 693 "type": "ArrowFunctionExpression", 694 "function": { 695 "type": "ScriptFunction", 696 "id": null, 697 "generator": false, 698 "async": false, 699 "expression": false, 700 "params": [], 701 "returnType": { 702 "type": "ETSTypeReference", 703 "part": { 704 "type": "ETSTypeReferencePart", 705 "name": { 706 "type": "Identifier", 707 "name": "Tup", 708 "decorators": [], 709 "loc": { 710 "start": { 711 "line": 19, 712 "column": 24, 713 "program": "generics_5.ets" 714 }, 715 "end": { 716 "line": 19, 717 "column": 27, 718 "program": "generics_5.ets" 719 } 720 } 721 }, 722 "typeParams": { 723 "type": "TSTypeParameterInstantiation", 724 "params": [ 725 { 726 "type": "ETSTypeReference", 727 "part": { 728 "type": "ETSTypeReferencePart", 729 "name": { 730 "type": "Identifier", 731 "name": "number", 732 "decorators": [], 733 "loc": { 734 "start": { 735 "line": 19, 736 "column": 28, 737 "program": "generics_5.ets" 738 }, 739 "end": { 740 "line": 19, 741 "column": 34, 742 "program": "generics_5.ets" 743 } 744 } 745 }, 746 "loc": { 747 "start": { 748 "line": 19, 749 "column": 28, 750 "program": "generics_5.ets" 751 }, 752 "end": { 753 "line": 19, 754 "column": 35, 755 "program": "generics_5.ets" 756 } 757 } 758 }, 759 "loc": { 760 "start": { 761 "line": 19, 762 "column": 28, 763 "program": "generics_5.ets" 764 }, 765 "end": { 766 "line": 19, 767 "column": 35, 768 "program": "generics_5.ets" 769 } 770 } 771 } 772 ], 773 "loc": { 774 "start": { 775 "line": 19, 776 "column": 27, 777 "program": "generics_5.ets" 778 }, 779 "end": { 780 "line": 19, 781 "column": 35, 782 "program": "generics_5.ets" 783 } 784 } 785 }, 786 "loc": { 787 "start": { 788 "line": 19, 789 "column": 24, 790 "program": "generics_5.ets" 791 }, 792 "end": { 793 "line": 19, 794 "column": 38, 795 "program": "generics_5.ets" 796 } 797 } 798 }, 799 "loc": { 800 "start": { 801 "line": 19, 802 "column": 24, 803 "program": "generics_5.ets" 804 }, 805 "end": { 806 "line": 19, 807 "column": 38, 808 "program": "generics_5.ets" 809 } 810 } 811 }, 812 "body": { 813 "type": "BlockStatement", 814 "statements": [ 815 { 816 "type": "ThrowStatement", 817 "argument": { 818 "type": "ETSNewClassInstanceExpression", 819 "typeReference": { 820 "type": "ETSTypeReference", 821 "part": { 822 "type": "ETSTypeReferencePart", 823 "name": { 824 "type": "Identifier", 825 "name": "Error", 826 "decorators": [], 827 "loc": { 828 "start": { 829 "line": 19, 830 "column": 51, 831 "program": "generics_5.ets" 832 }, 833 "end": { 834 "line": 19, 835 "column": 56, 836 "program": "generics_5.ets" 837 } 838 } 839 }, 840 "loc": { 841 "start": { 842 "line": 19, 843 "column": 51, 844 "program": "generics_5.ets" 845 }, 846 "end": { 847 "line": 19, 848 "column": 57, 849 "program": "generics_5.ets" 850 } 851 } 852 }, 853 "loc": { 854 "start": { 855 "line": 19, 856 "column": 51, 857 "program": "generics_5.ets" 858 }, 859 "end": { 860 "line": 19, 861 "column": 57, 862 "program": "generics_5.ets" 863 } 864 } 865 }, 866 "arguments": [], 867 "loc": { 868 "start": { 869 "line": 19, 870 "column": 47, 871 "program": "generics_5.ets" 872 }, 873 "end": { 874 "line": 19, 875 "column": 60, 876 "program": "generics_5.ets" 877 } 878 } 879 }, 880 "loc": { 881 "start": { 882 "line": 19, 883 "column": 41, 884 "program": "generics_5.ets" 885 }, 886 "end": { 887 "line": 19, 888 "column": 60, 889 "program": "generics_5.ets" 890 } 891 } 892 } 893 ], 894 "loc": { 895 "start": { 896 "line": 19, 897 "column": 39, 898 "program": "generics_5.ets" 899 }, 900 "end": { 901 "line": 19, 902 "column": 60, 903 "program": "generics_5.ets" 904 } 905 } 906 }, 907 "loc": { 908 "start": { 909 "line": 19, 910 "column": 20, 911 "program": "generics_5.ets" 912 }, 913 "end": { 914 "line": 19, 915 "column": 60, 916 "program": "generics_5.ets" 917 } 918 } 919 }, 920 "loc": { 921 "start": { 922 "line": 19, 923 "column": 20, 924 "program": "generics_5.ets" 925 }, 926 "end": { 927 "line": 19, 928 "column": 60, 929 "program": "generics_5.ets" 930 } 931 } 932 } 933 ], 934 "optional": false, 935 "typeParameters": { 936 "type": "TSTypeParameterInstantiation", 937 "params": [ 938 { 939 "type": "ETSTypeReference", 940 "part": { 941 "type": "ETSTypeReferencePart", 942 "name": { 943 "type": "Identifier", 944 "name": "Tup", 945 "decorators": [], 946 "loc": { 947 "start": { 948 "line": 19, 949 "column": 7, 950 "program": "generics_5.ets" 951 }, 952 "end": { 953 "line": 19, 954 "column": 10, 955 "program": "generics_5.ets" 956 } 957 } 958 }, 959 "typeParams": { 960 "type": "TSTypeParameterInstantiation", 961 "params": [ 962 { 963 "type": "ETSTypeReference", 964 "part": { 965 "type": "ETSTypeReferencePart", 966 "name": { 967 "type": "Identifier", 968 "name": "number", 969 "decorators": [], 970 "loc": { 971 "start": { 972 "line": 19, 973 "column": 11, 974 "program": "generics_5.ets" 975 }, 976 "end": { 977 "line": 19, 978 "column": 17, 979 "program": "generics_5.ets" 980 } 981 } 982 }, 983 "loc": { 984 "start": { 985 "line": 19, 986 "column": 11, 987 "program": "generics_5.ets" 988 }, 989 "end": { 990 "line": 19, 991 "column": 19, 992 "program": "generics_5.ets" 993 } 994 } 995 }, 996 "loc": { 997 "start": { 998 "line": 19, 999 "column": 11, 1000 "program": "generics_5.ets" 1001 }, 1002 "end": { 1003 "line": 19, 1004 "column": 19, 1005 "program": "generics_5.ets" 1006 } 1007 } 1008 } 1009 ], 1010 "loc": { 1011 "start": { 1012 "line": 19, 1013 "column": 10, 1014 "program": "generics_5.ets" 1015 }, 1016 "end": { 1017 "line": 19, 1018 "column": 19, 1019 "program": "generics_5.ets" 1020 } 1021 } 1022 }, 1023 "loc": { 1024 "start": { 1025 "line": 19, 1026 "column": 7, 1027 "program": "generics_5.ets" 1028 }, 1029 "end": { 1030 "line": 19, 1031 "column": 19, 1032 "program": "generics_5.ets" 1033 } 1034 } 1035 }, 1036 "loc": { 1037 "start": { 1038 "line": 19, 1039 "column": 7, 1040 "program": "generics_5.ets" 1041 }, 1042 "end": { 1043 "line": 19, 1044 "column": 19, 1045 "program": "generics_5.ets" 1046 } 1047 } 1048 } 1049 ], 1050 "loc": { 1051 "start": { 1052 "line": 19, 1053 "column": 6, 1054 "program": "generics_5.ets" 1055 }, 1056 "end": { 1057 "line": 19, 1058 "column": 19, 1059 "program": "generics_5.ets" 1060 } 1061 } 1062 }, 1063 "loc": { 1064 "start": { 1065 "line": 19, 1066 "column": 3, 1067 "program": "generics_5.ets" 1068 }, 1069 "end": { 1070 "line": 19, 1071 "column": 61, 1072 "program": "generics_5.ets" 1073 } 1074 } 1075 }, 1076 "loc": { 1077 "start": { 1078 "line": 19, 1079 "column": 3, 1080 "program": "generics_5.ets" 1081 }, 1082 "end": { 1083 "line": 19, 1084 "column": 62, 1085 "program": "generics_5.ets" 1086 } 1087 } 1088 } 1089 ], 1090 "loc": { 1091 "start": { 1092 "line": 18, 1093 "column": 23, 1094 "program": "generics_5.ets" 1095 }, 1096 "end": { 1097 "line": 20, 1098 "column": 2, 1099 "program": "generics_5.ets" 1100 } 1101 } 1102 }, 1103 "loc": { 1104 "start": { 1105 "line": 18, 1106 "column": 10, 1107 "program": "generics_5.ets" 1108 }, 1109 "end": { 1110 "line": 20, 1111 "column": 2, 1112 "program": "generics_5.ets" 1113 } 1114 } 1115 }, 1116 "loc": { 1117 "start": { 1118 "line": 18, 1119 "column": 10, 1120 "program": "generics_5.ets" 1121 }, 1122 "end": { 1123 "line": 20, 1124 "column": 2, 1125 "program": "generics_5.ets" 1126 } 1127 } 1128 }, 1129 "overloads": [], 1130 "decorators": [], 1131 "loc": { 1132 "start": { 1133 "line": 18, 1134 "column": 1, 1135 "program": "generics_5.ets" 1136 }, 1137 "end": { 1138 "line": 20, 1139 "column": 2, 1140 "program": "generics_5.ets" 1141 } 1142 } 1143 } 1144 ], 1145 "loc": { 1146 "start": { 1147 "line": 1, 1148 "column": 1, 1149 "program": "generics_5.ets" 1150 }, 1151 "end": { 1152 "line": 1, 1153 "column": 1, 1154 "program": "generics_5.ets" 1155 } 1156 } 1157 }, 1158 "loc": { 1159 "start": { 1160 "line": 1, 1161 "column": 1, 1162 "program": "generics_5.ets" 1163 }, 1164 "end": { 1165 "line": 1, 1166 "column": 1, 1167 "program": "generics_5.ets" 1168 } 1169 } 1170 } 1171 ], 1172 "loc": { 1173 "start": { 1174 "line": 1, 1175 "column": 1, 1176 "program": "generics_5.ets" 1177 }, 1178 "end": { 1179 "line": 22, 1180 "column": 1, 1181 "program": "generics_5.ets" 1182 } 1183 } 1184} 1185