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