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