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