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