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": "generics_recursive.ets" 16 }, 17 "end": { 18 "line": 16, 19 "column": 8, 20 "program": "generics_recursive.ets" 21 } 22 } 23 }, 24 "typeParameters": { 25 "type": "TSTypeParameterDeclaration", 26 "params": [ 27 { 28 "type": "TSTypeParameter", 29 "name": { 30 "type": "Identifier", 31 "name": "TA", 32 "decorators": [], 33 "loc": { 34 "start": { 35 "line": 16, 36 "column": 9, 37 "program": "generics_recursive.ets" 38 }, 39 "end": { 40 "line": 16, 41 "column": 11, 42 "program": "generics_recursive.ets" 43 } 44 } 45 }, 46 "loc": { 47 "start": { 48 "line": 16, 49 "column": 9, 50 "program": "generics_recursive.ets" 51 }, 52 "end": { 53 "line": 16, 54 "column": 12, 55 "program": "generics_recursive.ets" 56 } 57 } 58 } 59 ], 60 "loc": { 61 "start": { 62 "line": 16, 63 "column": 8, 64 "program": "generics_recursive.ets" 65 }, 66 "end": { 67 "line": 16, 68 "column": 12, 69 "program": "generics_recursive.ets" 70 } 71 } 72 }, 73 "superClass": { 74 "type": "ETSTypeReference", 75 "part": { 76 "type": "ETSTypeReferencePart", 77 "name": { 78 "type": "Identifier", 79 "name": "B", 80 "decorators": [], 81 "loc": { 82 "start": { 83 "line": 16, 84 "column": 21, 85 "program": "generics_recursive.ets" 86 }, 87 "end": { 88 "line": 16, 89 "column": 22, 90 "program": "generics_recursive.ets" 91 } 92 } 93 }, 94 "typeParams": { 95 "type": "TSTypeParameterInstantiation", 96 "params": [ 97 { 98 "type": "ETSTypeReference", 99 "part": { 100 "type": "ETSTypeReferencePart", 101 "name": { 102 "type": "Identifier", 103 "name": "TA", 104 "decorators": [], 105 "loc": { 106 "start": { 107 "line": 16, 108 "column": 23, 109 "program": "generics_recursive.ets" 110 }, 111 "end": { 112 "line": 16, 113 "column": 25, 114 "program": "generics_recursive.ets" 115 } 116 } 117 }, 118 "loc": { 119 "start": { 120 "line": 16, 121 "column": 23, 122 "program": "generics_recursive.ets" 123 }, 124 "end": { 125 "line": 16, 126 "column": 26, 127 "program": "generics_recursive.ets" 128 } 129 } 130 }, 131 "loc": { 132 "start": { 133 "line": 16, 134 "column": 23, 135 "program": "generics_recursive.ets" 136 }, 137 "end": { 138 "line": 16, 139 "column": 26, 140 "program": "generics_recursive.ets" 141 } 142 } 143 } 144 ], 145 "loc": { 146 "start": { 147 "line": 16, 148 "column": 22, 149 "program": "generics_recursive.ets" 150 }, 151 "end": { 152 "line": 16, 153 "column": 26, 154 "program": "generics_recursive.ets" 155 } 156 } 157 }, 158 "loc": { 159 "start": { 160 "line": 16, 161 "column": 21, 162 "program": "generics_recursive.ets" 163 }, 164 "end": { 165 "line": 16, 166 "column": 28, 167 "program": "generics_recursive.ets" 168 } 169 } 170 }, 171 "loc": { 172 "start": { 173 "line": 16, 174 "column": 21, 175 "program": "generics_recursive.ets" 176 }, 177 "end": { 178 "line": 16, 179 "column": 28, 180 "program": "generics_recursive.ets" 181 } 182 } 183 }, 184 "implements": [], 185 "body": [ 186 { 187 "type": "MethodDefinition", 188 "key": { 189 "type": "Identifier", 190 "name": "constructor", 191 "decorators": [], 192 "loc": { 193 "start": { 194 "line": 16, 195 "column": 28, 196 "program": "generics_recursive.ets" 197 }, 198 "end": { 199 "line": 16, 200 "column": 28, 201 "program": "generics_recursive.ets" 202 } 203 } 204 }, 205 "kind": "constructor", 206 "static": false, 207 "optional": false, 208 "computed": false, 209 "value": { 210 "type": "FunctionExpression", 211 "function": { 212 "type": "ScriptFunction", 213 "id": { 214 "type": "Identifier", 215 "name": "constructor", 216 "decorators": [], 217 "loc": { 218 "start": { 219 "line": 16, 220 "column": 28, 221 "program": "generics_recursive.ets" 222 }, 223 "end": { 224 "line": 16, 225 "column": 28, 226 "program": "generics_recursive.ets" 227 } 228 } 229 }, 230 "generator": false, 231 "async": false, 232 "expression": false, 233 "params": [], 234 "body": { 235 "type": "BlockStatement", 236 "statements": [], 237 "loc": { 238 "start": { 239 "line": 16, 240 "column": 28, 241 "program": "generics_recursive.ets" 242 }, 243 "end": { 244 "line": 16, 245 "column": 28, 246 "program": "generics_recursive.ets" 247 } 248 } 249 }, 250 "loc": { 251 "start": { 252 "line": 16, 253 "column": 28, 254 "program": "generics_recursive.ets" 255 }, 256 "end": { 257 "line": 16, 258 "column": 28, 259 "program": "generics_recursive.ets" 260 } 261 } 262 }, 263 "loc": { 264 "start": { 265 "line": 16, 266 "column": 28, 267 "program": "generics_recursive.ets" 268 }, 269 "end": { 270 "line": 16, 271 "column": 28, 272 "program": "generics_recursive.ets" 273 } 274 } 275 }, 276 "overloads": [], 277 "decorators": [], 278 "loc": { 279 "start": { 280 "line": 1, 281 "column": 1, 282 "program": null 283 }, 284 "end": { 285 "line": 1, 286 "column": 1, 287 "program": null 288 } 289 } 290 } 291 ], 292 "loc": { 293 "start": { 294 "line": 16, 295 "column": 27, 296 "program": "generics_recursive.ets" 297 }, 298 "end": { 299 "line": 18, 300 "column": 6, 301 "program": "generics_recursive.ets" 302 } 303 } 304 }, 305 "loc": { 306 "start": { 307 "line": 16, 308 "column": 1, 309 "program": "generics_recursive.ets" 310 }, 311 "end": { 312 "line": 18, 313 "column": 6, 314 "program": "generics_recursive.ets" 315 } 316 } 317 }, 318 { 319 "type": "ClassDeclaration", 320 "definition": { 321 "id": { 322 "type": "Identifier", 323 "name": "B", 324 "decorators": [], 325 "loc": { 326 "start": { 327 "line": 18, 328 "column": 7, 329 "program": "generics_recursive.ets" 330 }, 331 "end": { 332 "line": 18, 333 "column": 8, 334 "program": "generics_recursive.ets" 335 } 336 } 337 }, 338 "typeParameters": { 339 "type": "TSTypeParameterDeclaration", 340 "params": [ 341 { 342 "type": "TSTypeParameter", 343 "name": { 344 "type": "Identifier", 345 "name": "TB", 346 "decorators": [], 347 "loc": { 348 "start": { 349 "line": 18, 350 "column": 9, 351 "program": "generics_recursive.ets" 352 }, 353 "end": { 354 "line": 18, 355 "column": 11, 356 "program": "generics_recursive.ets" 357 } 358 } 359 }, 360 "loc": { 361 "start": { 362 "line": 18, 363 "column": 9, 364 "program": "generics_recursive.ets" 365 }, 366 "end": { 367 "line": 18, 368 "column": 12, 369 "program": "generics_recursive.ets" 370 } 371 } 372 } 373 ], 374 "loc": { 375 "start": { 376 "line": 18, 377 "column": 8, 378 "program": "generics_recursive.ets" 379 }, 380 "end": { 381 "line": 18, 382 "column": 12, 383 "program": "generics_recursive.ets" 384 } 385 } 386 }, 387 "superClass": null, 388 "implements": [], 389 "body": [ 390 { 391 "type": "MethodDefinition", 392 "key": { 393 "type": "Identifier", 394 "name": "f", 395 "decorators": [], 396 "loc": { 397 "start": { 398 "line": 19, 399 "column": 5, 400 "program": "generics_recursive.ets" 401 }, 402 "end": { 403 "line": 19, 404 "column": 6, 405 "program": "generics_recursive.ets" 406 } 407 } 408 }, 409 "kind": "method", 410 "accessibility": "public", 411 "static": false, 412 "optional": false, 413 "computed": false, 414 "value": { 415 "type": "FunctionExpression", 416 "function": { 417 "type": "ScriptFunction", 418 "id": { 419 "type": "Identifier", 420 "name": "f", 421 "decorators": [], 422 "loc": { 423 "start": { 424 "line": 19, 425 "column": 5, 426 "program": "generics_recursive.ets" 427 }, 428 "end": { 429 "line": 19, 430 "column": 6, 431 "program": "generics_recursive.ets" 432 } 433 } 434 }, 435 "generator": false, 436 "async": false, 437 "expression": false, 438 "params": [], 439 "body": { 440 "type": "BlockStatement", 441 "statements": [], 442 "loc": { 443 "start": { 444 "line": 19, 445 "column": 9, 446 "program": "generics_recursive.ets" 447 }, 448 "end": { 449 "line": 19, 450 "column": 11, 451 "program": "generics_recursive.ets" 452 } 453 } 454 }, 455 "loc": { 456 "start": { 457 "line": 19, 458 "column": 6, 459 "program": "generics_recursive.ets" 460 }, 461 "end": { 462 "line": 19, 463 "column": 11, 464 "program": "generics_recursive.ets" 465 } 466 } 467 }, 468 "loc": { 469 "start": { 470 "line": 19, 471 "column": 6, 472 "program": "generics_recursive.ets" 473 }, 474 "end": { 475 "line": 19, 476 "column": 11, 477 "program": "generics_recursive.ets" 478 } 479 } 480 }, 481 "overloads": [], 482 "decorators": [], 483 "loc": { 484 "start": { 485 "line": 19, 486 "column": 5, 487 "program": "generics_recursive.ets" 488 }, 489 "end": { 490 "line": 19, 491 "column": 11, 492 "program": "generics_recursive.ets" 493 } 494 } 495 }, 496 { 497 "type": "MethodDefinition", 498 "key": { 499 "type": "Identifier", 500 "name": "g", 501 "decorators": [], 502 "loc": { 503 "start": { 504 "line": 20, 505 "column": 5, 506 "program": "generics_recursive.ets" 507 }, 508 "end": { 509 "line": 20, 510 "column": 6, 511 "program": "generics_recursive.ets" 512 } 513 } 514 }, 515 "kind": "method", 516 "accessibility": "public", 517 "static": false, 518 "optional": false, 519 "computed": false, 520 "value": { 521 "type": "FunctionExpression", 522 "function": { 523 "type": "ScriptFunction", 524 "id": { 525 "type": "Identifier", 526 "name": "g", 527 "decorators": [], 528 "loc": { 529 "start": { 530 "line": 20, 531 "column": 5, 532 "program": "generics_recursive.ets" 533 }, 534 "end": { 535 "line": 20, 536 "column": 6, 537 "program": "generics_recursive.ets" 538 } 539 } 540 }, 541 "generator": false, 542 "async": false, 543 "expression": false, 544 "params": [ 545 { 546 "type": "ETSParameterExpression", 547 "name": { 548 "type": "Identifier", 549 "name": "a", 550 "typeAnnotation": { 551 "type": "ETSTypeReference", 552 "part": { 553 "type": "ETSTypeReferencePart", 554 "name": { 555 "type": "Identifier", 556 "name": "A", 557 "decorators": [], 558 "loc": { 559 "start": { 560 "line": 20, 561 "column": 10, 562 "program": "generics_recursive.ets" 563 }, 564 "end": { 565 "line": 20, 566 "column": 11, 567 "program": "generics_recursive.ets" 568 } 569 } 570 }, 571 "typeParams": { 572 "type": "TSTypeParameterInstantiation", 573 "params": [ 574 { 575 "type": "ETSTypeReference", 576 "part": { 577 "type": "ETSTypeReferencePart", 578 "name": { 579 "type": "Identifier", 580 "name": "TB", 581 "decorators": [], 582 "loc": { 583 "start": { 584 "line": 20, 585 "column": 12, 586 "program": "generics_recursive.ets" 587 }, 588 "end": { 589 "line": 20, 590 "column": 14, 591 "program": "generics_recursive.ets" 592 } 593 } 594 }, 595 "loc": { 596 "start": { 597 "line": 20, 598 "column": 12, 599 "program": "generics_recursive.ets" 600 }, 601 "end": { 602 "line": 20, 603 "column": 15, 604 "program": "generics_recursive.ets" 605 } 606 } 607 }, 608 "loc": { 609 "start": { 610 "line": 20, 611 "column": 12, 612 "program": "generics_recursive.ets" 613 }, 614 "end": { 615 "line": 20, 616 "column": 15, 617 "program": "generics_recursive.ets" 618 } 619 } 620 } 621 ], 622 "loc": { 623 "start": { 624 "line": 20, 625 "column": 11, 626 "program": "generics_recursive.ets" 627 }, 628 "end": { 629 "line": 20, 630 "column": 15, 631 "program": "generics_recursive.ets" 632 } 633 } 634 }, 635 "loc": { 636 "start": { 637 "line": 20, 638 "column": 10, 639 "program": "generics_recursive.ets" 640 }, 641 "end": { 642 "line": 20, 643 "column": 16, 644 "program": "generics_recursive.ets" 645 } 646 } 647 }, 648 "loc": { 649 "start": { 650 "line": 20, 651 "column": 10, 652 "program": "generics_recursive.ets" 653 }, 654 "end": { 655 "line": 20, 656 "column": 16, 657 "program": "generics_recursive.ets" 658 } 659 } 660 }, 661 "decorators": [], 662 "loc": { 663 "start": { 664 "line": 20, 665 "column": 7, 666 "program": "generics_recursive.ets" 667 }, 668 "end": { 669 "line": 20, 670 "column": 16, 671 "program": "generics_recursive.ets" 672 } 673 } 674 }, 675 "loc": { 676 "start": { 677 "line": 20, 678 "column": 7, 679 "program": "generics_recursive.ets" 680 }, 681 "end": { 682 "line": 20, 683 "column": 16, 684 "program": "generics_recursive.ets" 685 } 686 } 687 } 688 ], 689 "body": { 690 "type": "BlockStatement", 691 "statements": [ 692 { 693 "type": "ExpressionStatement", 694 "expression": { 695 "type": "CallExpression", 696 "callee": { 697 "type": "MemberExpression", 698 "object": { 699 "type": "Identifier", 700 "name": "a", 701 "decorators": [], 702 "loc": { 703 "start": { 704 "line": 21, 705 "column": 9, 706 "program": "generics_recursive.ets" 707 }, 708 "end": { 709 "line": 21, 710 "column": 10, 711 "program": "generics_recursive.ets" 712 } 713 } 714 }, 715 "property": { 716 "type": "Identifier", 717 "name": "f", 718 "decorators": [], 719 "loc": { 720 "start": { 721 "line": 21, 722 "column": 11, 723 "program": "generics_recursive.ets" 724 }, 725 "end": { 726 "line": 21, 727 "column": 12, 728 "program": "generics_recursive.ets" 729 } 730 } 731 }, 732 "computed": false, 733 "optional": false, 734 "loc": { 735 "start": { 736 "line": 21, 737 "column": 9, 738 "program": "generics_recursive.ets" 739 }, 740 "end": { 741 "line": 21, 742 "column": 12, 743 "program": "generics_recursive.ets" 744 } 745 } 746 }, 747 "arguments": [], 748 "optional": false, 749 "loc": { 750 "start": { 751 "line": 21, 752 "column": 9, 753 "program": "generics_recursive.ets" 754 }, 755 "end": { 756 "line": 21, 757 "column": 14, 758 "program": "generics_recursive.ets" 759 } 760 } 761 }, 762 "loc": { 763 "start": { 764 "line": 21, 765 "column": 9, 766 "program": "generics_recursive.ets" 767 }, 768 "end": { 769 "line": 21, 770 "column": 15, 771 "program": "generics_recursive.ets" 772 } 773 } 774 } 775 ], 776 "loc": { 777 "start": { 778 "line": 20, 779 "column": 17, 780 "program": "generics_recursive.ets" 781 }, 782 "end": { 783 "line": 22, 784 "column": 6, 785 "program": "generics_recursive.ets" 786 } 787 } 788 }, 789 "loc": { 790 "start": { 791 "line": 20, 792 "column": 6, 793 "program": "generics_recursive.ets" 794 }, 795 "end": { 796 "line": 22, 797 "column": 6, 798 "program": "generics_recursive.ets" 799 } 800 } 801 }, 802 "loc": { 803 "start": { 804 "line": 20, 805 "column": 6, 806 "program": "generics_recursive.ets" 807 }, 808 "end": { 809 "line": 22, 810 "column": 6, 811 "program": "generics_recursive.ets" 812 } 813 } 814 }, 815 "overloads": [], 816 "decorators": [], 817 "loc": { 818 "start": { 819 "line": 20, 820 "column": 5, 821 "program": "generics_recursive.ets" 822 }, 823 "end": { 824 "line": 22, 825 "column": 6, 826 "program": "generics_recursive.ets" 827 } 828 } 829 }, 830 { 831 "type": "MethodDefinition", 832 "key": { 833 "type": "Identifier", 834 "name": "constructor", 835 "decorators": [], 836 "loc": { 837 "start": { 838 "line": 18, 839 "column": 14, 840 "program": "generics_recursive.ets" 841 }, 842 "end": { 843 "line": 18, 844 "column": 14, 845 "program": "generics_recursive.ets" 846 } 847 } 848 }, 849 "kind": "constructor", 850 "static": false, 851 "optional": false, 852 "computed": false, 853 "value": { 854 "type": "FunctionExpression", 855 "function": { 856 "type": "ScriptFunction", 857 "id": { 858 "type": "Identifier", 859 "name": "constructor", 860 "decorators": [], 861 "loc": { 862 "start": { 863 "line": 18, 864 "column": 14, 865 "program": "generics_recursive.ets" 866 }, 867 "end": { 868 "line": 18, 869 "column": 14, 870 "program": "generics_recursive.ets" 871 } 872 } 873 }, 874 "generator": false, 875 "async": false, 876 "expression": false, 877 "params": [], 878 "body": { 879 "type": "BlockStatement", 880 "statements": [], 881 "loc": { 882 "start": { 883 "line": 18, 884 "column": 14, 885 "program": "generics_recursive.ets" 886 }, 887 "end": { 888 "line": 18, 889 "column": 14, 890 "program": "generics_recursive.ets" 891 } 892 } 893 }, 894 "loc": { 895 "start": { 896 "line": 18, 897 "column": 14, 898 "program": "generics_recursive.ets" 899 }, 900 "end": { 901 "line": 18, 902 "column": 14, 903 "program": "generics_recursive.ets" 904 } 905 } 906 }, 907 "loc": { 908 "start": { 909 "line": 18, 910 "column": 14, 911 "program": "generics_recursive.ets" 912 }, 913 "end": { 914 "line": 18, 915 "column": 14, 916 "program": "generics_recursive.ets" 917 } 918 } 919 }, 920 "overloads": [], 921 "decorators": [], 922 "loc": { 923 "start": { 924 "line": 1, 925 "column": 1, 926 "program": null 927 }, 928 "end": { 929 "line": 1, 930 "column": 1, 931 "program": null 932 } 933 } 934 } 935 ], 936 "loc": { 937 "start": { 938 "line": 18, 939 "column": 13, 940 "program": "generics_recursive.ets" 941 }, 942 "end": { 943 "line": 25, 944 "column": 6, 945 "program": "generics_recursive.ets" 946 } 947 } 948 }, 949 "loc": { 950 "start": { 951 "line": 18, 952 "column": 1, 953 "program": "generics_recursive.ets" 954 }, 955 "end": { 956 "line": 25, 957 "column": 6, 958 "program": "generics_recursive.ets" 959 } 960 } 961 }, 962 { 963 "type": "ClassDeclaration", 964 "definition": { 965 "id": { 966 "type": "Identifier", 967 "name": "M", 968 "decorators": [], 969 "loc": { 970 "start": { 971 "line": 25, 972 "column": 7, 973 "program": "generics_recursive.ets" 974 }, 975 "end": { 976 "line": 25, 977 "column": 8, 978 "program": "generics_recursive.ets" 979 } 980 } 981 }, 982 "typeParameters": { 983 "type": "TSTypeParameterDeclaration", 984 "params": [ 985 { 986 "type": "TSTypeParameter", 987 "name": { 988 "type": "Identifier", 989 "name": "K", 990 "decorators": [], 991 "loc": { 992 "start": { 993 "line": 25, 994 "column": 9, 995 "program": "generics_recursive.ets" 996 }, 997 "end": { 998 "line": 25, 999 "column": 10, 1000 "program": "generics_recursive.ets" 1001 } 1002 } 1003 }, 1004 "loc": { 1005 "start": { 1006 "line": 25, 1007 "column": 9, 1008 "program": "generics_recursive.ets" 1009 }, 1010 "end": { 1011 "line": 25, 1012 "column": 11, 1013 "program": "generics_recursive.ets" 1014 } 1015 } 1016 }, 1017 { 1018 "type": "TSTypeParameter", 1019 "name": { 1020 "type": "Identifier", 1021 "name": "V", 1022 "decorators": [], 1023 "loc": { 1024 "start": { 1025 "line": 25, 1026 "column": 12, 1027 "program": "generics_recursive.ets" 1028 }, 1029 "end": { 1030 "line": 25, 1031 "column": 13, 1032 "program": "generics_recursive.ets" 1033 } 1034 } 1035 }, 1036 "loc": { 1037 "start": { 1038 "line": 25, 1039 "column": 12, 1040 "program": "generics_recursive.ets" 1041 }, 1042 "end": { 1043 "line": 25, 1044 "column": 14, 1045 "program": "generics_recursive.ets" 1046 } 1047 } 1048 } 1049 ], 1050 "loc": { 1051 "start": { 1052 "line": 25, 1053 "column": 8, 1054 "program": "generics_recursive.ets" 1055 }, 1056 "end": { 1057 "line": 25, 1058 "column": 14, 1059 "program": "generics_recursive.ets" 1060 } 1061 } 1062 }, 1063 "superClass": null, 1064 "implements": [], 1065 "body": [ 1066 { 1067 "type": "MethodDefinition", 1068 "key": { 1069 "type": "Identifier", 1070 "name": "constructor", 1071 "decorators": [], 1072 "loc": { 1073 "start": { 1074 "line": 1, 1075 "column": 1, 1076 "program": null 1077 }, 1078 "end": { 1079 "line": 1, 1080 "column": 1, 1081 "program": null 1082 } 1083 } 1084 }, 1085 "kind": "constructor", 1086 "accessibility": "public", 1087 "static": false, 1088 "optional": false, 1089 "computed": false, 1090 "value": { 1091 "type": "FunctionExpression", 1092 "function": { 1093 "type": "ScriptFunction", 1094 "id": { 1095 "type": "Identifier", 1096 "name": "constructor", 1097 "decorators": [], 1098 "loc": { 1099 "start": { 1100 "line": 1, 1101 "column": 1, 1102 "program": null 1103 }, 1104 "end": { 1105 "line": 1, 1106 "column": 1, 1107 "program": null 1108 } 1109 } 1110 }, 1111 "generator": false, 1112 "async": false, 1113 "expression": false, 1114 "params": [ 1115 { 1116 "type": "ETSParameterExpression", 1117 "name": { 1118 "type": "Identifier", 1119 "name": "iter", 1120 "typeAnnotation": { 1121 "type": "ETSUnionType", 1122 "types": [ 1123 { 1124 "type": "ETSTypeReference", 1125 "part": { 1126 "type": "ETSTypeReferencePart", 1127 "name": { 1128 "type": "Identifier", 1129 "name": "ArrayLike", 1130 "decorators": [], 1131 "loc": { 1132 "start": { 1133 "line": 26, 1134 "column": 23, 1135 "program": "generics_recursive.ets" 1136 }, 1137 "end": { 1138 "line": 26, 1139 "column": 32, 1140 "program": "generics_recursive.ets" 1141 } 1142 } 1143 }, 1144 "typeParams": { 1145 "type": "TSTypeParameterInstantiation", 1146 "params": [ 1147 { 1148 "type": "ETSTuple", 1149 "types": [ 1150 { 1151 "type": "ETSTypeReference", 1152 "part": { 1153 "type": "ETSTypeReferencePart", 1154 "name": { 1155 "type": "Identifier", 1156 "name": "K", 1157 "decorators": [], 1158 "loc": { 1159 "start": { 1160 "line": 26, 1161 "column": 34, 1162 "program": "generics_recursive.ets" 1163 }, 1164 "end": { 1165 "line": 26, 1166 "column": 35, 1167 "program": "generics_recursive.ets" 1168 } 1169 } 1170 }, 1171 "loc": { 1172 "start": { 1173 "line": 26, 1174 "column": 34, 1175 "program": "generics_recursive.ets" 1176 }, 1177 "end": { 1178 "line": 26, 1179 "column": 36, 1180 "program": "generics_recursive.ets" 1181 } 1182 } 1183 }, 1184 "loc": { 1185 "start": { 1186 "line": 26, 1187 "column": 34, 1188 "program": "generics_recursive.ets" 1189 }, 1190 "end": { 1191 "line": 26, 1192 "column": 36, 1193 "program": "generics_recursive.ets" 1194 } 1195 } 1196 }, 1197 { 1198 "type": "ETSTypeReference", 1199 "part": { 1200 "type": "ETSTypeReferencePart", 1201 "name": { 1202 "type": "Identifier", 1203 "name": "V", 1204 "decorators": [], 1205 "loc": { 1206 "start": { 1207 "line": 26, 1208 "column": 37, 1209 "program": "generics_recursive.ets" 1210 }, 1211 "end": { 1212 "line": 26, 1213 "column": 38, 1214 "program": "generics_recursive.ets" 1215 } 1216 } 1217 }, 1218 "loc": { 1219 "start": { 1220 "line": 26, 1221 "column": 37, 1222 "program": "generics_recursive.ets" 1223 }, 1224 "end": { 1225 "line": 26, 1226 "column": 39, 1227 "program": "generics_recursive.ets" 1228 } 1229 } 1230 }, 1231 "loc": { 1232 "start": { 1233 "line": 26, 1234 "column": 37, 1235 "program": "generics_recursive.ets" 1236 }, 1237 "end": { 1238 "line": 26, 1239 "column": 39, 1240 "program": "generics_recursive.ets" 1241 } 1242 } 1243 } 1244 ], 1245 "loc": { 1246 "start": { 1247 "line": 26, 1248 "column": 33, 1249 "program": "generics_recursive.ets" 1250 }, 1251 "end": { 1252 "line": 26, 1253 "column": 39, 1254 "program": "generics_recursive.ets" 1255 } 1256 } 1257 } 1258 ], 1259 "loc": { 1260 "start": { 1261 "line": 26, 1262 "column": 32, 1263 "program": "generics_recursive.ets" 1264 }, 1265 "end": { 1266 "line": 26, 1267 "column": 40, 1268 "program": "generics_recursive.ets" 1269 } 1270 } 1271 }, 1272 "loc": { 1273 "start": { 1274 "line": 26, 1275 "column": 23, 1276 "program": "generics_recursive.ets" 1277 }, 1278 "end": { 1279 "line": 26, 1280 "column": 42, 1281 "program": "generics_recursive.ets" 1282 } 1283 } 1284 }, 1285 "loc": { 1286 "start": { 1287 "line": 26, 1288 "column": 23, 1289 "program": "generics_recursive.ets" 1290 }, 1291 "end": { 1292 "line": 26, 1293 "column": 42, 1294 "program": "generics_recursive.ets" 1295 } 1296 } 1297 }, 1298 { 1299 "type": "ETSTypeReference", 1300 "part": { 1301 "type": "ETSTypeReferencePart", 1302 "name": { 1303 "type": "Identifier", 1304 "name": "Iterable", 1305 "decorators": [], 1306 "loc": { 1307 "start": { 1308 "line": 26, 1309 "column": 43, 1310 "program": "generics_recursive.ets" 1311 }, 1312 "end": { 1313 "line": 26, 1314 "column": 51, 1315 "program": "generics_recursive.ets" 1316 } 1317 } 1318 }, 1319 "typeParams": { 1320 "type": "TSTypeParameterInstantiation", 1321 "params": [ 1322 { 1323 "type": "ETSTuple", 1324 "types": [ 1325 { 1326 "type": "ETSTypeReference", 1327 "part": { 1328 "type": "ETSTypeReferencePart", 1329 "name": { 1330 "type": "Identifier", 1331 "name": "K", 1332 "decorators": [], 1333 "loc": { 1334 "start": { 1335 "line": 26, 1336 "column": 53, 1337 "program": "generics_recursive.ets" 1338 }, 1339 "end": { 1340 "line": 26, 1341 "column": 54, 1342 "program": "generics_recursive.ets" 1343 } 1344 } 1345 }, 1346 "loc": { 1347 "start": { 1348 "line": 26, 1349 "column": 53, 1350 "program": "generics_recursive.ets" 1351 }, 1352 "end": { 1353 "line": 26, 1354 "column": 55, 1355 "program": "generics_recursive.ets" 1356 } 1357 } 1358 }, 1359 "loc": { 1360 "start": { 1361 "line": 26, 1362 "column": 53, 1363 "program": "generics_recursive.ets" 1364 }, 1365 "end": { 1366 "line": 26, 1367 "column": 55, 1368 "program": "generics_recursive.ets" 1369 } 1370 } 1371 }, 1372 { 1373 "type": "ETSTypeReference", 1374 "part": { 1375 "type": "ETSTypeReferencePart", 1376 "name": { 1377 "type": "Identifier", 1378 "name": "V", 1379 "decorators": [], 1380 "loc": { 1381 "start": { 1382 "line": 26, 1383 "column": 56, 1384 "program": "generics_recursive.ets" 1385 }, 1386 "end": { 1387 "line": 26, 1388 "column": 57, 1389 "program": "generics_recursive.ets" 1390 } 1391 } 1392 }, 1393 "loc": { 1394 "start": { 1395 "line": 26, 1396 "column": 56, 1397 "program": "generics_recursive.ets" 1398 }, 1399 "end": { 1400 "line": 26, 1401 "column": 58, 1402 "program": "generics_recursive.ets" 1403 } 1404 } 1405 }, 1406 "loc": { 1407 "start": { 1408 "line": 26, 1409 "column": 56, 1410 "program": "generics_recursive.ets" 1411 }, 1412 "end": { 1413 "line": 26, 1414 "column": 58, 1415 "program": "generics_recursive.ets" 1416 } 1417 } 1418 } 1419 ], 1420 "loc": { 1421 "start": { 1422 "line": 26, 1423 "column": 52, 1424 "program": "generics_recursive.ets" 1425 }, 1426 "end": { 1427 "line": 26, 1428 "column": 58, 1429 "program": "generics_recursive.ets" 1430 } 1431 } 1432 } 1433 ], 1434 "loc": { 1435 "start": { 1436 "line": 26, 1437 "column": 51, 1438 "program": "generics_recursive.ets" 1439 }, 1440 "end": { 1441 "line": 26, 1442 "column": 59, 1443 "program": "generics_recursive.ets" 1444 } 1445 } 1446 }, 1447 "loc": { 1448 "start": { 1449 "line": 26, 1450 "column": 43, 1451 "program": "generics_recursive.ets" 1452 }, 1453 "end": { 1454 "line": 26, 1455 "column": 60, 1456 "program": "generics_recursive.ets" 1457 } 1458 } 1459 }, 1460 "loc": { 1461 "start": { 1462 "line": 26, 1463 "column": 43, 1464 "program": "generics_recursive.ets" 1465 }, 1466 "end": { 1467 "line": 26, 1468 "column": 60, 1469 "program": "generics_recursive.ets" 1470 } 1471 } 1472 } 1473 ], 1474 "loc": { 1475 "start": { 1476 "line": 26, 1477 "column": 23, 1478 "program": "generics_recursive.ets" 1479 }, 1480 "end": { 1481 "line": 26, 1482 "column": 60, 1483 "program": "generics_recursive.ets" 1484 } 1485 } 1486 }, 1487 "decorators": [], 1488 "loc": { 1489 "start": { 1490 "line": 26, 1491 "column": 17, 1492 "program": "generics_recursive.ets" 1493 }, 1494 "end": { 1495 "line": 26, 1496 "column": 60, 1497 "program": "generics_recursive.ets" 1498 } 1499 } 1500 }, 1501 "loc": { 1502 "start": { 1503 "line": 26, 1504 "column": 17, 1505 "program": "generics_recursive.ets" 1506 }, 1507 "end": { 1508 "line": 26, 1509 "column": 60, 1510 "program": "generics_recursive.ets" 1511 } 1512 } 1513 } 1514 ], 1515 "body": { 1516 "type": "BlockStatement", 1517 "statements": [ 1518 { 1519 "type": "ExpressionStatement", 1520 "expression": { 1521 "type": "CallExpression", 1522 "callee": { 1523 "type": "MemberExpression", 1524 "object": { 1525 "type": "Identifier", 1526 "name": "Array", 1527 "decorators": [], 1528 "loc": { 1529 "start": { 1530 "line": 27, 1531 "column": 9, 1532 "program": "generics_recursive.ets" 1533 }, 1534 "end": { 1535 "line": 27, 1536 "column": 14, 1537 "program": "generics_recursive.ets" 1538 } 1539 } 1540 }, 1541 "property": { 1542 "type": "Identifier", 1543 "name": "from", 1544 "decorators": [], 1545 "loc": { 1546 "start": { 1547 "line": 27, 1548 "column": 15, 1549 "program": "generics_recursive.ets" 1550 }, 1551 "end": { 1552 "line": 27, 1553 "column": 19, 1554 "program": "generics_recursive.ets" 1555 } 1556 } 1557 }, 1558 "computed": false, 1559 "optional": false, 1560 "loc": { 1561 "start": { 1562 "line": 27, 1563 "column": 9, 1564 "program": "generics_recursive.ets" 1565 }, 1566 "end": { 1567 "line": 27, 1568 "column": 19, 1569 "program": "generics_recursive.ets" 1570 } 1571 } 1572 }, 1573 "arguments": [ 1574 { 1575 "type": "Identifier", 1576 "name": "iter", 1577 "decorators": [], 1578 "loc": { 1579 "start": { 1580 "line": 27, 1581 "column": 28, 1582 "program": "generics_recursive.ets" 1583 }, 1584 "end": { 1585 "line": 27, 1586 "column": 32, 1587 "program": "generics_recursive.ets" 1588 } 1589 } 1590 } 1591 ], 1592 "optional": false, 1593 "typeParameters": { 1594 "type": "TSTypeParameterInstantiation", 1595 "params": [ 1596 { 1597 "type": "ETSTuple", 1598 "types": [ 1599 { 1600 "type": "ETSTypeReference", 1601 "part": { 1602 "type": "ETSTypeReferencePart", 1603 "name": { 1604 "type": "Identifier", 1605 "name": "K", 1606 "decorators": [], 1607 "loc": { 1608 "start": { 1609 "line": 27, 1610 "column": 21, 1611 "program": "generics_recursive.ets" 1612 }, 1613 "end": { 1614 "line": 27, 1615 "column": 22, 1616 "program": "generics_recursive.ets" 1617 } 1618 } 1619 }, 1620 "loc": { 1621 "start": { 1622 "line": 27, 1623 "column": 21, 1624 "program": "generics_recursive.ets" 1625 }, 1626 "end": { 1627 "line": 27, 1628 "column": 23, 1629 "program": "generics_recursive.ets" 1630 } 1631 } 1632 }, 1633 "loc": { 1634 "start": { 1635 "line": 27, 1636 "column": 21, 1637 "program": "generics_recursive.ets" 1638 }, 1639 "end": { 1640 "line": 27, 1641 "column": 23, 1642 "program": "generics_recursive.ets" 1643 } 1644 } 1645 }, 1646 { 1647 "type": "ETSTypeReference", 1648 "part": { 1649 "type": "ETSTypeReferencePart", 1650 "name": { 1651 "type": "Identifier", 1652 "name": "V", 1653 "decorators": [], 1654 "loc": { 1655 "start": { 1656 "line": 27, 1657 "column": 24, 1658 "program": "generics_recursive.ets" 1659 }, 1660 "end": { 1661 "line": 27, 1662 "column": 25, 1663 "program": "generics_recursive.ets" 1664 } 1665 } 1666 }, 1667 "loc": { 1668 "start": { 1669 "line": 27, 1670 "column": 24, 1671 "program": "generics_recursive.ets" 1672 }, 1673 "end": { 1674 "line": 27, 1675 "column": 26, 1676 "program": "generics_recursive.ets" 1677 } 1678 } 1679 }, 1680 "loc": { 1681 "start": { 1682 "line": 27, 1683 "column": 24, 1684 "program": "generics_recursive.ets" 1685 }, 1686 "end": { 1687 "line": 27, 1688 "column": 26, 1689 "program": "generics_recursive.ets" 1690 } 1691 } 1692 } 1693 ], 1694 "loc": { 1695 "start": { 1696 "line": 27, 1697 "column": 20, 1698 "program": "generics_recursive.ets" 1699 }, 1700 "end": { 1701 "line": 27, 1702 "column": 26, 1703 "program": "generics_recursive.ets" 1704 } 1705 } 1706 } 1707 ], 1708 "loc": { 1709 "start": { 1710 "line": 27, 1711 "column": 19, 1712 "program": "generics_recursive.ets" 1713 }, 1714 "end": { 1715 "line": 27, 1716 "column": 27, 1717 "program": "generics_recursive.ets" 1718 } 1719 } 1720 }, 1721 "loc": { 1722 "start": { 1723 "line": 27, 1724 "column": 9, 1725 "program": "generics_recursive.ets" 1726 }, 1727 "end": { 1728 "line": 27, 1729 "column": 33, 1730 "program": "generics_recursive.ets" 1731 } 1732 } 1733 }, 1734 "loc": { 1735 "start": { 1736 "line": 27, 1737 "column": 9, 1738 "program": "generics_recursive.ets" 1739 }, 1740 "end": { 1741 "line": 27, 1742 "column": 34, 1743 "program": "generics_recursive.ets" 1744 } 1745 } 1746 } 1747 ], 1748 "loc": { 1749 "start": { 1750 "line": 26, 1751 "column": 61, 1752 "program": "generics_recursive.ets" 1753 }, 1754 "end": { 1755 "line": 28, 1756 "column": 6, 1757 "program": "generics_recursive.ets" 1758 } 1759 } 1760 }, 1761 "loc": { 1762 "start": { 1763 "line": 26, 1764 "column": 16, 1765 "program": "generics_recursive.ets" 1766 }, 1767 "end": { 1768 "line": 28, 1769 "column": 6, 1770 "program": "generics_recursive.ets" 1771 } 1772 } 1773 }, 1774 "loc": { 1775 "start": { 1776 "line": 26, 1777 "column": 16, 1778 "program": "generics_recursive.ets" 1779 }, 1780 "end": { 1781 "line": 28, 1782 "column": 6, 1783 "program": "generics_recursive.ets" 1784 } 1785 } 1786 }, 1787 "overloads": [], 1788 "decorators": [], 1789 "loc": { 1790 "start": { 1791 "line": 26, 1792 "column": 5, 1793 "program": "generics_recursive.ets" 1794 }, 1795 "end": { 1796 "line": 28, 1797 "column": 6, 1798 "program": "generics_recursive.ets" 1799 } 1800 } 1801 } 1802 ], 1803 "loc": { 1804 "start": { 1805 "line": 25, 1806 "column": 15, 1807 "program": "generics_recursive.ets" 1808 }, 1809 "end": { 1810 "line": 31, 1811 "column": 6, 1812 "program": "generics_recursive.ets" 1813 } 1814 } 1815 }, 1816 "loc": { 1817 "start": { 1818 "line": 25, 1819 "column": 1, 1820 "program": "generics_recursive.ets" 1821 }, 1822 "end": { 1823 "line": 31, 1824 "column": 6, 1825 "program": "generics_recursive.ets" 1826 } 1827 } 1828 }, 1829 { 1830 "type": "ClassDeclaration", 1831 "definition": { 1832 "id": { 1833 "type": "Identifier", 1834 "name": "C", 1835 "decorators": [], 1836 "loc": { 1837 "start": { 1838 "line": 31, 1839 "column": 7, 1840 "program": "generics_recursive.ets" 1841 }, 1842 "end": { 1843 "line": 31, 1844 "column": 8, 1845 "program": "generics_recursive.ets" 1846 } 1847 } 1848 }, 1849 "typeParameters": { 1850 "type": "TSTypeParameterDeclaration", 1851 "params": [ 1852 { 1853 "type": "TSTypeParameter", 1854 "name": { 1855 "type": "Identifier", 1856 "name": "T", 1857 "decorators": [], 1858 "loc": { 1859 "start": { 1860 "line": 31, 1861 "column": 9, 1862 "program": "generics_recursive.ets" 1863 }, 1864 "end": { 1865 "line": 31, 1866 "column": 10, 1867 "program": "generics_recursive.ets" 1868 } 1869 } 1870 }, 1871 "loc": { 1872 "start": { 1873 "line": 31, 1874 "column": 9, 1875 "program": "generics_recursive.ets" 1876 }, 1877 "end": { 1878 "line": 31, 1879 "column": 11, 1880 "program": "generics_recursive.ets" 1881 } 1882 } 1883 } 1884 ], 1885 "loc": { 1886 "start": { 1887 "line": 31, 1888 "column": 8, 1889 "program": "generics_recursive.ets" 1890 }, 1891 "end": { 1892 "line": 31, 1893 "column": 11, 1894 "program": "generics_recursive.ets" 1895 } 1896 } 1897 }, 1898 "superClass": null, 1899 "implements": [], 1900 "body": [ 1901 { 1902 "type": "MethodDefinition", 1903 "key": { 1904 "type": "Identifier", 1905 "name": "constructor", 1906 "decorators": [], 1907 "loc": { 1908 "start": { 1909 "line": 31, 1910 "column": 13, 1911 "program": "generics_recursive.ets" 1912 }, 1913 "end": { 1914 "line": 31, 1915 "column": 13, 1916 "program": "generics_recursive.ets" 1917 } 1918 } 1919 }, 1920 "kind": "constructor", 1921 "static": false, 1922 "optional": false, 1923 "computed": false, 1924 "value": { 1925 "type": "FunctionExpression", 1926 "function": { 1927 "type": "ScriptFunction", 1928 "id": { 1929 "type": "Identifier", 1930 "name": "constructor", 1931 "decorators": [], 1932 "loc": { 1933 "start": { 1934 "line": 31, 1935 "column": 13, 1936 "program": "generics_recursive.ets" 1937 }, 1938 "end": { 1939 "line": 31, 1940 "column": 13, 1941 "program": "generics_recursive.ets" 1942 } 1943 } 1944 }, 1945 "generator": false, 1946 "async": false, 1947 "expression": false, 1948 "params": [], 1949 "body": { 1950 "type": "BlockStatement", 1951 "statements": [], 1952 "loc": { 1953 "start": { 1954 "line": 31, 1955 "column": 13, 1956 "program": "generics_recursive.ets" 1957 }, 1958 "end": { 1959 "line": 31, 1960 "column": 13, 1961 "program": "generics_recursive.ets" 1962 } 1963 } 1964 }, 1965 "loc": { 1966 "start": { 1967 "line": 31, 1968 "column": 13, 1969 "program": "generics_recursive.ets" 1970 }, 1971 "end": { 1972 "line": 31, 1973 "column": 13, 1974 "program": "generics_recursive.ets" 1975 } 1976 } 1977 }, 1978 "loc": { 1979 "start": { 1980 "line": 31, 1981 "column": 13, 1982 "program": "generics_recursive.ets" 1983 }, 1984 "end": { 1985 "line": 31, 1986 "column": 13, 1987 "program": "generics_recursive.ets" 1988 } 1989 } 1990 }, 1991 "overloads": [], 1992 "decorators": [], 1993 "loc": { 1994 "start": { 1995 "line": 1, 1996 "column": 1, 1997 "program": null 1998 }, 1999 "end": { 2000 "line": 1, 2001 "column": 1, 2002 "program": null 2003 } 2004 } 2005 } 2006 ], 2007 "loc": { 2008 "start": { 2009 "line": 31, 2010 "column": 12, 2011 "program": "generics_recursive.ets" 2012 }, 2013 "end": { 2014 "line": 33, 2015 "column": 9, 2016 "program": "generics_recursive.ets" 2017 } 2018 } 2019 }, 2020 "loc": { 2021 "start": { 2022 "line": 31, 2023 "column": 1, 2024 "program": "generics_recursive.ets" 2025 }, 2026 "end": { 2027 "line": 33, 2028 "column": 9, 2029 "program": "generics_recursive.ets" 2030 } 2031 } 2032 }, 2033 { 2034 "type": "ClassDeclaration", 2035 "definition": { 2036 "id": { 2037 "type": "Identifier", 2038 "name": "M1", 2039 "decorators": [], 2040 "loc": { 2041 "start": { 2042 "line": 37, 2043 "column": 7, 2044 "program": "generics_recursive.ets" 2045 }, 2046 "end": { 2047 "line": 37, 2048 "column": 9, 2049 "program": "generics_recursive.ets" 2050 } 2051 } 2052 }, 2053 "typeParameters": { 2054 "type": "TSTypeParameterDeclaration", 2055 "params": [ 2056 { 2057 "type": "TSTypeParameter", 2058 "name": { 2059 "type": "Identifier", 2060 "name": "K", 2061 "decorators": [], 2062 "loc": { 2063 "start": { 2064 "line": 37, 2065 "column": 10, 2066 "program": "generics_recursive.ets" 2067 }, 2068 "end": { 2069 "line": 37, 2070 "column": 11, 2071 "program": "generics_recursive.ets" 2072 } 2073 } 2074 }, 2075 "loc": { 2076 "start": { 2077 "line": 37, 2078 "column": 10, 2079 "program": "generics_recursive.ets" 2080 }, 2081 "end": { 2082 "line": 37, 2083 "column": 12, 2084 "program": "generics_recursive.ets" 2085 } 2086 } 2087 }, 2088 { 2089 "type": "TSTypeParameter", 2090 "name": { 2091 "type": "Identifier", 2092 "name": "V", 2093 "decorators": [], 2094 "loc": { 2095 "start": { 2096 "line": 37, 2097 "column": 13, 2098 "program": "generics_recursive.ets" 2099 }, 2100 "end": { 2101 "line": 37, 2102 "column": 14, 2103 "program": "generics_recursive.ets" 2104 } 2105 } 2106 }, 2107 "loc": { 2108 "start": { 2109 "line": 37, 2110 "column": 13, 2111 "program": "generics_recursive.ets" 2112 }, 2113 "end": { 2114 "line": 37, 2115 "column": 15, 2116 "program": "generics_recursive.ets" 2117 } 2118 } 2119 } 2120 ], 2121 "loc": { 2122 "start": { 2123 "line": 37, 2124 "column": 9, 2125 "program": "generics_recursive.ets" 2126 }, 2127 "end": { 2128 "line": 37, 2129 "column": 15, 2130 "program": "generics_recursive.ets" 2131 } 2132 } 2133 }, 2134 "superClass": null, 2135 "implements": [], 2136 "body": [ 2137 { 2138 "type": "MethodDefinition", 2139 "key": { 2140 "type": "Identifier", 2141 "name": "it", 2142 "decorators": [], 2143 "loc": { 2144 "start": { 2145 "line": 38, 2146 "column": 5, 2147 "program": "generics_recursive.ets" 2148 }, 2149 "end": { 2150 "line": 38, 2151 "column": 7, 2152 "program": "generics_recursive.ets" 2153 } 2154 } 2155 }, 2156 "kind": "method", 2157 "accessibility": "public", 2158 "static": false, 2159 "optional": false, 2160 "computed": false, 2161 "value": { 2162 "type": "FunctionExpression", 2163 "function": { 2164 "type": "ScriptFunction", 2165 "id": { 2166 "type": "Identifier", 2167 "name": "it", 2168 "decorators": [], 2169 "loc": { 2170 "start": { 2171 "line": 38, 2172 "column": 5, 2173 "program": "generics_recursive.ets" 2174 }, 2175 "end": { 2176 "line": 38, 2177 "column": 7, 2178 "program": "generics_recursive.ets" 2179 } 2180 } 2181 }, 2182 "generator": false, 2183 "async": false, 2184 "expression": false, 2185 "params": [], 2186 "returnType": { 2187 "type": "ETSTypeReference", 2188 "part": { 2189 "type": "ETSTypeReferencePart", 2190 "name": { 2191 "type": "Identifier", 2192 "name": "C", 2193 "decorators": [], 2194 "loc": { 2195 "start": { 2196 "line": 38, 2197 "column": 11, 2198 "program": "generics_recursive.ets" 2199 }, 2200 "end": { 2201 "line": 38, 2202 "column": 12, 2203 "program": "generics_recursive.ets" 2204 } 2205 } 2206 }, 2207 "typeParams": { 2208 "type": "TSTypeParameterInstantiation", 2209 "params": [ 2210 { 2211 "type": "ETSTuple", 2212 "types": [ 2213 { 2214 "type": "ETSTypeReference", 2215 "part": { 2216 "type": "ETSTypeReferencePart", 2217 "name": { 2218 "type": "Identifier", 2219 "name": "K", 2220 "decorators": [], 2221 "loc": { 2222 "start": { 2223 "line": 38, 2224 "column": 14, 2225 "program": "generics_recursive.ets" 2226 }, 2227 "end": { 2228 "line": 38, 2229 "column": 15, 2230 "program": "generics_recursive.ets" 2231 } 2232 } 2233 }, 2234 "loc": { 2235 "start": { 2236 "line": 38, 2237 "column": 14, 2238 "program": "generics_recursive.ets" 2239 }, 2240 "end": { 2241 "line": 38, 2242 "column": 16, 2243 "program": "generics_recursive.ets" 2244 } 2245 } 2246 }, 2247 "loc": { 2248 "start": { 2249 "line": 38, 2250 "column": 14, 2251 "program": "generics_recursive.ets" 2252 }, 2253 "end": { 2254 "line": 38, 2255 "column": 16, 2256 "program": "generics_recursive.ets" 2257 } 2258 } 2259 }, 2260 { 2261 "type": "ETSTypeReference", 2262 "part": { 2263 "type": "ETSTypeReferencePart", 2264 "name": { 2265 "type": "Identifier", 2266 "name": "V", 2267 "decorators": [], 2268 "loc": { 2269 "start": { 2270 "line": 38, 2271 "column": 17, 2272 "program": "generics_recursive.ets" 2273 }, 2274 "end": { 2275 "line": 38, 2276 "column": 18, 2277 "program": "generics_recursive.ets" 2278 } 2279 } 2280 }, 2281 "loc": { 2282 "start": { 2283 "line": 38, 2284 "column": 17, 2285 "program": "generics_recursive.ets" 2286 }, 2287 "end": { 2288 "line": 38, 2289 "column": 19, 2290 "program": "generics_recursive.ets" 2291 } 2292 } 2293 }, 2294 "loc": { 2295 "start": { 2296 "line": 38, 2297 "column": 17, 2298 "program": "generics_recursive.ets" 2299 }, 2300 "end": { 2301 "line": 38, 2302 "column": 19, 2303 "program": "generics_recursive.ets" 2304 } 2305 } 2306 } 2307 ], 2308 "loc": { 2309 "start": { 2310 "line": 38, 2311 "column": 13, 2312 "program": "generics_recursive.ets" 2313 }, 2314 "end": { 2315 "line": 38, 2316 "column": 19, 2317 "program": "generics_recursive.ets" 2318 } 2319 } 2320 } 2321 ], 2322 "loc": { 2323 "start": { 2324 "line": 38, 2325 "column": 12, 2326 "program": "generics_recursive.ets" 2327 }, 2328 "end": { 2329 "line": 38, 2330 "column": 20, 2331 "program": "generics_recursive.ets" 2332 } 2333 } 2334 }, 2335 "loc": { 2336 "start": { 2337 "line": 38, 2338 "column": 11, 2339 "program": "generics_recursive.ets" 2340 }, 2341 "end": { 2342 "line": 38, 2343 "column": 22, 2344 "program": "generics_recursive.ets" 2345 } 2346 } 2347 }, 2348 "loc": { 2349 "start": { 2350 "line": 38, 2351 "column": 11, 2352 "program": "generics_recursive.ets" 2353 }, 2354 "end": { 2355 "line": 38, 2356 "column": 22, 2357 "program": "generics_recursive.ets" 2358 } 2359 } 2360 }, 2361 "body": { 2362 "type": "BlockStatement", 2363 "statements": [ 2364 { 2365 "type": "ReturnStatement", 2366 "argument": { 2367 "type": "CallExpression", 2368 "callee": { 2369 "type": "MemberExpression", 2370 "object": { 2371 "type": "ThisExpression", 2372 "loc": { 2373 "start": { 2374 "line": 39, 2375 "column": 16, 2376 "program": "generics_recursive.ets" 2377 }, 2378 "end": { 2379 "line": 39, 2380 "column": 20, 2381 "program": "generics_recursive.ets" 2382 } 2383 } 2384 }, 2385 "property": { 2386 "type": "Identifier", 2387 "name": "bar", 2388 "decorators": [], 2389 "loc": { 2390 "start": { 2391 "line": 39, 2392 "column": 21, 2393 "program": "generics_recursive.ets" 2394 }, 2395 "end": { 2396 "line": 39, 2397 "column": 24, 2398 "program": "generics_recursive.ets" 2399 } 2400 } 2401 }, 2402 "computed": false, 2403 "optional": false, 2404 "loc": { 2405 "start": { 2406 "line": 39, 2407 "column": 16, 2408 "program": "generics_recursive.ets" 2409 }, 2410 "end": { 2411 "line": 39, 2412 "column": 24, 2413 "program": "generics_recursive.ets" 2414 } 2415 } 2416 }, 2417 "arguments": [], 2418 "optional": false, 2419 "loc": { 2420 "start": { 2421 "line": 39, 2422 "column": 16, 2423 "program": "generics_recursive.ets" 2424 }, 2425 "end": { 2426 "line": 39, 2427 "column": 26, 2428 "program": "generics_recursive.ets" 2429 } 2430 } 2431 }, 2432 "loc": { 2433 "start": { 2434 "line": 39, 2435 "column": 9, 2436 "program": "generics_recursive.ets" 2437 }, 2438 "end": { 2439 "line": 39, 2440 "column": 27, 2441 "program": "generics_recursive.ets" 2442 } 2443 } 2444 } 2445 ], 2446 "loc": { 2447 "start": { 2448 "line": 38, 2449 "column": 21, 2450 "program": "generics_recursive.ets" 2451 }, 2452 "end": { 2453 "line": 40, 2454 "column": 6, 2455 "program": "generics_recursive.ets" 2456 } 2457 } 2458 }, 2459 "loc": { 2460 "start": { 2461 "line": 38, 2462 "column": 7, 2463 "program": "generics_recursive.ets" 2464 }, 2465 "end": { 2466 "line": 40, 2467 "column": 6, 2468 "program": "generics_recursive.ets" 2469 } 2470 } 2471 }, 2472 "loc": { 2473 "start": { 2474 "line": 38, 2475 "column": 7, 2476 "program": "generics_recursive.ets" 2477 }, 2478 "end": { 2479 "line": 40, 2480 "column": 6, 2481 "program": "generics_recursive.ets" 2482 } 2483 } 2484 }, 2485 "overloads": [], 2486 "decorators": [], 2487 "loc": { 2488 "start": { 2489 "line": 38, 2490 "column": 5, 2491 "program": "generics_recursive.ets" 2492 }, 2493 "end": { 2494 "line": 40, 2495 "column": 6, 2496 "program": "generics_recursive.ets" 2497 } 2498 } 2499 }, 2500 { 2501 "type": "MethodDefinition", 2502 "key": { 2503 "type": "Identifier", 2504 "name": "bar", 2505 "decorators": [], 2506 "loc": { 2507 "start": { 2508 "line": 41, 2509 "column": 5, 2510 "program": "generics_recursive.ets" 2511 }, 2512 "end": { 2513 "line": 41, 2514 "column": 8, 2515 "program": "generics_recursive.ets" 2516 } 2517 } 2518 }, 2519 "kind": "method", 2520 "accessibility": "public", 2521 "static": false, 2522 "optional": false, 2523 "computed": false, 2524 "value": { 2525 "type": "FunctionExpression", 2526 "function": { 2527 "type": "ScriptFunction", 2528 "id": { 2529 "type": "Identifier", 2530 "name": "bar", 2531 "decorators": [], 2532 "loc": { 2533 "start": { 2534 "line": 41, 2535 "column": 5, 2536 "program": "generics_recursive.ets" 2537 }, 2538 "end": { 2539 "line": 41, 2540 "column": 8, 2541 "program": "generics_recursive.ets" 2542 } 2543 } 2544 }, 2545 "generator": false, 2546 "async": false, 2547 "expression": false, 2548 "params": [], 2549 "returnType": { 2550 "type": "ETSTypeReference", 2551 "part": { 2552 "type": "ETSTypeReferencePart", 2553 "name": { 2554 "type": "Identifier", 2555 "name": "C", 2556 "decorators": [], 2557 "loc": { 2558 "start": { 2559 "line": 41, 2560 "column": 12, 2561 "program": "generics_recursive.ets" 2562 }, 2563 "end": { 2564 "line": 41, 2565 "column": 13, 2566 "program": "generics_recursive.ets" 2567 } 2568 } 2569 }, 2570 "typeParams": { 2571 "type": "TSTypeParameterInstantiation", 2572 "params": [ 2573 { 2574 "type": "ETSTuple", 2575 "types": [ 2576 { 2577 "type": "ETSTypeReference", 2578 "part": { 2579 "type": "ETSTypeReferencePart", 2580 "name": { 2581 "type": "Identifier", 2582 "name": "K", 2583 "decorators": [], 2584 "loc": { 2585 "start": { 2586 "line": 41, 2587 "column": 15, 2588 "program": "generics_recursive.ets" 2589 }, 2590 "end": { 2591 "line": 41, 2592 "column": 16, 2593 "program": "generics_recursive.ets" 2594 } 2595 } 2596 }, 2597 "loc": { 2598 "start": { 2599 "line": 41, 2600 "column": 15, 2601 "program": "generics_recursive.ets" 2602 }, 2603 "end": { 2604 "line": 41, 2605 "column": 17, 2606 "program": "generics_recursive.ets" 2607 } 2608 } 2609 }, 2610 "loc": { 2611 "start": { 2612 "line": 41, 2613 "column": 15, 2614 "program": "generics_recursive.ets" 2615 }, 2616 "end": { 2617 "line": 41, 2618 "column": 17, 2619 "program": "generics_recursive.ets" 2620 } 2621 } 2622 }, 2623 { 2624 "type": "ETSTypeReference", 2625 "part": { 2626 "type": "ETSTypeReferencePart", 2627 "name": { 2628 "type": "Identifier", 2629 "name": "V", 2630 "decorators": [], 2631 "loc": { 2632 "start": { 2633 "line": 41, 2634 "column": 18, 2635 "program": "generics_recursive.ets" 2636 }, 2637 "end": { 2638 "line": 41, 2639 "column": 19, 2640 "program": "generics_recursive.ets" 2641 } 2642 } 2643 }, 2644 "loc": { 2645 "start": { 2646 "line": 41, 2647 "column": 18, 2648 "program": "generics_recursive.ets" 2649 }, 2650 "end": { 2651 "line": 41, 2652 "column": 20, 2653 "program": "generics_recursive.ets" 2654 } 2655 } 2656 }, 2657 "loc": { 2658 "start": { 2659 "line": 41, 2660 "column": 18, 2661 "program": "generics_recursive.ets" 2662 }, 2663 "end": { 2664 "line": 41, 2665 "column": 20, 2666 "program": "generics_recursive.ets" 2667 } 2668 } 2669 } 2670 ], 2671 "loc": { 2672 "start": { 2673 "line": 41, 2674 "column": 14, 2675 "program": "generics_recursive.ets" 2676 }, 2677 "end": { 2678 "line": 41, 2679 "column": 20, 2680 "program": "generics_recursive.ets" 2681 } 2682 } 2683 } 2684 ], 2685 "loc": { 2686 "start": { 2687 "line": 41, 2688 "column": 13, 2689 "program": "generics_recursive.ets" 2690 }, 2691 "end": { 2692 "line": 41, 2693 "column": 21, 2694 "program": "generics_recursive.ets" 2695 } 2696 } 2697 }, 2698 "loc": { 2699 "start": { 2700 "line": 41, 2701 "column": 12, 2702 "program": "generics_recursive.ets" 2703 }, 2704 "end": { 2705 "line": 41, 2706 "column": 23, 2707 "program": "generics_recursive.ets" 2708 } 2709 } 2710 }, 2711 "loc": { 2712 "start": { 2713 "line": 41, 2714 "column": 12, 2715 "program": "generics_recursive.ets" 2716 }, 2717 "end": { 2718 "line": 41, 2719 "column": 23, 2720 "program": "generics_recursive.ets" 2721 } 2722 } 2723 }, 2724 "body": { 2725 "type": "BlockStatement", 2726 "statements": [ 2727 { 2728 "type": "ReturnStatement", 2729 "argument": { 2730 "type": "CallExpression", 2731 "callee": { 2732 "type": "Identifier", 2733 "name": "mp", 2734 "decorators": [], 2735 "loc": { 2736 "start": { 2737 "line": 42, 2738 "column": 16, 2739 "program": "generics_recursive.ets" 2740 }, 2741 "end": { 2742 "line": 42, 2743 "column": 18, 2744 "program": "generics_recursive.ets" 2745 } 2746 } 2747 }, 2748 "arguments": [], 2749 "optional": false, 2750 "typeParameters": { 2751 "type": "TSTypeParameterInstantiation", 2752 "params": [ 2753 { 2754 "type": "ETSTuple", 2755 "types": [ 2756 { 2757 "type": "ETSTypeReference", 2758 "part": { 2759 "type": "ETSTypeReferencePart", 2760 "name": { 2761 "type": "Identifier", 2762 "name": "K", 2763 "decorators": [], 2764 "loc": { 2765 "start": { 2766 "line": 42, 2767 "column": 20, 2768 "program": "generics_recursive.ets" 2769 }, 2770 "end": { 2771 "line": 42, 2772 "column": 21, 2773 "program": "generics_recursive.ets" 2774 } 2775 } 2776 }, 2777 "loc": { 2778 "start": { 2779 "line": 42, 2780 "column": 20, 2781 "program": "generics_recursive.ets" 2782 }, 2783 "end": { 2784 "line": 42, 2785 "column": 22, 2786 "program": "generics_recursive.ets" 2787 } 2788 } 2789 }, 2790 "loc": { 2791 "start": { 2792 "line": 42, 2793 "column": 20, 2794 "program": "generics_recursive.ets" 2795 }, 2796 "end": { 2797 "line": 42, 2798 "column": 22, 2799 "program": "generics_recursive.ets" 2800 } 2801 } 2802 }, 2803 { 2804 "type": "ETSTypeReference", 2805 "part": { 2806 "type": "ETSTypeReferencePart", 2807 "name": { 2808 "type": "Identifier", 2809 "name": "V", 2810 "decorators": [], 2811 "loc": { 2812 "start": { 2813 "line": 42, 2814 "column": 23, 2815 "program": "generics_recursive.ets" 2816 }, 2817 "end": { 2818 "line": 42, 2819 "column": 24, 2820 "program": "generics_recursive.ets" 2821 } 2822 } 2823 }, 2824 "loc": { 2825 "start": { 2826 "line": 42, 2827 "column": 23, 2828 "program": "generics_recursive.ets" 2829 }, 2830 "end": { 2831 "line": 42, 2832 "column": 25, 2833 "program": "generics_recursive.ets" 2834 } 2835 } 2836 }, 2837 "loc": { 2838 "start": { 2839 "line": 42, 2840 "column": 23, 2841 "program": "generics_recursive.ets" 2842 }, 2843 "end": { 2844 "line": 42, 2845 "column": 25, 2846 "program": "generics_recursive.ets" 2847 } 2848 } 2849 } 2850 ], 2851 "loc": { 2852 "start": { 2853 "line": 42, 2854 "column": 19, 2855 "program": "generics_recursive.ets" 2856 }, 2857 "end": { 2858 "line": 42, 2859 "column": 25, 2860 "program": "generics_recursive.ets" 2861 } 2862 } 2863 } 2864 ], 2865 "loc": { 2866 "start": { 2867 "line": 42, 2868 "column": 18, 2869 "program": "generics_recursive.ets" 2870 }, 2871 "end": { 2872 "line": 42, 2873 "column": 26, 2874 "program": "generics_recursive.ets" 2875 } 2876 } 2877 }, 2878 "loc": { 2879 "start": { 2880 "line": 42, 2881 "column": 16, 2882 "program": "generics_recursive.ets" 2883 }, 2884 "end": { 2885 "line": 42, 2886 "column": 28, 2887 "program": "generics_recursive.ets" 2888 } 2889 } 2890 }, 2891 "loc": { 2892 "start": { 2893 "line": 42, 2894 "column": 9, 2895 "program": "generics_recursive.ets" 2896 }, 2897 "end": { 2898 "line": 42, 2899 "column": 29, 2900 "program": "generics_recursive.ets" 2901 } 2902 } 2903 } 2904 ], 2905 "loc": { 2906 "start": { 2907 "line": 41, 2908 "column": 22, 2909 "program": "generics_recursive.ets" 2910 }, 2911 "end": { 2912 "line": 43, 2913 "column": 6, 2914 "program": "generics_recursive.ets" 2915 } 2916 } 2917 }, 2918 "loc": { 2919 "start": { 2920 "line": 41, 2921 "column": 8, 2922 "program": "generics_recursive.ets" 2923 }, 2924 "end": { 2925 "line": 43, 2926 "column": 6, 2927 "program": "generics_recursive.ets" 2928 } 2929 } 2930 }, 2931 "loc": { 2932 "start": { 2933 "line": 41, 2934 "column": 8, 2935 "program": "generics_recursive.ets" 2936 }, 2937 "end": { 2938 "line": 43, 2939 "column": 6, 2940 "program": "generics_recursive.ets" 2941 } 2942 } 2943 }, 2944 "overloads": [], 2945 "decorators": [], 2946 "loc": { 2947 "start": { 2948 "line": 41, 2949 "column": 5, 2950 "program": "generics_recursive.ets" 2951 }, 2952 "end": { 2953 "line": 43, 2954 "column": 6, 2955 "program": "generics_recursive.ets" 2956 } 2957 } 2958 }, 2959 { 2960 "type": "MethodDefinition", 2961 "key": { 2962 "type": "Identifier", 2963 "name": "constructor", 2964 "decorators": [], 2965 "loc": { 2966 "start": { 2967 "line": 37, 2968 "column": 17, 2969 "program": "generics_recursive.ets" 2970 }, 2971 "end": { 2972 "line": 37, 2973 "column": 17, 2974 "program": "generics_recursive.ets" 2975 } 2976 } 2977 }, 2978 "kind": "constructor", 2979 "static": false, 2980 "optional": false, 2981 "computed": false, 2982 "value": { 2983 "type": "FunctionExpression", 2984 "function": { 2985 "type": "ScriptFunction", 2986 "id": { 2987 "type": "Identifier", 2988 "name": "constructor", 2989 "decorators": [], 2990 "loc": { 2991 "start": { 2992 "line": 37, 2993 "column": 17, 2994 "program": "generics_recursive.ets" 2995 }, 2996 "end": { 2997 "line": 37, 2998 "column": 17, 2999 "program": "generics_recursive.ets" 3000 } 3001 } 3002 }, 3003 "generator": false, 3004 "async": false, 3005 "expression": false, 3006 "params": [], 3007 "body": { 3008 "type": "BlockStatement", 3009 "statements": [], 3010 "loc": { 3011 "start": { 3012 "line": 37, 3013 "column": 17, 3014 "program": "generics_recursive.ets" 3015 }, 3016 "end": { 3017 "line": 37, 3018 "column": 17, 3019 "program": "generics_recursive.ets" 3020 } 3021 } 3022 }, 3023 "loc": { 3024 "start": { 3025 "line": 37, 3026 "column": 17, 3027 "program": "generics_recursive.ets" 3028 }, 3029 "end": { 3030 "line": 37, 3031 "column": 17, 3032 "program": "generics_recursive.ets" 3033 } 3034 } 3035 }, 3036 "loc": { 3037 "start": { 3038 "line": 37, 3039 "column": 17, 3040 "program": "generics_recursive.ets" 3041 }, 3042 "end": { 3043 "line": 37, 3044 "column": 17, 3045 "program": "generics_recursive.ets" 3046 } 3047 } 3048 }, 3049 "overloads": [], 3050 "decorators": [], 3051 "loc": { 3052 "start": { 3053 "line": 1, 3054 "column": 1, 3055 "program": null 3056 }, 3057 "end": { 3058 "line": 1, 3059 "column": 1, 3060 "program": null 3061 } 3062 } 3063 } 3064 ], 3065 "loc": { 3066 "start": { 3067 "line": 37, 3068 "column": 16, 3069 "program": "generics_recursive.ets" 3070 }, 3071 "end": { 3072 "line": 45, 3073 "column": 1, 3074 "program": "generics_recursive.ets" 3075 } 3076 } 3077 }, 3078 "loc": { 3079 "start": { 3080 "line": 37, 3081 "column": 1, 3082 "program": "generics_recursive.ets" 3083 }, 3084 "end": { 3085 "line": 45, 3086 "column": 1, 3087 "program": "generics_recursive.ets" 3088 } 3089 } 3090 }, 3091 { 3092 "type": "ClassDeclaration", 3093 "definition": { 3094 "id": { 3095 "type": "Identifier", 3096 "name": "ETSGLOBAL", 3097 "decorators": [], 3098 "loc": { 3099 "start": { 3100 "line": 1, 3101 "column": 1, 3102 "program": "generics_recursive.ets" 3103 }, 3104 "end": { 3105 "line": 1, 3106 "column": 1, 3107 "program": "generics_recursive.ets" 3108 } 3109 } 3110 }, 3111 "superClass": null, 3112 "implements": [], 3113 "body": [ 3114 { 3115 "type": "MethodDefinition", 3116 "key": { 3117 "type": "Identifier", 3118 "name": "main", 3119 "decorators": [], 3120 "loc": { 3121 "start": { 3122 "line": 1, 3123 "column": 1, 3124 "program": null 3125 }, 3126 "end": { 3127 "line": 1, 3128 "column": 1, 3129 "program": null 3130 } 3131 } 3132 }, 3133 "kind": "method", 3134 "accessibility": "public", 3135 "static": true, 3136 "optional": false, 3137 "computed": false, 3138 "value": { 3139 "type": "FunctionExpression", 3140 "function": { 3141 "type": "ScriptFunction", 3142 "id": { 3143 "type": "Identifier", 3144 "name": "main", 3145 "decorators": [], 3146 "loc": { 3147 "start": { 3148 "line": 1, 3149 "column": 1, 3150 "program": null 3151 }, 3152 "end": { 3153 "line": 1, 3154 "column": 1, 3155 "program": null 3156 } 3157 } 3158 }, 3159 "generator": false, 3160 "async": false, 3161 "expression": false, 3162 "params": [], 3163 "body": { 3164 "type": "BlockStatement", 3165 "statements": [], 3166 "loc": { 3167 "start": { 3168 "line": 1, 3169 "column": 1, 3170 "program": null 3171 }, 3172 "end": { 3173 "line": 1, 3174 "column": 1, 3175 "program": null 3176 } 3177 } 3178 }, 3179 "loc": { 3180 "start": { 3181 "line": 1, 3182 "column": 1, 3183 "program": null 3184 }, 3185 "end": { 3186 "line": 1, 3187 "column": 1, 3188 "program": null 3189 } 3190 } 3191 }, 3192 "loc": { 3193 "start": { 3194 "line": 1, 3195 "column": 1, 3196 "program": null 3197 }, 3198 "end": { 3199 "line": 1, 3200 "column": 1, 3201 "program": null 3202 } 3203 } 3204 }, 3205 "overloads": [], 3206 "decorators": [], 3207 "loc": { 3208 "start": { 3209 "line": 1, 3210 "column": 1, 3211 "program": "generics_recursive.ets" 3212 }, 3213 "end": { 3214 "line": 1, 3215 "column": 1, 3216 "program": "generics_recursive.ets" 3217 } 3218 } 3219 }, 3220 { 3221 "type": "MethodDefinition", 3222 "key": { 3223 "type": "Identifier", 3224 "name": "_$init$_", 3225 "decorators": [], 3226 "loc": { 3227 "start": { 3228 "line": 1, 3229 "column": 1, 3230 "program": null 3231 }, 3232 "end": { 3233 "line": 1, 3234 "column": 1, 3235 "program": null 3236 } 3237 } 3238 }, 3239 "kind": "method", 3240 "accessibility": "public", 3241 "static": true, 3242 "optional": false, 3243 "computed": false, 3244 "value": { 3245 "type": "FunctionExpression", 3246 "function": { 3247 "type": "ScriptFunction", 3248 "id": { 3249 "type": "Identifier", 3250 "name": "_$init$_", 3251 "decorators": [], 3252 "loc": { 3253 "start": { 3254 "line": 1, 3255 "column": 1, 3256 "program": null 3257 }, 3258 "end": { 3259 "line": 1, 3260 "column": 1, 3261 "program": null 3262 } 3263 } 3264 }, 3265 "generator": false, 3266 "async": false, 3267 "expression": false, 3268 "params": [], 3269 "body": { 3270 "type": "BlockStatement", 3271 "statements": [], 3272 "loc": { 3273 "start": { 3274 "line": 1, 3275 "column": 1, 3276 "program": null 3277 }, 3278 "end": { 3279 "line": 1, 3280 "column": 1, 3281 "program": null 3282 } 3283 } 3284 }, 3285 "loc": { 3286 "start": { 3287 "line": 1, 3288 "column": 1, 3289 "program": null 3290 }, 3291 "end": { 3292 "line": 1, 3293 "column": 1, 3294 "program": null 3295 } 3296 } 3297 }, 3298 "loc": { 3299 "start": { 3300 "line": 1, 3301 "column": 1, 3302 "program": null 3303 }, 3304 "end": { 3305 "line": 1, 3306 "column": 1, 3307 "program": null 3308 } 3309 } 3310 }, 3311 "overloads": [], 3312 "decorators": [], 3313 "loc": { 3314 "start": { 3315 "line": 1, 3316 "column": 1, 3317 "program": "generics_recursive.ets" 3318 }, 3319 "end": { 3320 "line": 1, 3321 "column": 1, 3322 "program": "generics_recursive.ets" 3323 } 3324 } 3325 }, 3326 { 3327 "type": "MethodDefinition", 3328 "key": { 3329 "type": "Identifier", 3330 "name": "mp", 3331 "decorators": [], 3332 "loc": { 3333 "start": { 3334 "line": 33, 3335 "column": 10, 3336 "program": "generics_recursive.ets" 3337 }, 3338 "end": { 3339 "line": 33, 3340 "column": 12, 3341 "program": "generics_recursive.ets" 3342 } 3343 } 3344 }, 3345 "kind": "method", 3346 "accessibility": "public", 3347 "static": true, 3348 "optional": false, 3349 "computed": false, 3350 "value": { 3351 "type": "FunctionExpression", 3352 "function": { 3353 "type": "ScriptFunction", 3354 "id": { 3355 "type": "Identifier", 3356 "name": "mp", 3357 "decorators": [], 3358 "loc": { 3359 "start": { 3360 "line": 33, 3361 "column": 10, 3362 "program": "generics_recursive.ets" 3363 }, 3364 "end": { 3365 "line": 33, 3366 "column": 12, 3367 "program": "generics_recursive.ets" 3368 } 3369 } 3370 }, 3371 "generator": false, 3372 "async": false, 3373 "expression": false, 3374 "params": [], 3375 "returnType": { 3376 "type": "ETSTypeReference", 3377 "part": { 3378 "type": "ETSTypeReferencePart", 3379 "name": { 3380 "type": "Identifier", 3381 "name": "C", 3382 "decorators": [], 3383 "loc": { 3384 "start": { 3385 "line": 33, 3386 "column": 19, 3387 "program": "generics_recursive.ets" 3388 }, 3389 "end": { 3390 "line": 33, 3391 "column": 20, 3392 "program": "generics_recursive.ets" 3393 } 3394 } 3395 }, 3396 "typeParams": { 3397 "type": "TSTypeParameterInstantiation", 3398 "params": [ 3399 { 3400 "type": "ETSTypeReference", 3401 "part": { 3402 "type": "ETSTypeReferencePart", 3403 "name": { 3404 "type": "Identifier", 3405 "name": "T", 3406 "decorators": [], 3407 "loc": { 3408 "start": { 3409 "line": 33, 3410 "column": 21, 3411 "program": "generics_recursive.ets" 3412 }, 3413 "end": { 3414 "line": 33, 3415 "column": 22, 3416 "program": "generics_recursive.ets" 3417 } 3418 } 3419 }, 3420 "loc": { 3421 "start": { 3422 "line": 33, 3423 "column": 21, 3424 "program": "generics_recursive.ets" 3425 }, 3426 "end": { 3427 "line": 33, 3428 "column": 23, 3429 "program": "generics_recursive.ets" 3430 } 3431 } 3432 }, 3433 "loc": { 3434 "start": { 3435 "line": 33, 3436 "column": 21, 3437 "program": "generics_recursive.ets" 3438 }, 3439 "end": { 3440 "line": 33, 3441 "column": 23, 3442 "program": "generics_recursive.ets" 3443 } 3444 } 3445 } 3446 ], 3447 "loc": { 3448 "start": { 3449 "line": 33, 3450 "column": 20, 3451 "program": "generics_recursive.ets" 3452 }, 3453 "end": { 3454 "line": 33, 3455 "column": 23, 3456 "program": "generics_recursive.ets" 3457 } 3458 } 3459 }, 3460 "loc": { 3461 "start": { 3462 "line": 33, 3463 "column": 19, 3464 "program": "generics_recursive.ets" 3465 }, 3466 "end": { 3467 "line": 33, 3468 "column": 25, 3469 "program": "generics_recursive.ets" 3470 } 3471 } 3472 }, 3473 "loc": { 3474 "start": { 3475 "line": 33, 3476 "column": 19, 3477 "program": "generics_recursive.ets" 3478 }, 3479 "end": { 3480 "line": 33, 3481 "column": 25, 3482 "program": "generics_recursive.ets" 3483 } 3484 } 3485 }, 3486 "typeParameters": { 3487 "type": "TSTypeParameterDeclaration", 3488 "params": [ 3489 { 3490 "type": "TSTypeParameter", 3491 "name": { 3492 "type": "Identifier", 3493 "name": "T", 3494 "decorators": [], 3495 "loc": { 3496 "start": { 3497 "line": 33, 3498 "column": 13, 3499 "program": "generics_recursive.ets" 3500 }, 3501 "end": { 3502 "line": 33, 3503 "column": 14, 3504 "program": "generics_recursive.ets" 3505 } 3506 } 3507 }, 3508 "loc": { 3509 "start": { 3510 "line": 33, 3511 "column": 13, 3512 "program": "generics_recursive.ets" 3513 }, 3514 "end": { 3515 "line": 33, 3516 "column": 15, 3517 "program": "generics_recursive.ets" 3518 } 3519 } 3520 } 3521 ], 3522 "loc": { 3523 "start": { 3524 "line": 33, 3525 "column": 12, 3526 "program": "generics_recursive.ets" 3527 }, 3528 "end": { 3529 "line": 33, 3530 "column": 15, 3531 "program": "generics_recursive.ets" 3532 } 3533 } 3534 }, 3535 "body": { 3536 "type": "BlockStatement", 3537 "statements": [ 3538 { 3539 "type": "ReturnStatement", 3540 "argument": { 3541 "type": "ETSNewClassInstanceExpression", 3542 "typeReference": { 3543 "type": "ETSTypeReference", 3544 "part": { 3545 "type": "ETSTypeReferencePart", 3546 "name": { 3547 "type": "Identifier", 3548 "name": "C", 3549 "decorators": [], 3550 "loc": { 3551 "start": { 3552 "line": 34, 3553 "column": 16, 3554 "program": "generics_recursive.ets" 3555 }, 3556 "end": { 3557 "line": 34, 3558 "column": 17, 3559 "program": "generics_recursive.ets" 3560 } 3561 } 3562 }, 3563 "typeParams": { 3564 "type": "TSTypeParameterInstantiation", 3565 "params": [ 3566 { 3567 "type": "ETSTypeReference", 3568 "part": { 3569 "type": "ETSTypeReferencePart", 3570 "name": { 3571 "type": "Identifier", 3572 "name": "T", 3573 "decorators": [], 3574 "loc": { 3575 "start": { 3576 "line": 34, 3577 "column": 18, 3578 "program": "generics_recursive.ets" 3579 }, 3580 "end": { 3581 "line": 34, 3582 "column": 19, 3583 "program": "generics_recursive.ets" 3584 } 3585 } 3586 }, 3587 "loc": { 3588 "start": { 3589 "line": 34, 3590 "column": 18, 3591 "program": "generics_recursive.ets" 3592 }, 3593 "end": { 3594 "line": 34, 3595 "column": 20, 3596 "program": "generics_recursive.ets" 3597 } 3598 } 3599 }, 3600 "loc": { 3601 "start": { 3602 "line": 34, 3603 "column": 18, 3604 "program": "generics_recursive.ets" 3605 }, 3606 "end": { 3607 "line": 34, 3608 "column": 20, 3609 "program": "generics_recursive.ets" 3610 } 3611 } 3612 } 3613 ], 3614 "loc": { 3615 "start": { 3616 "line": 34, 3617 "column": 17, 3618 "program": "generics_recursive.ets" 3619 }, 3620 "end": { 3621 "line": 34, 3622 "column": 20, 3623 "program": "generics_recursive.ets" 3624 } 3625 } 3626 }, 3627 "loc": { 3628 "start": { 3629 "line": 34, 3630 "column": 16, 3631 "program": "generics_recursive.ets" 3632 }, 3633 "end": { 3634 "line": 34, 3635 "column": 21, 3636 "program": "generics_recursive.ets" 3637 } 3638 } 3639 }, 3640 "loc": { 3641 "start": { 3642 "line": 34, 3643 "column": 16, 3644 "program": "generics_recursive.ets" 3645 }, 3646 "end": { 3647 "line": 34, 3648 "column": 21, 3649 "program": "generics_recursive.ets" 3650 } 3651 } 3652 }, 3653 "arguments": [], 3654 "loc": { 3655 "start": { 3656 "line": 34, 3657 "column": 12, 3658 "program": "generics_recursive.ets" 3659 }, 3660 "end": { 3661 "line": 34, 3662 "column": 23, 3663 "program": "generics_recursive.ets" 3664 } 3665 } 3666 }, 3667 "loc": { 3668 "start": { 3669 "line": 34, 3670 "column": 5, 3671 "program": "generics_recursive.ets" 3672 }, 3673 "end": { 3674 "line": 34, 3675 "column": 23, 3676 "program": "generics_recursive.ets" 3677 } 3678 } 3679 } 3680 ], 3681 "loc": { 3682 "start": { 3683 "line": 33, 3684 "column": 24, 3685 "program": "generics_recursive.ets" 3686 }, 3687 "end": { 3688 "line": 35, 3689 "column": 2, 3690 "program": "generics_recursive.ets" 3691 } 3692 } 3693 }, 3694 "loc": { 3695 "start": { 3696 "line": 33, 3697 "column": 10, 3698 "program": "generics_recursive.ets" 3699 }, 3700 "end": { 3701 "line": 35, 3702 "column": 2, 3703 "program": "generics_recursive.ets" 3704 } 3705 } 3706 }, 3707 "loc": { 3708 "start": { 3709 "line": 33, 3710 "column": 10, 3711 "program": "generics_recursive.ets" 3712 }, 3713 "end": { 3714 "line": 35, 3715 "column": 2, 3716 "program": "generics_recursive.ets" 3717 } 3718 } 3719 }, 3720 "overloads": [], 3721 "decorators": [], 3722 "loc": { 3723 "start": { 3724 "line": 33, 3725 "column": 1, 3726 "program": "generics_recursive.ets" 3727 }, 3728 "end": { 3729 "line": 35, 3730 "column": 2, 3731 "program": "generics_recursive.ets" 3732 } 3733 } 3734 } 3735 ], 3736 "loc": { 3737 "start": { 3738 "line": 1, 3739 "column": 1, 3740 "program": "generics_recursive.ets" 3741 }, 3742 "end": { 3743 "line": 1, 3744 "column": 1, 3745 "program": "generics_recursive.ets" 3746 } 3747 } 3748 }, 3749 "loc": { 3750 "start": { 3751 "line": 1, 3752 "column": 1, 3753 "program": "generics_recursive.ets" 3754 }, 3755 "end": { 3756 "line": 1, 3757 "column": 1, 3758 "program": "generics_recursive.ets" 3759 } 3760 } 3761 } 3762 ], 3763 "loc": { 3764 "start": { 3765 "line": 1, 3766 "column": 1, 3767 "program": "generics_recursive.ets" 3768 }, 3769 "end": { 3770 "line": 45, 3771 "column": 1, 3772 "program": "generics_recursive.ets" 3773 } 3774 } 3775} 3776