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 }, 16 "end": { 17 "line": 16, 18 "column": 8 19 } 20 } 21 }, 22 "superClass": null, 23 "implements": [], 24 "body": [ 25 { 26 "type": "MethodDefinition", 27 "key": { 28 "type": "Identifier", 29 "name": "constructor", 30 "decorators": [], 31 "loc": { 32 "start": { 33 "line": 1, 34 "column": 1 35 }, 36 "end": { 37 "line": 1, 38 "column": 1 39 } 40 } 41 }, 42 "kind": "constructor", 43 "static": false, 44 "optional": false, 45 "computed": false, 46 "value": { 47 "type": "FunctionExpression", 48 "function": { 49 "type": "ScriptFunction", 50 "id": { 51 "type": "Identifier", 52 "name": "constructor", 53 "decorators": [], 54 "loc": { 55 "start": { 56 "line": 1, 57 "column": 1 58 }, 59 "end": { 60 "line": 1, 61 "column": 1 62 } 63 } 64 }, 65 "generator": false, 66 "async": false, 67 "expression": false, 68 "params": [], 69 "body": { 70 "type": "BlockStatement", 71 "statements": [], 72 "loc": { 73 "start": { 74 "line": 1, 75 "column": 1 76 }, 77 "end": { 78 "line": 1, 79 "column": 1 80 } 81 } 82 }, 83 "loc": { 84 "start": { 85 "line": 1, 86 "column": 1 87 }, 88 "end": { 89 "line": 1, 90 "column": 1 91 } 92 } 93 }, 94 "loc": { 95 "start": { 96 "line": 1, 97 "column": 1 98 }, 99 "end": { 100 "line": 1, 101 "column": 1 102 } 103 } 104 }, 105 "overloads": [], 106 "decorators": [], 107 "loc": { 108 "start": { 109 "line": 16, 110 "column": 11 111 }, 112 "end": { 113 "line": 16, 114 "column": 11 115 } 116 } 117 } 118 ], 119 "loc": { 120 "start": { 121 "line": 16, 122 "column": 9 123 }, 124 "end": { 125 "line": 16, 126 "column": 11 127 } 128 } 129 }, 130 "loc": { 131 "start": { 132 "line": 16, 133 "column": 1 134 }, 135 "end": { 136 "line": 16, 137 "column": 11 138 } 139 } 140 }, 141 { 142 "type": "ClassDeclaration", 143 "definition": { 144 "id": { 145 "type": "Identifier", 146 "name": "B", 147 "decorators": [], 148 "loc": { 149 "start": { 150 "line": 17, 151 "column": 7 152 }, 153 "end": { 154 "line": 17, 155 "column": 8 156 } 157 } 158 }, 159 "typeParameters": { 160 "type": "TSTypeParameterDeclaration", 161 "params": [ 162 { 163 "type": "TSTypeParameter", 164 "name": { 165 "type": "Identifier", 166 "name": "T", 167 "decorators": [], 168 "loc": { 169 "start": { 170 "line": 17, 171 "column": 9 172 }, 173 "end": { 174 "line": 17, 175 "column": 10 176 } 177 } 178 }, 179 "loc": { 180 "start": { 181 "line": 17, 182 "column": 9 183 }, 184 "end": { 185 "line": 17, 186 "column": 11 187 } 188 } 189 } 190 ], 191 "loc": { 192 "start": { 193 "line": 17, 194 "column": 8 195 }, 196 "end": { 197 "line": 17, 198 "column": 11 199 } 200 } 201 }, 202 "superClass": null, 203 "implements": [], 204 "body": [ 205 { 206 "type": "MethodDefinition", 207 "key": { 208 "type": "Identifier", 209 "name": "constructor", 210 "decorators": [], 211 "loc": { 212 "start": { 213 "line": 1, 214 "column": 1 215 }, 216 "end": { 217 "line": 1, 218 "column": 1 219 } 220 } 221 }, 222 "kind": "constructor", 223 "static": false, 224 "optional": false, 225 "computed": false, 226 "value": { 227 "type": "FunctionExpression", 228 "function": { 229 "type": "ScriptFunction", 230 "id": { 231 "type": "Identifier", 232 "name": "constructor", 233 "decorators": [], 234 "loc": { 235 "start": { 236 "line": 1, 237 "column": 1 238 }, 239 "end": { 240 "line": 1, 241 "column": 1 242 } 243 } 244 }, 245 "generator": false, 246 "async": false, 247 "expression": false, 248 "params": [], 249 "body": { 250 "type": "BlockStatement", 251 "statements": [], 252 "loc": { 253 "start": { 254 "line": 1, 255 "column": 1 256 }, 257 "end": { 258 "line": 1, 259 "column": 1 260 } 261 } 262 }, 263 "loc": { 264 "start": { 265 "line": 1, 266 "column": 1 267 }, 268 "end": { 269 "line": 1, 270 "column": 1 271 } 272 } 273 }, 274 "loc": { 275 "start": { 276 "line": 1, 277 "column": 1 278 }, 279 "end": { 280 "line": 1, 281 "column": 1 282 } 283 } 284 }, 285 "overloads": [], 286 "decorators": [], 287 "loc": { 288 "start": { 289 "line": 17, 290 "column": 14 291 }, 292 "end": { 293 "line": 17, 294 "column": 14 295 } 296 } 297 } 298 ], 299 "loc": { 300 "start": { 301 "line": 17, 302 "column": 12 303 }, 304 "end": { 305 "line": 17, 306 "column": 14 307 } 308 } 309 }, 310 "loc": { 311 "start": { 312 "line": 17, 313 "column": 1 314 }, 315 "end": { 316 "line": 17, 317 "column": 14 318 } 319 } 320 }, 321 { 322 "type": "ClassDeclaration", 323 "definition": { 324 "id": { 325 "type": "Identifier", 326 "name": "ETSGLOBAL", 327 "decorators": [], 328 "loc": { 329 "start": { 330 "line": 1, 331 "column": 1 332 }, 333 "end": { 334 "line": 1, 335 "column": 1 336 } 337 } 338 }, 339 "superClass": null, 340 "implements": [], 341 "body": [ 342 { 343 "type": "MethodDefinition", 344 "key": { 345 "type": "Identifier", 346 "name": "_$init$_", 347 "decorators": [], 348 "loc": { 349 "start": { 350 "line": 1, 351 "column": 1 352 }, 353 "end": { 354 "line": 1, 355 "column": 1 356 } 357 } 358 }, 359 "kind": "method", 360 "accessibility": "public", 361 "static": true, 362 "optional": false, 363 "computed": false, 364 "value": { 365 "type": "FunctionExpression", 366 "function": { 367 "type": "ScriptFunction", 368 "id": { 369 "type": "Identifier", 370 "name": "_$init$_", 371 "decorators": [], 372 "loc": { 373 "start": { 374 "line": 1, 375 "column": 1 376 }, 377 "end": { 378 "line": 1, 379 "column": 1 380 } 381 } 382 }, 383 "generator": false, 384 "async": false, 385 "expression": false, 386 "params": [], 387 "body": { 388 "type": "BlockStatement", 389 "statements": [], 390 "loc": { 391 "start": { 392 "line": 1, 393 "column": 1 394 }, 395 "end": { 396 "line": 1, 397 "column": 1 398 } 399 } 400 }, 401 "loc": { 402 "start": { 403 "line": 1, 404 "column": 1 405 }, 406 "end": { 407 "line": 1, 408 "column": 1 409 } 410 } 411 }, 412 "loc": { 413 "start": { 414 "line": 1, 415 "column": 1 416 }, 417 "end": { 418 "line": 1, 419 "column": 1 420 } 421 } 422 }, 423 "overloads": [], 424 "decorators": [], 425 "loc": { 426 "start": { 427 "line": 1, 428 "column": 1 429 }, 430 "end": { 431 "line": 1, 432 "column": 1 433 } 434 } 435 }, 436 { 437 "type": "MethodDefinition", 438 "key": { 439 "type": "Identifier", 440 "name": "test2", 441 "decorators": [], 442 "loc": { 443 "start": { 444 "line": 19, 445 "column": 10 446 }, 447 "end": { 448 "line": 19, 449 "column": 15 450 } 451 } 452 }, 453 "kind": "method", 454 "accessibility": "public", 455 "static": true, 456 "optional": false, 457 "computed": false, 458 "value": { 459 "type": "FunctionExpression", 460 "function": { 461 "type": "ScriptFunction", 462 "id": { 463 "type": "Identifier", 464 "name": "test2", 465 "decorators": [], 466 "loc": { 467 "start": { 468 "line": 19, 469 "column": 10 470 }, 471 "end": { 472 "line": 19, 473 "column": 15 474 } 475 } 476 }, 477 "generator": false, 478 "async": false, 479 "expression": false, 480 "params": [], 481 "returnType": { 482 "type": "ETSTypeReference", 483 "part": { 484 "type": "ETSTypeReferencePart", 485 "name": { 486 "type": "Identifier", 487 "name": "B", 488 "decorators": [], 489 "loc": { 490 "start": { 491 "line": 19, 492 "column": 22 493 }, 494 "end": { 495 "line": 19, 496 "column": 23 497 } 498 } 499 }, 500 "typeParams": { 501 "type": "TSTypeParameterInstantiation", 502 "params": [ 503 { 504 "type": "ETSTypeReference", 505 "part": { 506 "type": "ETSTypeReferencePart", 507 "name": { 508 "type": "Identifier", 509 "name": "T", 510 "decorators": [], 511 "loc": { 512 "start": { 513 "line": 19, 514 "column": 24 515 }, 516 "end": { 517 "line": 19, 518 "column": 25 519 } 520 } 521 }, 522 "loc": { 523 "start": { 524 "line": 19, 525 "column": 24 526 }, 527 "end": { 528 "line": 19, 529 "column": 26 530 } 531 } 532 }, 533 "loc": { 534 "start": { 535 "line": 19, 536 "column": 24 537 }, 538 "end": { 539 "line": 19, 540 "column": 26 541 } 542 } 543 } 544 ], 545 "loc": { 546 "start": { 547 "line": 19, 548 "column": 23 549 }, 550 "end": { 551 "line": 19, 552 "column": 26 553 } 554 } 555 }, 556 "loc": { 557 "start": { 558 "line": 19, 559 "column": 22 560 }, 561 "end": { 562 "line": 19, 563 "column": 28 564 } 565 } 566 }, 567 "loc": { 568 "start": { 569 "line": 19, 570 "column": 22 571 }, 572 "end": { 573 "line": 19, 574 "column": 28 575 } 576 } 577 }, 578 "typeParameters": { 579 "type": "TSTypeParameterDeclaration", 580 "params": [ 581 { 582 "type": "TSTypeParameter", 583 "name": { 584 "type": "Identifier", 585 "name": "T", 586 "decorators": [], 587 "loc": { 588 "start": { 589 "line": 19, 590 "column": 16 591 }, 592 "end": { 593 "line": 19, 594 "column": 17 595 } 596 } 597 }, 598 "loc": { 599 "start": { 600 "line": 19, 601 "column": 16 602 }, 603 "end": { 604 "line": 19, 605 "column": 18 606 } 607 } 608 } 609 ], 610 "loc": { 611 "start": { 612 "line": 19, 613 "column": 15 614 }, 615 "end": { 616 "line": 19, 617 "column": 18 618 } 619 } 620 }, 621 "body": { 622 "type": "BlockStatement", 623 "statements": [ 624 { 625 "type": "VariableDeclaration", 626 "declarations": [ 627 { 628 "type": "VariableDeclarator", 629 "id": { 630 "type": "Identifier", 631 "name": "tmp", 632 "typeAnnotation": { 633 "type": "ETSTypeReference", 634 "part": { 635 "type": "ETSTypeReferencePart", 636 "name": { 637 "type": "Identifier", 638 "name": "B", 639 "decorators": [], 640 "loc": { 641 "start": { 642 "line": 20, 643 "column": 12 644 }, 645 "end": { 646 "line": 20, 647 "column": 13 648 } 649 } 650 }, 651 "typeParams": { 652 "type": "TSTypeParameterInstantiation", 653 "params": [ 654 { 655 "type": "ETSTypeReference", 656 "part": { 657 "type": "ETSTypeReferencePart", 658 "name": { 659 "type": "Identifier", 660 "name": "T", 661 "decorators": [], 662 "loc": { 663 "start": { 664 "line": 20, 665 "column": 14 666 }, 667 "end": { 668 "line": 20, 669 "column": 15 670 } 671 } 672 }, 673 "loc": { 674 "start": { 675 "line": 20, 676 "column": 14 677 }, 678 "end": { 679 "line": 20, 680 "column": 16 681 } 682 } 683 }, 684 "loc": { 685 "start": { 686 "line": 20, 687 "column": 14 688 }, 689 "end": { 690 "line": 20, 691 "column": 16 692 } 693 } 694 } 695 ], 696 "loc": { 697 "start": { 698 "line": 20, 699 "column": 13 700 }, 701 "end": { 702 "line": 20, 703 "column": 16 704 } 705 } 706 }, 707 "loc": { 708 "start": { 709 "line": 20, 710 "column": 12 711 }, 712 "end": { 713 "line": 20, 714 "column": 18 715 } 716 } 717 }, 718 "loc": { 719 "start": { 720 "line": 20, 721 "column": 12 722 }, 723 "end": { 724 "line": 20, 725 "column": 18 726 } 727 } 728 }, 729 "decorators": [], 730 "loc": { 731 "start": { 732 "line": 20, 733 "column": 7 734 }, 735 "end": { 736 "line": 20, 737 "column": 10 738 } 739 } 740 }, 741 "init": { 742 "type": "ETSNewClassInstanceExpression", 743 "typeReference": { 744 "type": "ETSTypeReference", 745 "part": { 746 "type": "ETSTypeReferencePart", 747 "name": { 748 "type": "Identifier", 749 "name": "B", 750 "decorators": [], 751 "loc": { 752 "start": { 753 "line": 20, 754 "column": 23 755 }, 756 "end": { 757 "line": 20, 758 "column": 24 759 } 760 } 761 }, 762 "typeParams": { 763 "type": "TSTypeParameterInstantiation", 764 "params": [ 765 { 766 "type": "ETSTypeReference", 767 "part": { 768 "type": "ETSTypeReferencePart", 769 "name": { 770 "type": "Identifier", 771 "name": "T", 772 "decorators": [], 773 "loc": { 774 "start": { 775 "line": 20, 776 "column": 25 777 }, 778 "end": { 779 "line": 20, 780 "column": 26 781 } 782 } 783 }, 784 "loc": { 785 "start": { 786 "line": 20, 787 "column": 25 788 }, 789 "end": { 790 "line": 20, 791 "column": 27 792 } 793 } 794 }, 795 "loc": { 796 "start": { 797 "line": 20, 798 "column": 25 799 }, 800 "end": { 801 "line": 20, 802 "column": 27 803 } 804 } 805 } 806 ], 807 "loc": { 808 "start": { 809 "line": 20, 810 "column": 24 811 }, 812 "end": { 813 "line": 20, 814 "column": 27 815 } 816 } 817 }, 818 "loc": { 819 "start": { 820 "line": 20, 821 "column": 23 822 }, 823 "end": { 824 "line": 20, 825 "column": 28 826 } 827 } 828 }, 829 "loc": { 830 "start": { 831 "line": 20, 832 "column": 23 833 }, 834 "end": { 835 "line": 20, 836 "column": 28 837 } 838 } 839 }, 840 "arguments": [], 841 "loc": { 842 "start": { 843 "line": 20, 844 "column": 19 845 }, 846 "end": { 847 "line": 20, 848 "column": 30 849 } 850 } 851 }, 852 "loc": { 853 "start": { 854 "line": 20, 855 "column": 7 856 }, 857 "end": { 858 "line": 20, 859 "column": 30 860 } 861 } 862 } 863 ], 864 "kind": "let", 865 "loc": { 866 "start": { 867 "line": 20, 868 "column": 3 869 }, 870 "end": { 871 "line": 20, 872 "column": 30 873 } 874 } 875 }, 876 { 877 "type": "ReturnStatement", 878 "argument": { 879 "type": "Identifier", 880 "name": "tmp", 881 "decorators": [], 882 "loc": { 883 "start": { 884 "line": 21, 885 "column": 10 886 }, 887 "end": { 888 "line": 21, 889 "column": 13 890 } 891 } 892 }, 893 "loc": { 894 "start": { 895 "line": 21, 896 "column": 3 897 }, 898 "end": { 899 "line": 21, 900 "column": 14 901 } 902 } 903 } 904 ], 905 "loc": { 906 "start": { 907 "line": 19, 908 "column": 27 909 }, 910 "end": { 911 "line": 22, 912 "column": 2 913 } 914 } 915 }, 916 "loc": { 917 "start": { 918 "line": 19, 919 "column": 15 920 }, 921 "end": { 922 "line": 22, 923 "column": 2 924 } 925 } 926 }, 927 "loc": { 928 "start": { 929 "line": 19, 930 "column": 15 931 }, 932 "end": { 933 "line": 22, 934 "column": 2 935 } 936 } 937 }, 938 "overloads": [], 939 "decorators": [], 940 "loc": { 941 "start": { 942 "line": 19, 943 "column": 1 944 }, 945 "end": { 946 "line": 22, 947 "column": 2 948 } 949 } 950 }, 951 { 952 "type": "MethodDefinition", 953 "key": { 954 "type": "Identifier", 955 "name": "test3", 956 "decorators": [], 957 "loc": { 958 "start": { 959 "line": 24, 960 "column": 10 961 }, 962 "end": { 963 "line": 24, 964 "column": 15 965 } 966 } 967 }, 968 "kind": "method", 969 "accessibility": "public", 970 "static": true, 971 "optional": false, 972 "computed": false, 973 "value": { 974 "type": "FunctionExpression", 975 "function": { 976 "type": "ScriptFunction", 977 "id": { 978 "type": "Identifier", 979 "name": "test3", 980 "decorators": [], 981 "loc": { 982 "start": { 983 "line": 24, 984 "column": 10 985 }, 986 "end": { 987 "line": 24, 988 "column": 15 989 } 990 } 991 }, 992 "generator": false, 993 "async": false, 994 "expression": false, 995 "params": [], 996 "returnType": { 997 "type": "ETSTypeReference", 998 "part": { 999 "type": "ETSTypeReferencePart", 1000 "name": { 1001 "type": "Identifier", 1002 "name": "B", 1003 "decorators": [], 1004 "loc": { 1005 "start": { 1006 "line": 24, 1007 "column": 22 1008 }, 1009 "end": { 1010 "line": 24, 1011 "column": 23 1012 } 1013 } 1014 }, 1015 "typeParams": { 1016 "type": "TSTypeParameterInstantiation", 1017 "params": [ 1018 { 1019 "type": "ETSTypeReference", 1020 "part": { 1021 "type": "ETSTypeReferencePart", 1022 "name": { 1023 "type": "Identifier", 1024 "name": "B", 1025 "decorators": [], 1026 "loc": { 1027 "start": { 1028 "line": 24, 1029 "column": 24 1030 }, 1031 "end": { 1032 "line": 24, 1033 "column": 25 1034 } 1035 } 1036 }, 1037 "typeParams": { 1038 "type": "TSTypeParameterInstantiation", 1039 "params": [ 1040 { 1041 "type": "ETSTypeReference", 1042 "part": { 1043 "type": "ETSTypeReferencePart", 1044 "name": { 1045 "type": "Identifier", 1046 "name": "T", 1047 "decorators": [], 1048 "loc": { 1049 "start": { 1050 "line": 24, 1051 "column": 26 1052 }, 1053 "end": { 1054 "line": 24, 1055 "column": 27 1056 } 1057 } 1058 }, 1059 "loc": { 1060 "start": { 1061 "line": 24, 1062 "column": 26 1063 }, 1064 "end": { 1065 "line": 24, 1066 "column": 29 1067 } 1068 } 1069 }, 1070 "loc": { 1071 "start": { 1072 "line": 24, 1073 "column": 26 1074 }, 1075 "end": { 1076 "line": 24, 1077 "column": 29 1078 } 1079 } 1080 } 1081 ], 1082 "loc": { 1083 "start": { 1084 "line": 24, 1085 "column": 25 1086 }, 1087 "end": { 1088 "line": 24, 1089 "column": 29 1090 } 1091 } 1092 }, 1093 "loc": { 1094 "start": { 1095 "line": 24, 1096 "column": 24 1097 }, 1098 "end": { 1099 "line": 24, 1100 "column": 29 1101 } 1102 } 1103 }, 1104 "loc": { 1105 "start": { 1106 "line": 24, 1107 "column": 24 1108 }, 1109 "end": { 1110 "line": 24, 1111 "column": 29 1112 } 1113 } 1114 } 1115 ], 1116 "loc": { 1117 "start": { 1118 "line": 24, 1119 "column": 23 1120 }, 1121 "end": { 1122 "line": 24, 1123 "column": 29 1124 } 1125 } 1126 }, 1127 "loc": { 1128 "start": { 1129 "line": 24, 1130 "column": 22 1131 }, 1132 "end": { 1133 "line": 24, 1134 "column": 31 1135 } 1136 } 1137 }, 1138 "loc": { 1139 "start": { 1140 "line": 24, 1141 "column": 22 1142 }, 1143 "end": { 1144 "line": 24, 1145 "column": 31 1146 } 1147 } 1148 }, 1149 "typeParameters": { 1150 "type": "TSTypeParameterDeclaration", 1151 "params": [ 1152 { 1153 "type": "TSTypeParameter", 1154 "name": { 1155 "type": "Identifier", 1156 "name": "T", 1157 "decorators": [], 1158 "loc": { 1159 "start": { 1160 "line": 24, 1161 "column": 16 1162 }, 1163 "end": { 1164 "line": 24, 1165 "column": 17 1166 } 1167 } 1168 }, 1169 "loc": { 1170 "start": { 1171 "line": 24, 1172 "column": 16 1173 }, 1174 "end": { 1175 "line": 24, 1176 "column": 18 1177 } 1178 } 1179 } 1180 ], 1181 "loc": { 1182 "start": { 1183 "line": 24, 1184 "column": 15 1185 }, 1186 "end": { 1187 "line": 24, 1188 "column": 18 1189 } 1190 } 1191 }, 1192 "body": { 1193 "type": "BlockStatement", 1194 "statements": [ 1195 { 1196 "type": "VariableDeclaration", 1197 "declarations": [ 1198 { 1199 "type": "VariableDeclarator", 1200 "id": { 1201 "type": "Identifier", 1202 "name": "tmp", 1203 "typeAnnotation": { 1204 "type": "ETSTypeReference", 1205 "part": { 1206 "type": "ETSTypeReferencePart", 1207 "name": { 1208 "type": "Identifier", 1209 "name": "B", 1210 "decorators": [], 1211 "loc": { 1212 "start": { 1213 "line": 25, 1214 "column": 12 1215 }, 1216 "end": { 1217 "line": 25, 1218 "column": 13 1219 } 1220 } 1221 }, 1222 "typeParams": { 1223 "type": "TSTypeParameterInstantiation", 1224 "params": [ 1225 { 1226 "type": "ETSTypeReference", 1227 "part": { 1228 "type": "ETSTypeReferencePart", 1229 "name": { 1230 "type": "Identifier", 1231 "name": "B", 1232 "decorators": [], 1233 "loc": { 1234 "start": { 1235 "line": 25, 1236 "column": 14 1237 }, 1238 "end": { 1239 "line": 25, 1240 "column": 15 1241 } 1242 } 1243 }, 1244 "typeParams": { 1245 "type": "TSTypeParameterInstantiation", 1246 "params": [ 1247 { 1248 "type": "ETSTypeReference", 1249 "part": { 1250 "type": "ETSTypeReferencePart", 1251 "name": { 1252 "type": "Identifier", 1253 "name": "T", 1254 "decorators": [], 1255 "loc": { 1256 "start": { 1257 "line": 25, 1258 "column": 16 1259 }, 1260 "end": { 1261 "line": 25, 1262 "column": 17 1263 } 1264 } 1265 }, 1266 "loc": { 1267 "start": { 1268 "line": 25, 1269 "column": 16 1270 }, 1271 "end": { 1272 "line": 25, 1273 "column": 19 1274 } 1275 } 1276 }, 1277 "loc": { 1278 "start": { 1279 "line": 25, 1280 "column": 16 1281 }, 1282 "end": { 1283 "line": 25, 1284 "column": 19 1285 } 1286 } 1287 } 1288 ], 1289 "loc": { 1290 "start": { 1291 "line": 25, 1292 "column": 15 1293 }, 1294 "end": { 1295 "line": 25, 1296 "column": 19 1297 } 1298 } 1299 }, 1300 "loc": { 1301 "start": { 1302 "line": 25, 1303 "column": 14 1304 }, 1305 "end": { 1306 "line": 25, 1307 "column": 19 1308 } 1309 } 1310 }, 1311 "loc": { 1312 "start": { 1313 "line": 25, 1314 "column": 14 1315 }, 1316 "end": { 1317 "line": 25, 1318 "column": 19 1319 } 1320 } 1321 } 1322 ], 1323 "loc": { 1324 "start": { 1325 "line": 25, 1326 "column": 13 1327 }, 1328 "end": { 1329 "line": 25, 1330 "column": 19 1331 } 1332 } 1333 }, 1334 "loc": { 1335 "start": { 1336 "line": 25, 1337 "column": 12 1338 }, 1339 "end": { 1340 "line": 25, 1341 "column": 21 1342 } 1343 } 1344 }, 1345 "loc": { 1346 "start": { 1347 "line": 25, 1348 "column": 12 1349 }, 1350 "end": { 1351 "line": 25, 1352 "column": 21 1353 } 1354 } 1355 }, 1356 "decorators": [], 1357 "loc": { 1358 "start": { 1359 "line": 25, 1360 "column": 7 1361 }, 1362 "end": { 1363 "line": 25, 1364 "column": 10 1365 } 1366 } 1367 }, 1368 "init": { 1369 "type": "ETSNewClassInstanceExpression", 1370 "typeReference": { 1371 "type": "ETSTypeReference", 1372 "part": { 1373 "type": "ETSTypeReferencePart", 1374 "name": { 1375 "type": "Identifier", 1376 "name": "B", 1377 "decorators": [], 1378 "loc": { 1379 "start": { 1380 "line": 25, 1381 "column": 26 1382 }, 1383 "end": { 1384 "line": 25, 1385 "column": 27 1386 } 1387 } 1388 }, 1389 "typeParams": { 1390 "type": "TSTypeParameterInstantiation", 1391 "params": [ 1392 { 1393 "type": "ETSTypeReference", 1394 "part": { 1395 "type": "ETSTypeReferencePart", 1396 "name": { 1397 "type": "Identifier", 1398 "name": "B", 1399 "decorators": [], 1400 "loc": { 1401 "start": { 1402 "line": 25, 1403 "column": 28 1404 }, 1405 "end": { 1406 "line": 25, 1407 "column": 29 1408 } 1409 } 1410 }, 1411 "typeParams": { 1412 "type": "TSTypeParameterInstantiation", 1413 "params": [ 1414 { 1415 "type": "ETSTypeReference", 1416 "part": { 1417 "type": "ETSTypeReferencePart", 1418 "name": { 1419 "type": "Identifier", 1420 "name": "T", 1421 "decorators": [], 1422 "loc": { 1423 "start": { 1424 "line": 25, 1425 "column": 30 1426 }, 1427 "end": { 1428 "line": 25, 1429 "column": 31 1430 } 1431 } 1432 }, 1433 "loc": { 1434 "start": { 1435 "line": 25, 1436 "column": 30 1437 }, 1438 "end": { 1439 "line": 25, 1440 "column": 33 1441 } 1442 } 1443 }, 1444 "loc": { 1445 "start": { 1446 "line": 25, 1447 "column": 30 1448 }, 1449 "end": { 1450 "line": 25, 1451 "column": 33 1452 } 1453 } 1454 } 1455 ], 1456 "loc": { 1457 "start": { 1458 "line": 25, 1459 "column": 29 1460 }, 1461 "end": { 1462 "line": 25, 1463 "column": 33 1464 } 1465 } 1466 }, 1467 "loc": { 1468 "start": { 1469 "line": 25, 1470 "column": 28 1471 }, 1472 "end": { 1473 "line": 25, 1474 "column": 33 1475 } 1476 } 1477 }, 1478 "loc": { 1479 "start": { 1480 "line": 25, 1481 "column": 28 1482 }, 1483 "end": { 1484 "line": 25, 1485 "column": 33 1486 } 1487 } 1488 } 1489 ], 1490 "loc": { 1491 "start": { 1492 "line": 25, 1493 "column": 27 1494 }, 1495 "end": { 1496 "line": 25, 1497 "column": 33 1498 } 1499 } 1500 }, 1501 "loc": { 1502 "start": { 1503 "line": 25, 1504 "column": 26 1505 }, 1506 "end": { 1507 "line": 25, 1508 "column": 34 1509 } 1510 } 1511 }, 1512 "loc": { 1513 "start": { 1514 "line": 25, 1515 "column": 26 1516 }, 1517 "end": { 1518 "line": 25, 1519 "column": 34 1520 } 1521 } 1522 }, 1523 "arguments": [], 1524 "loc": { 1525 "start": { 1526 "line": 25, 1527 "column": 22 1528 }, 1529 "end": { 1530 "line": 25, 1531 "column": 36 1532 } 1533 } 1534 }, 1535 "loc": { 1536 "start": { 1537 "line": 25, 1538 "column": 7 1539 }, 1540 "end": { 1541 "line": 25, 1542 "column": 36 1543 } 1544 } 1545 } 1546 ], 1547 "kind": "let", 1548 "loc": { 1549 "start": { 1550 "line": 25, 1551 "column": 3 1552 }, 1553 "end": { 1554 "line": 25, 1555 "column": 36 1556 } 1557 } 1558 }, 1559 { 1560 "type": "ReturnStatement", 1561 "argument": { 1562 "type": "Identifier", 1563 "name": "tmp", 1564 "decorators": [], 1565 "loc": { 1566 "start": { 1567 "line": 26, 1568 "column": 10 1569 }, 1570 "end": { 1571 "line": 26, 1572 "column": 13 1573 } 1574 } 1575 }, 1576 "loc": { 1577 "start": { 1578 "line": 26, 1579 "column": 3 1580 }, 1581 "end": { 1582 "line": 26, 1583 "column": 14 1584 } 1585 } 1586 } 1587 ], 1588 "loc": { 1589 "start": { 1590 "line": 24, 1591 "column": 30 1592 }, 1593 "end": { 1594 "line": 27, 1595 "column": 2 1596 } 1597 } 1598 }, 1599 "loc": { 1600 "start": { 1601 "line": 24, 1602 "column": 15 1603 }, 1604 "end": { 1605 "line": 27, 1606 "column": 2 1607 } 1608 } 1609 }, 1610 "loc": { 1611 "start": { 1612 "line": 24, 1613 "column": 15 1614 }, 1615 "end": { 1616 "line": 27, 1617 "column": 2 1618 } 1619 } 1620 }, 1621 "overloads": [], 1622 "decorators": [], 1623 "loc": { 1624 "start": { 1625 "line": 24, 1626 "column": 1 1627 }, 1628 "end": { 1629 "line": 27, 1630 "column": 2 1631 } 1632 } 1633 }, 1634 { 1635 "type": "MethodDefinition", 1636 "key": { 1637 "type": "Identifier", 1638 "name": "main", 1639 "decorators": [], 1640 "loc": { 1641 "start": { 1642 "line": 29, 1643 "column": 10 1644 }, 1645 "end": { 1646 "line": 29, 1647 "column": 14 1648 } 1649 } 1650 }, 1651 "kind": "method", 1652 "accessibility": "public", 1653 "static": true, 1654 "optional": false, 1655 "computed": false, 1656 "value": { 1657 "type": "FunctionExpression", 1658 "function": { 1659 "type": "ScriptFunction", 1660 "id": { 1661 "type": "Identifier", 1662 "name": "main", 1663 "decorators": [], 1664 "loc": { 1665 "start": { 1666 "line": 29, 1667 "column": 10 1668 }, 1669 "end": { 1670 "line": 29, 1671 "column": 14 1672 } 1673 } 1674 }, 1675 "generator": false, 1676 "async": false, 1677 "expression": false, 1678 "params": [], 1679 "returnType": { 1680 "type": "ETSPrimitiveType", 1681 "loc": { 1682 "start": { 1683 "line": 29, 1684 "column": 18 1685 }, 1686 "end": { 1687 "line": 29, 1688 "column": 22 1689 } 1690 } 1691 }, 1692 "body": { 1693 "type": "BlockStatement", 1694 "statements": [ 1695 { 1696 "type": "VariableDeclaration", 1697 "declarations": [ 1698 { 1699 "type": "VariableDeclarator", 1700 "id": { 1701 "type": "Identifier", 1702 "name": "bClass", 1703 "typeAnnotation": { 1704 "type": "ETSTypeReference", 1705 "part": { 1706 "type": "ETSTypeReferencePart", 1707 "name": { 1708 "type": "Identifier", 1709 "name": "B", 1710 "decorators": [], 1711 "loc": { 1712 "start": { 1713 "line": 30, 1714 "column": 15 1715 }, 1716 "end": { 1717 "line": 30, 1718 "column": 16 1719 } 1720 } 1721 }, 1722 "typeParams": { 1723 "type": "TSTypeParameterInstantiation", 1724 "params": [ 1725 { 1726 "type": "ETSTypeReference", 1727 "part": { 1728 "type": "ETSTypeReferencePart", 1729 "name": { 1730 "type": "Identifier", 1731 "name": "A", 1732 "decorators": [], 1733 "loc": { 1734 "start": { 1735 "line": 30, 1736 "column": 17 1737 }, 1738 "end": { 1739 "line": 30, 1740 "column": 18 1741 } 1742 } 1743 }, 1744 "loc": { 1745 "start": { 1746 "line": 30, 1747 "column": 17 1748 }, 1749 "end": { 1750 "line": 30, 1751 "column": 19 1752 } 1753 } 1754 }, 1755 "loc": { 1756 "start": { 1757 "line": 30, 1758 "column": 17 1759 }, 1760 "end": { 1761 "line": 30, 1762 "column": 19 1763 } 1764 } 1765 } 1766 ], 1767 "loc": { 1768 "start": { 1769 "line": 30, 1770 "column": 16 1771 }, 1772 "end": { 1773 "line": 30, 1774 "column": 19 1775 } 1776 } 1777 }, 1778 "loc": { 1779 "start": { 1780 "line": 30, 1781 "column": 15 1782 }, 1783 "end": { 1784 "line": 30, 1785 "column": 21 1786 } 1787 } 1788 }, 1789 "loc": { 1790 "start": { 1791 "line": 30, 1792 "column": 15 1793 }, 1794 "end": { 1795 "line": 30, 1796 "column": 21 1797 } 1798 } 1799 }, 1800 "decorators": [], 1801 "loc": { 1802 "start": { 1803 "line": 30, 1804 "column": 7 1805 }, 1806 "end": { 1807 "line": 30, 1808 "column": 13 1809 } 1810 } 1811 }, 1812 "init": { 1813 "type": "CallExpression", 1814 "callee": { 1815 "type": "Identifier", 1816 "name": "test2", 1817 "decorators": [], 1818 "loc": { 1819 "start": { 1820 "line": 30, 1821 "column": 22 1822 }, 1823 "end": { 1824 "line": 30, 1825 "column": 27 1826 } 1827 } 1828 }, 1829 "arguments": [], 1830 "optional": false, 1831 "typeParameters": { 1832 "type": "TSTypeParameterInstantiation", 1833 "params": [ 1834 { 1835 "type": "ETSTypeReference", 1836 "part": { 1837 "type": "ETSTypeReferencePart", 1838 "name": { 1839 "type": "Identifier", 1840 "name": "A", 1841 "decorators": [], 1842 "loc": { 1843 "start": { 1844 "line": 30, 1845 "column": 28 1846 }, 1847 "end": { 1848 "line": 30, 1849 "column": 29 1850 } 1851 } 1852 }, 1853 "loc": { 1854 "start": { 1855 "line": 30, 1856 "column": 28 1857 }, 1858 "end": { 1859 "line": 30, 1860 "column": 30 1861 } 1862 } 1863 }, 1864 "loc": { 1865 "start": { 1866 "line": 30, 1867 "column": 28 1868 }, 1869 "end": { 1870 "line": 30, 1871 "column": 30 1872 } 1873 } 1874 } 1875 ], 1876 "loc": { 1877 "start": { 1878 "line": 30, 1879 "column": 27 1880 }, 1881 "end": { 1882 "line": 30, 1883 "column": 30 1884 } 1885 } 1886 }, 1887 "loc": { 1888 "start": { 1889 "line": 30, 1890 "column": 22 1891 }, 1892 "end": { 1893 "line": 30, 1894 "column": 32 1895 } 1896 } 1897 }, 1898 "loc": { 1899 "start": { 1900 "line": 30, 1901 "column": 7 1902 }, 1903 "end": { 1904 "line": 30, 1905 "column": 32 1906 } 1907 } 1908 } 1909 ], 1910 "kind": "let", 1911 "loc": { 1912 "start": { 1913 "line": 30, 1914 "column": 3 1915 }, 1916 "end": { 1917 "line": 30, 1918 "column": 33 1919 } 1920 } 1921 }, 1922 { 1923 "type": "VariableDeclaration", 1924 "declarations": [ 1925 { 1926 "type": "VariableDeclarator", 1927 "id": { 1928 "type": "Identifier", 1929 "name": "bClass2", 1930 "typeAnnotation": { 1931 "type": "ETSTypeReference", 1932 "part": { 1933 "type": "ETSTypeReferencePart", 1934 "name": { 1935 "type": "Identifier", 1936 "name": "B", 1937 "decorators": [], 1938 "loc": { 1939 "start": { 1940 "line": 31, 1941 "column": 16 1942 }, 1943 "end": { 1944 "line": 31, 1945 "column": 17 1946 } 1947 } 1948 }, 1949 "typeParams": { 1950 "type": "TSTypeParameterInstantiation", 1951 "params": [ 1952 { 1953 "type": "ETSTypeReference", 1954 "part": { 1955 "type": "ETSTypeReferencePart", 1956 "name": { 1957 "type": "Identifier", 1958 "name": "B", 1959 "decorators": [], 1960 "loc": { 1961 "start": { 1962 "line": 31, 1963 "column": 18 1964 }, 1965 "end": { 1966 "line": 31, 1967 "column": 19 1968 } 1969 } 1970 }, 1971 "typeParams": { 1972 "type": "TSTypeParameterInstantiation", 1973 "params": [ 1974 { 1975 "type": "ETSTypeReference", 1976 "part": { 1977 "type": "ETSTypeReferencePart", 1978 "name": { 1979 "type": "Identifier", 1980 "name": "A", 1981 "decorators": [], 1982 "loc": { 1983 "start": { 1984 "line": 31, 1985 "column": 20 1986 }, 1987 "end": { 1988 "line": 31, 1989 "column": 21 1990 } 1991 } 1992 }, 1993 "loc": { 1994 "start": { 1995 "line": 31, 1996 "column": 20 1997 }, 1998 "end": { 1999 "line": 31, 2000 "column": 23 2001 } 2002 } 2003 }, 2004 "loc": { 2005 "start": { 2006 "line": 31, 2007 "column": 20 2008 }, 2009 "end": { 2010 "line": 31, 2011 "column": 23 2012 } 2013 } 2014 } 2015 ], 2016 "loc": { 2017 "start": { 2018 "line": 31, 2019 "column": 19 2020 }, 2021 "end": { 2022 "line": 31, 2023 "column": 23 2024 } 2025 } 2026 }, 2027 "loc": { 2028 "start": { 2029 "line": 31, 2030 "column": 18 2031 }, 2032 "end": { 2033 "line": 31, 2034 "column": 23 2035 } 2036 } 2037 }, 2038 "loc": { 2039 "start": { 2040 "line": 31, 2041 "column": 18 2042 }, 2043 "end": { 2044 "line": 31, 2045 "column": 23 2046 } 2047 } 2048 } 2049 ], 2050 "loc": { 2051 "start": { 2052 "line": 31, 2053 "column": 17 2054 }, 2055 "end": { 2056 "line": 31, 2057 "column": 23 2058 } 2059 } 2060 }, 2061 "loc": { 2062 "start": { 2063 "line": 31, 2064 "column": 16 2065 }, 2066 "end": { 2067 "line": 31, 2068 "column": 25 2069 } 2070 } 2071 }, 2072 "loc": { 2073 "start": { 2074 "line": 31, 2075 "column": 16 2076 }, 2077 "end": { 2078 "line": 31, 2079 "column": 25 2080 } 2081 } 2082 }, 2083 "decorators": [], 2084 "loc": { 2085 "start": { 2086 "line": 31, 2087 "column": 7 2088 }, 2089 "end": { 2090 "line": 31, 2091 "column": 14 2092 } 2093 } 2094 }, 2095 "init": { 2096 "type": "CallExpression", 2097 "callee": { 2098 "type": "Identifier", 2099 "name": "test3", 2100 "decorators": [], 2101 "loc": { 2102 "start": { 2103 "line": 31, 2104 "column": 26 2105 }, 2106 "end": { 2107 "line": 31, 2108 "column": 31 2109 } 2110 } 2111 }, 2112 "arguments": [], 2113 "optional": false, 2114 "typeParameters": { 2115 "type": "TSTypeParameterInstantiation", 2116 "params": [ 2117 { 2118 "type": "ETSTypeReference", 2119 "part": { 2120 "type": "ETSTypeReferencePart", 2121 "name": { 2122 "type": "Identifier", 2123 "name": "A", 2124 "decorators": [], 2125 "loc": { 2126 "start": { 2127 "line": 31, 2128 "column": 32 2129 }, 2130 "end": { 2131 "line": 31, 2132 "column": 33 2133 } 2134 } 2135 }, 2136 "loc": { 2137 "start": { 2138 "line": 31, 2139 "column": 32 2140 }, 2141 "end": { 2142 "line": 31, 2143 "column": 34 2144 } 2145 } 2146 }, 2147 "loc": { 2148 "start": { 2149 "line": 31, 2150 "column": 32 2151 }, 2152 "end": { 2153 "line": 31, 2154 "column": 34 2155 } 2156 } 2157 } 2158 ], 2159 "loc": { 2160 "start": { 2161 "line": 31, 2162 "column": 31 2163 }, 2164 "end": { 2165 "line": 31, 2166 "column": 34 2167 } 2168 } 2169 }, 2170 "loc": { 2171 "start": { 2172 "line": 31, 2173 "column": 26 2174 }, 2175 "end": { 2176 "line": 31, 2177 "column": 36 2178 } 2179 } 2180 }, 2181 "loc": { 2182 "start": { 2183 "line": 31, 2184 "column": 7 2185 }, 2186 "end": { 2187 "line": 31, 2188 "column": 36 2189 } 2190 } 2191 } 2192 ], 2193 "kind": "let", 2194 "loc": { 2195 "start": { 2196 "line": 31, 2197 "column": 3 2198 }, 2199 "end": { 2200 "line": 31, 2201 "column": 37 2202 } 2203 } 2204 } 2205 ], 2206 "loc": { 2207 "start": { 2208 "line": 29, 2209 "column": 23 2210 }, 2211 "end": { 2212 "line": 32, 2213 "column": 2 2214 } 2215 } 2216 }, 2217 "loc": { 2218 "start": { 2219 "line": 29, 2220 "column": 14 2221 }, 2222 "end": { 2223 "line": 32, 2224 "column": 2 2225 } 2226 } 2227 }, 2228 "loc": { 2229 "start": { 2230 "line": 29, 2231 "column": 14 2232 }, 2233 "end": { 2234 "line": 32, 2235 "column": 2 2236 } 2237 } 2238 }, 2239 "overloads": [], 2240 "decorators": [], 2241 "loc": { 2242 "start": { 2243 "line": 29, 2244 "column": 1 2245 }, 2246 "end": { 2247 "line": 32, 2248 "column": 2 2249 } 2250 } 2251 } 2252 ], 2253 "loc": { 2254 "start": { 2255 "line": 1, 2256 "column": 1 2257 }, 2258 "end": { 2259 "line": 1, 2260 "column": 1 2261 } 2262 } 2263 }, 2264 "loc": { 2265 "start": { 2266 "line": 1, 2267 "column": 1 2268 }, 2269 "end": { 2270 "line": 1, 2271 "column": 1 2272 } 2273 } 2274 } 2275 ], 2276 "loc": { 2277 "start": { 2278 "line": 1, 2279 "column": 1 2280 }, 2281 "end": { 2282 "line": 33, 2283 "column": 1 2284 } 2285 } 2286} 2287