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 "declare": true, 985 "loc": { 986 "start": { 987 "line": 21, 988 "column": 8 989 }, 990 "end": { 991 "line": 21, 992 "column": 37 993 } 994 } 995 }, 996 "loc": { 997 "start": { 998 "line": 21, 999 "column": 8 1000 }, 1001 "end": { 1002 "line": 21, 1003 "column": 37 1004 } 1005 } 1006 }, 1007 "overloads": [ 1008 { 1009 "type": "MethodDefinition", 1010 "key": { 1011 "type": "Identifier", 1012 "name": "foo", 1013 "decorators": [], 1014 "loc": { 1015 "start": { 1016 "line": 21, 1017 "column": 5 1018 }, 1019 "end": { 1020 "line": 21, 1021 "column": 8 1022 } 1023 } 1024 }, 1025 "kind": "method", 1026 "accessibility": "public", 1027 "static": false, 1028 "optional": false, 1029 "computed": false, 1030 "value": { 1031 "type": "FunctionExpression", 1032 "function": { 1033 "type": "ScriptFunction", 1034 "id": { 1035 "type": "Identifier", 1036 "name": "foo", 1037 "decorators": [], 1038 "loc": { 1039 "start": { 1040 "line": 21, 1041 "column": 5 1042 }, 1043 "end": { 1044 "line": 21, 1045 "column": 8 1046 } 1047 } 1048 }, 1049 "generator": false, 1050 "async": false, 1051 "expression": false, 1052 "params": [], 1053 "returnType": { 1054 "type": "ETSTypeReference", 1055 "part": { 1056 "type": "ETSTypeReferencePart", 1057 "name": { 1058 "type": "Identifier", 1059 "name": "A", 1060 "decorators": [], 1061 "loc": { 1062 "start": { 1063 "line": 21, 1064 "column": 32 1065 }, 1066 "end": { 1067 "line": 21, 1068 "column": 33 1069 } 1070 } 1071 }, 1072 "typeParams": { 1073 "type": "TSTypeParameterInstantiation", 1074 "params": [ 1075 { 1076 "type": "ETSTypeReference", 1077 "part": { 1078 "type": "ETSTypeReferencePart", 1079 "name": { 1080 "type": "Identifier", 1081 "name": "T", 1082 "decorators": [], 1083 "loc": { 1084 "start": { 1085 "line": 21, 1086 "column": 34 1087 }, 1088 "end": { 1089 "line": 21, 1090 "column": 35 1091 } 1092 } 1093 }, 1094 "loc": { 1095 "start": { 1096 "line": 21, 1097 "column": 34 1098 }, 1099 "end": { 1100 "line": 21, 1101 "column": 36 1102 } 1103 } 1104 }, 1105 "loc": { 1106 "start": { 1107 "line": 21, 1108 "column": 34 1109 }, 1110 "end": { 1111 "line": 21, 1112 "column": 36 1113 } 1114 } 1115 } 1116 ], 1117 "loc": { 1118 "start": { 1119 "line": 21, 1120 "column": 33 1121 }, 1122 "end": { 1123 "line": 21, 1124 "column": 36 1125 } 1126 } 1127 }, 1128 "loc": { 1129 "start": { 1130 "line": 21, 1131 "column": 32 1132 }, 1133 "end": { 1134 "line": 21, 1135 "column": 37 1136 } 1137 } 1138 }, 1139 "loc": { 1140 "start": { 1141 "line": 21, 1142 "column": 32 1143 }, 1144 "end": { 1145 "line": 21, 1146 "column": 37 1147 } 1148 } 1149 }, 1150 "typeParameters": { 1151 "type": "TSTypeParameterDeclaration", 1152 "params": [ 1153 { 1154 "type": "TSTypeParameter", 1155 "name": { 1156 "type": "Identifier", 1157 "name": "T", 1158 "decorators": [], 1159 "loc": { 1160 "start": { 1161 "line": 21, 1162 "column": 9 1163 }, 1164 "end": { 1165 "line": 21, 1166 "column": 10 1167 } 1168 } 1169 }, 1170 "loc": { 1171 "start": { 1172 "line": 1, 1173 "column": 1 1174 }, 1175 "end": { 1176 "line": 1, 1177 "column": 1 1178 } 1179 } 1180 } 1181 ], 1182 "loc": { 1183 "start": { 1184 "line": 1, 1185 "column": 1 1186 }, 1187 "end": { 1188 "line": 1, 1189 "column": 1 1190 } 1191 } 1192 }, 1193 "body": { 1194 "type": "BlockStatement", 1195 "statements": [], 1196 "loc": { 1197 "start": { 1198 "line": 1, 1199 "column": 1 1200 }, 1201 "end": { 1202 "line": 1, 1203 "column": 1 1204 } 1205 } 1206 }, 1207 "loc": { 1208 "start": { 1209 "line": 684, 1210 "column": 1 1211 }, 1212 "end": { 1213 "line": 684, 1214 "column": 1 1215 } 1216 } 1217 }, 1218 "loc": { 1219 "start": { 1220 "line": 1, 1221 "column": 1 1222 }, 1223 "end": { 1224 "line": 1, 1225 "column": 1 1226 } 1227 } 1228 }, 1229 "overloads": [], 1230 "decorators": [], 1231 "loc": { 1232 "start": { 1233 "line": 21, 1234 "column": 5 1235 }, 1236 "end": { 1237 "line": 1, 1238 "column": 1 1239 } 1240 } 1241 } 1242 ], 1243 "decorators": [], 1244 "loc": { 1245 "start": { 1246 "line": 21, 1247 "column": 5 1248 }, 1249 "end": { 1250 "line": 21, 1251 "column": 37 1252 } 1253 } 1254 } 1255 ], 1256 "loc": { 1257 "start": { 1258 "line": 20, 1259 "column": 17 1260 }, 1261 "end": { 1262 "line": 22, 1263 "column": 2 1264 } 1265 } 1266 }, 1267 "id": { 1268 "type": "Identifier", 1269 "name": "Base", 1270 "decorators": [], 1271 "loc": { 1272 "start": { 1273 "line": 20, 1274 "column": 11 1275 }, 1276 "end": { 1277 "line": 20, 1278 "column": 15 1279 } 1280 } 1281 }, 1282 "extends": [], 1283 "loc": { 1284 "start": { 1285 "line": 20, 1286 "column": 1 1287 }, 1288 "end": { 1289 "line": 24, 1290 "column": 6 1291 } 1292 } 1293 }, 1294 { 1295 "type": "ClassDeclaration", 1296 "definition": { 1297 "id": { 1298 "type": "Identifier", 1299 "name": "Derived", 1300 "decorators": [], 1301 "loc": { 1302 "start": { 1303 "line": 24, 1304 "column": 7 1305 }, 1306 "end": { 1307 "line": 24, 1308 "column": 14 1309 } 1310 } 1311 }, 1312 "superClass": null, 1313 "implements": [ 1314 { 1315 "type": "TSClassImplements", 1316 "expression": { 1317 "type": "ETSTypeReference", 1318 "part": { 1319 "type": "ETSTypeReferencePart", 1320 "name": { 1321 "type": "Identifier", 1322 "name": "Base", 1323 "decorators": [], 1324 "loc": { 1325 "start": { 1326 "line": 24, 1327 "column": 26 1328 }, 1329 "end": { 1330 "line": 24, 1331 "column": 30 1332 } 1333 } 1334 }, 1335 "loc": { 1336 "start": { 1337 "line": 24, 1338 "column": 26 1339 }, 1340 "end": { 1341 "line": 24, 1342 "column": 32 1343 } 1344 } 1345 }, 1346 "loc": { 1347 "start": { 1348 "line": 24, 1349 "column": 26 1350 }, 1351 "end": { 1352 "line": 24, 1353 "column": 32 1354 } 1355 } 1356 }, 1357 "loc": { 1358 "start": { 1359 "line": 24, 1360 "column": 26 1361 }, 1362 "end": { 1363 "line": 24, 1364 "column": 32 1365 } 1366 } 1367 } 1368 ], 1369 "body": [ 1370 { 1371 "type": "MethodDefinition", 1372 "key": { 1373 "type": "Identifier", 1374 "name": "foo", 1375 "decorators": [], 1376 "loc": { 1377 "start": { 1378 "line": 25, 1379 "column": 21 1380 }, 1381 "end": { 1382 "line": 25, 1383 "column": 24 1384 } 1385 } 1386 }, 1387 "kind": "method", 1388 "accessibility": "public", 1389 "static": false, 1390 "optional": false, 1391 "computed": false, 1392 "value": { 1393 "type": "FunctionExpression", 1394 "function": { 1395 "type": "ScriptFunction", 1396 "id": { 1397 "type": "Identifier", 1398 "name": "foo", 1399 "decorators": [], 1400 "loc": { 1401 "start": { 1402 "line": 25, 1403 "column": 21 1404 }, 1405 "end": { 1406 "line": 25, 1407 "column": 24 1408 } 1409 } 1410 }, 1411 "generator": false, 1412 "async": false, 1413 "expression": false, 1414 "params": [ 1415 { 1416 "type": "ETSParameterExpression", 1417 "name": { 1418 "type": "Identifier", 1419 "name": "equivalent", 1420 "typeAnnotation": { 1421 "type": "ETSUnionType", 1422 "types": [ 1423 { 1424 "type": "ETSTypeReference", 1425 "part": { 1426 "type": "ETSTypeReferencePart", 1427 "name": { 1428 "type": "Identifier", 1429 "name": "C", 1430 "decorators": [], 1431 "loc": { 1432 "start": { 1433 "line": 25, 1434 "column": 41 1435 }, 1436 "end": { 1437 "line": 25, 1438 "column": 42 1439 } 1440 } 1441 }, 1442 "typeParams": { 1443 "type": "TSTypeParameterInstantiation", 1444 "params": [ 1445 { 1446 "type": "ETSTypeReference", 1447 "part": { 1448 "type": "ETSTypeReferencePart", 1449 "name": { 1450 "type": "Identifier", 1451 "name": "T", 1452 "decorators": [], 1453 "loc": { 1454 "start": { 1455 "line": 25, 1456 "column": 43 1457 }, 1458 "end": { 1459 "line": 25, 1460 "column": 44 1461 } 1462 } 1463 }, 1464 "loc": { 1465 "start": { 1466 "line": 25, 1467 "column": 43 1468 }, 1469 "end": { 1470 "line": 25, 1471 "column": 45 1472 } 1473 } 1474 }, 1475 "loc": { 1476 "start": { 1477 "line": 25, 1478 "column": 43 1479 }, 1480 "end": { 1481 "line": 25, 1482 "column": 45 1483 } 1484 } 1485 } 1486 ], 1487 "loc": { 1488 "start": { 1489 "line": 25, 1490 "column": 42 1491 }, 1492 "end": { 1493 "line": 25, 1494 "column": 45 1495 } 1496 } 1497 }, 1498 "loc": { 1499 "start": { 1500 "line": 25, 1501 "column": 41 1502 }, 1503 "end": { 1504 "line": 25, 1505 "column": 46 1506 } 1507 } 1508 }, 1509 "loc": { 1510 "start": { 1511 "line": 25, 1512 "column": 41 1513 }, 1514 "end": { 1515 "line": 25, 1516 "column": 46 1517 } 1518 } 1519 }, 1520 { 1521 "type": "ETSUndefinedType", 1522 "loc": { 1523 "start": { 1524 "line": 25, 1525 "column": 38 1526 }, 1527 "end": { 1528 "line": 25, 1529 "column": 39 1530 } 1531 } 1532 } 1533 ], 1534 "loc": { 1535 "start": { 1536 "line": 25, 1537 "column": 41 1538 }, 1539 "end": { 1540 "line": 25, 1541 "column": 46 1542 } 1543 } 1544 }, 1545 "decorators": [], 1546 "loc": { 1547 "start": { 1548 "line": 25, 1549 "column": 28 1550 }, 1551 "end": { 1552 "line": 25, 1553 "column": 46 1554 } 1555 } 1556 }, 1557 "loc": { 1558 "start": { 1559 "line": 25, 1560 "column": 28 1561 }, 1562 "end": { 1563 "line": 25, 1564 "column": 46 1565 } 1566 } 1567 } 1568 ], 1569 "returnType": { 1570 "type": "ETSTypeReference", 1571 "part": { 1572 "type": "ETSTypeReferencePart", 1573 "name": { 1574 "type": "Identifier", 1575 "name": "B", 1576 "decorators": [], 1577 "loc": { 1578 "start": { 1579 "line": 25, 1580 "column": 48 1581 }, 1582 "end": { 1583 "line": 25, 1584 "column": 49 1585 } 1586 } 1587 }, 1588 "typeParams": { 1589 "type": "TSTypeParameterInstantiation", 1590 "params": [ 1591 { 1592 "type": "ETSTypeReference", 1593 "part": { 1594 "type": "ETSTypeReferencePart", 1595 "name": { 1596 "type": "Identifier", 1597 "name": "T", 1598 "decorators": [], 1599 "loc": { 1600 "start": { 1601 "line": 25, 1602 "column": 50 1603 }, 1604 "end": { 1605 "line": 25, 1606 "column": 51 1607 } 1608 } 1609 }, 1610 "loc": { 1611 "start": { 1612 "line": 25, 1613 "column": 50 1614 }, 1615 "end": { 1616 "line": 25, 1617 "column": 52 1618 } 1619 } 1620 }, 1621 "loc": { 1622 "start": { 1623 "line": 25, 1624 "column": 50 1625 }, 1626 "end": { 1627 "line": 25, 1628 "column": 52 1629 } 1630 } 1631 } 1632 ], 1633 "loc": { 1634 "start": { 1635 "line": 25, 1636 "column": 49 1637 }, 1638 "end": { 1639 "line": 25, 1640 "column": 52 1641 } 1642 } 1643 }, 1644 "loc": { 1645 "start": { 1646 "line": 25, 1647 "column": 48 1648 }, 1649 "end": { 1650 "line": 25, 1651 "column": 54 1652 } 1653 } 1654 }, 1655 "loc": { 1656 "start": { 1657 "line": 25, 1658 "column": 48 1659 }, 1660 "end": { 1661 "line": 25, 1662 "column": 54 1663 } 1664 } 1665 }, 1666 "typeParameters": { 1667 "type": "TSTypeParameterDeclaration", 1668 "params": [ 1669 { 1670 "type": "TSTypeParameter", 1671 "name": { 1672 "type": "Identifier", 1673 "name": "T", 1674 "decorators": [], 1675 "loc": { 1676 "start": { 1677 "line": 25, 1678 "column": 25 1679 }, 1680 "end": { 1681 "line": 25, 1682 "column": 26 1683 } 1684 } 1685 }, 1686 "loc": { 1687 "start": { 1688 "line": 25, 1689 "column": 25 1690 }, 1691 "end": { 1692 "line": 25, 1693 "column": 27 1694 } 1695 } 1696 } 1697 ], 1698 "loc": { 1699 "start": { 1700 "line": 25, 1701 "column": 24 1702 }, 1703 "end": { 1704 "line": 25, 1705 "column": 27 1706 } 1707 } 1708 }, 1709 "body": { 1710 "type": "BlockStatement", 1711 "statements": [ 1712 { 1713 "type": "ReturnStatement", 1714 "argument": { 1715 "type": "ETSNewClassInstanceExpression", 1716 "typeReference": { 1717 "type": "ETSTypeReference", 1718 "part": { 1719 "type": "ETSTypeReferencePart", 1720 "name": { 1721 "type": "Identifier", 1722 "name": "B", 1723 "decorators": [], 1724 "loc": { 1725 "start": { 1726 "line": 26, 1727 "column": 20 1728 }, 1729 "end": { 1730 "line": 26, 1731 "column": 21 1732 } 1733 } 1734 }, 1735 "typeParams": { 1736 "type": "TSTypeParameterInstantiation", 1737 "params": [ 1738 { 1739 "type": "ETSTypeReference", 1740 "part": { 1741 "type": "ETSTypeReferencePart", 1742 "name": { 1743 "type": "Identifier", 1744 "name": "T", 1745 "decorators": [], 1746 "loc": { 1747 "start": { 1748 "line": 26, 1749 "column": 22 1750 }, 1751 "end": { 1752 "line": 26, 1753 "column": 23 1754 } 1755 } 1756 }, 1757 "loc": { 1758 "start": { 1759 "line": 26, 1760 "column": 22 1761 }, 1762 "end": { 1763 "line": 26, 1764 "column": 24 1765 } 1766 } 1767 }, 1768 "loc": { 1769 "start": { 1770 "line": 26, 1771 "column": 22 1772 }, 1773 "end": { 1774 "line": 26, 1775 "column": 24 1776 } 1777 } 1778 } 1779 ], 1780 "loc": { 1781 "start": { 1782 "line": 26, 1783 "column": 21 1784 }, 1785 "end": { 1786 "line": 26, 1787 "column": 24 1788 } 1789 } 1790 }, 1791 "loc": { 1792 "start": { 1793 "line": 26, 1794 "column": 20 1795 }, 1796 "end": { 1797 "line": 26, 1798 "column": 25 1799 } 1800 } 1801 }, 1802 "loc": { 1803 "start": { 1804 "line": 26, 1805 "column": 20 1806 }, 1807 "end": { 1808 "line": 26, 1809 "column": 25 1810 } 1811 } 1812 }, 1813 "arguments": [], 1814 "loc": { 1815 "start": { 1816 "line": 26, 1817 "column": 16 1818 }, 1819 "end": { 1820 "line": 26, 1821 "column": 27 1822 } 1823 } 1824 }, 1825 "loc": { 1826 "start": { 1827 "line": 26, 1828 "column": 9 1829 }, 1830 "end": { 1831 "line": 26, 1832 "column": 27 1833 } 1834 } 1835 } 1836 ], 1837 "loc": { 1838 "start": { 1839 "line": 25, 1840 "column": 53 1841 }, 1842 "end": { 1843 "line": 27, 1844 "column": 6 1845 } 1846 } 1847 }, 1848 "loc": { 1849 "start": { 1850 "line": 25, 1851 "column": 24 1852 }, 1853 "end": { 1854 "line": 27, 1855 "column": 6 1856 } 1857 } 1858 }, 1859 "loc": { 1860 "start": { 1861 "line": 25, 1862 "column": 24 1863 }, 1864 "end": { 1865 "line": 27, 1866 "column": 6 1867 } 1868 } 1869 }, 1870 "overloads": [ 1871 { 1872 "type": "MethodDefinition", 1873 "key": { 1874 "type": "Identifier", 1875 "name": "foo", 1876 "decorators": [], 1877 "loc": { 1878 "start": { 1879 "line": 25, 1880 "column": 21 1881 }, 1882 "end": { 1883 "line": 25, 1884 "column": 24 1885 } 1886 } 1887 }, 1888 "kind": "method", 1889 "accessibility": "public", 1890 "static": false, 1891 "optional": false, 1892 "computed": false, 1893 "value": { 1894 "type": "FunctionExpression", 1895 "function": { 1896 "type": "ScriptFunction", 1897 "id": { 1898 "type": "Identifier", 1899 "name": "foo", 1900 "decorators": [], 1901 "loc": { 1902 "start": { 1903 "line": 25, 1904 "column": 21 1905 }, 1906 "end": { 1907 "line": 25, 1908 "column": 24 1909 } 1910 } 1911 }, 1912 "generator": false, 1913 "async": false, 1914 "expression": false, 1915 "params": [], 1916 "returnType": { 1917 "type": "ETSTypeReference", 1918 "part": { 1919 "type": "ETSTypeReferencePart", 1920 "name": { 1921 "type": "Identifier", 1922 "name": "B", 1923 "decorators": [], 1924 "loc": { 1925 "start": { 1926 "line": 25, 1927 "column": 48 1928 }, 1929 "end": { 1930 "line": 25, 1931 "column": 49 1932 } 1933 } 1934 }, 1935 "typeParams": { 1936 "type": "TSTypeParameterInstantiation", 1937 "params": [ 1938 { 1939 "type": "ETSTypeReference", 1940 "part": { 1941 "type": "ETSTypeReferencePart", 1942 "name": { 1943 "type": "Identifier", 1944 "name": "T", 1945 "decorators": [], 1946 "loc": { 1947 "start": { 1948 "line": 25, 1949 "column": 50 1950 }, 1951 "end": { 1952 "line": 25, 1953 "column": 51 1954 } 1955 } 1956 }, 1957 "loc": { 1958 "start": { 1959 "line": 25, 1960 "column": 50 1961 }, 1962 "end": { 1963 "line": 25, 1964 "column": 52 1965 } 1966 } 1967 }, 1968 "loc": { 1969 "start": { 1970 "line": 25, 1971 "column": 50 1972 }, 1973 "end": { 1974 "line": 25, 1975 "column": 52 1976 } 1977 } 1978 } 1979 ], 1980 "loc": { 1981 "start": { 1982 "line": 25, 1983 "column": 49 1984 }, 1985 "end": { 1986 "line": 25, 1987 "column": 52 1988 } 1989 } 1990 }, 1991 "loc": { 1992 "start": { 1993 "line": 25, 1994 "column": 48 1995 }, 1996 "end": { 1997 "line": 25, 1998 "column": 54 1999 } 2000 } 2001 }, 2002 "loc": { 2003 "start": { 2004 "line": 25, 2005 "column": 48 2006 }, 2007 "end": { 2008 "line": 25, 2009 "column": 54 2010 } 2011 } 2012 }, 2013 "typeParameters": { 2014 "type": "TSTypeParameterDeclaration", 2015 "params": [ 2016 { 2017 "type": "TSTypeParameter", 2018 "name": { 2019 "type": "Identifier", 2020 "name": "T", 2021 "decorators": [], 2022 "loc": { 2023 "start": { 2024 "line": 25, 2025 "column": 25 2026 }, 2027 "end": { 2028 "line": 25, 2029 "column": 26 2030 } 2031 } 2032 }, 2033 "loc": { 2034 "start": { 2035 "line": 1, 2036 "column": 1 2037 }, 2038 "end": { 2039 "line": 1, 2040 "column": 1 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 "body": { 2057 "type": "BlockStatement", 2058 "statements": [ 2059 { 2060 "type": "ReturnStatement", 2061 "argument": { 2062 "type": "CallExpression", 2063 "callee": { 2064 "type": "MemberExpression", 2065 "object": { 2066 "type": "ThisExpression", 2067 "loc": { 2068 "start": { 2069 "line": 1, 2070 "column": 1 2071 }, 2072 "end": { 2073 "line": 1, 2074 "column": 1 2075 } 2076 } 2077 }, 2078 "property": { 2079 "type": "Identifier", 2080 "name": "foo", 2081 "decorators": [], 2082 "loc": { 2083 "start": { 2084 "line": 1, 2085 "column": 1 2086 }, 2087 "end": { 2088 "line": 1, 2089 "column": 1 2090 } 2091 } 2092 }, 2093 "computed": false, 2094 "optional": false, 2095 "loc": { 2096 "start": { 2097 "line": 1, 2098 "column": 1 2099 }, 2100 "end": { 2101 "line": 1, 2102 "column": 1 2103 } 2104 } 2105 }, 2106 "arguments": [ 2107 { 2108 "type": "UndefinedLiteral", 2109 "value": undefined, 2110 "loc": { 2111 "start": { 2112 "line": 1, 2113 "column": 1 2114 }, 2115 "end": { 2116 "line": 1, 2117 "column": 1 2118 } 2119 } 2120 } 2121 ], 2122 "optional": false, 2123 "typeParameters": { 2124 "type": "TSTypeParameterInstantiation", 2125 "params": [ 2126 { 2127 "type": "ETSTypeReference", 2128 "part": { 2129 "type": "ETSTypeReferencePart", 2130 "name": { 2131 "type": "Identifier", 2132 "name": "T", 2133 "decorators": [], 2134 "loc": { 2135 "start": { 2136 "line": 1, 2137 "column": 1 2138 }, 2139 "end": { 2140 "line": 1, 2141 "column": 1 2142 } 2143 } 2144 }, 2145 "loc": { 2146 "start": { 2147 "line": 1, 2148 "column": 1 2149 }, 2150 "end": { 2151 "line": 1, 2152 "column": 1 2153 } 2154 } 2155 }, 2156 "loc": { 2157 "start": { 2158 "line": 1, 2159 "column": 1 2160 }, 2161 "end": { 2162 "line": 1, 2163 "column": 1 2164 } 2165 } 2166 } 2167 ], 2168 "loc": { 2169 "start": { 2170 "line": 1, 2171 "column": 1 2172 }, 2173 "end": { 2174 "line": 1, 2175 "column": 1 2176 } 2177 } 2178 }, 2179 "loc": { 2180 "start": { 2181 "line": 25, 2182 "column": 5 2183 }, 2184 "end": { 2185 "line": 27, 2186 "column": 6 2187 } 2188 } 2189 }, 2190 "loc": { 2191 "start": { 2192 "line": 1, 2193 "column": 1 2194 }, 2195 "end": { 2196 "line": 1, 2197 "column": 1 2198 } 2199 } 2200 } 2201 ], 2202 "loc": { 2203 "start": { 2204 "line": 1, 2205 "column": 1 2206 }, 2207 "end": { 2208 "line": 1, 2209 "column": 1 2210 } 2211 } 2212 }, 2213 "loc": { 2214 "start": { 2215 "line": 756, 2216 "column": 1 2217 }, 2218 "end": { 2219 "line": 756, 2220 "column": 1 2221 } 2222 } 2223 }, 2224 "loc": { 2225 "start": { 2226 "line": 1, 2227 "column": 1 2228 }, 2229 "end": { 2230 "line": 1, 2231 "column": 1 2232 } 2233 } 2234 }, 2235 "overloads": [], 2236 "decorators": [], 2237 "loc": { 2238 "start": { 2239 "line": 25, 2240 "column": 5 2241 }, 2242 "end": { 2243 "line": 1, 2244 "column": 1 2245 } 2246 } 2247 } 2248 ], 2249 "decorators": [], 2250 "loc": { 2251 "start": { 2252 "line": 25, 2253 "column": 5 2254 }, 2255 "end": { 2256 "line": 27, 2257 "column": 6 2258 } 2259 } 2260 }, 2261 { 2262 "type": "MethodDefinition", 2263 "key": { 2264 "type": "Identifier", 2265 "name": "constructor", 2266 "decorators": [], 2267 "loc": { 2268 "start": { 2269 "line": 1, 2270 "column": 1 2271 }, 2272 "end": { 2273 "line": 1, 2274 "column": 1 2275 } 2276 } 2277 }, 2278 "kind": "constructor", 2279 "static": false, 2280 "optional": false, 2281 "computed": false, 2282 "value": { 2283 "type": "FunctionExpression", 2284 "function": { 2285 "type": "ScriptFunction", 2286 "id": { 2287 "type": "Identifier", 2288 "name": "constructor", 2289 "decorators": [], 2290 "loc": { 2291 "start": { 2292 "line": 1, 2293 "column": 1 2294 }, 2295 "end": { 2296 "line": 1, 2297 "column": 1 2298 } 2299 } 2300 }, 2301 "generator": false, 2302 "async": false, 2303 "expression": false, 2304 "params": [], 2305 "body": { 2306 "type": "BlockStatement", 2307 "statements": [], 2308 "loc": { 2309 "start": { 2310 "line": 1, 2311 "column": 1 2312 }, 2313 "end": { 2314 "line": 1, 2315 "column": 1 2316 } 2317 } 2318 }, 2319 "loc": { 2320 "start": { 2321 "line": 1, 2322 "column": 1 2323 }, 2324 "end": { 2325 "line": 1, 2326 "column": 1 2327 } 2328 } 2329 }, 2330 "loc": { 2331 "start": { 2332 "line": 1, 2333 "column": 1 2334 }, 2335 "end": { 2336 "line": 1, 2337 "column": 1 2338 } 2339 } 2340 }, 2341 "overloads": [], 2342 "decorators": [], 2343 "loc": { 2344 "start": { 2345 "line": 28, 2346 "column": 2 2347 }, 2348 "end": { 2349 "line": 28, 2350 "column": 2 2351 } 2352 } 2353 } 2354 ], 2355 "loc": { 2356 "start": { 2357 "line": 24, 2358 "column": 31 2359 }, 2360 "end": { 2361 "line": 28, 2362 "column": 2 2363 } 2364 } 2365 }, 2366 "loc": { 2367 "start": { 2368 "line": 24, 2369 "column": 1 2370 }, 2371 "end": { 2372 "line": 28, 2373 "column": 2 2374 } 2375 } 2376 }, 2377 { 2378 "type": "ClassDeclaration", 2379 "definition": { 2380 "id": { 2381 "type": "Identifier", 2382 "name": "ETSGLOBAL", 2383 "decorators": [], 2384 "loc": { 2385 "start": { 2386 "line": 1, 2387 "column": 1 2388 }, 2389 "end": { 2390 "line": 1, 2391 "column": 1 2392 } 2393 } 2394 }, 2395 "superClass": null, 2396 "implements": [], 2397 "body": [ 2398 { 2399 "type": "MethodDefinition", 2400 "key": { 2401 "type": "Identifier", 2402 "name": "_$init$_", 2403 "decorators": [], 2404 "loc": { 2405 "start": { 2406 "line": 1, 2407 "column": 1 2408 }, 2409 "end": { 2410 "line": 1, 2411 "column": 1 2412 } 2413 } 2414 }, 2415 "kind": "method", 2416 "accessibility": "public", 2417 "static": true, 2418 "optional": false, 2419 "computed": false, 2420 "value": { 2421 "type": "FunctionExpression", 2422 "function": { 2423 "type": "ScriptFunction", 2424 "id": { 2425 "type": "Identifier", 2426 "name": "_$init$_", 2427 "decorators": [], 2428 "loc": { 2429 "start": { 2430 "line": 1, 2431 "column": 1 2432 }, 2433 "end": { 2434 "line": 1, 2435 "column": 1 2436 } 2437 } 2438 }, 2439 "generator": false, 2440 "async": false, 2441 "expression": false, 2442 "params": [], 2443 "body": { 2444 "type": "BlockStatement", 2445 "statements": [], 2446 "loc": { 2447 "start": { 2448 "line": 1, 2449 "column": 1 2450 }, 2451 "end": { 2452 "line": 1, 2453 "column": 1 2454 } 2455 } 2456 }, 2457 "loc": { 2458 "start": { 2459 "line": 1, 2460 "column": 1 2461 }, 2462 "end": { 2463 "line": 1, 2464 "column": 1 2465 } 2466 } 2467 }, 2468 "loc": { 2469 "start": { 2470 "line": 1, 2471 "column": 1 2472 }, 2473 "end": { 2474 "line": 1, 2475 "column": 1 2476 } 2477 } 2478 }, 2479 "overloads": [], 2480 "decorators": [], 2481 "loc": { 2482 "start": { 2483 "line": 1, 2484 "column": 1 2485 }, 2486 "end": { 2487 "line": 1, 2488 "column": 1 2489 } 2490 } 2491 } 2492 ], 2493 "loc": { 2494 "start": { 2495 "line": 1, 2496 "column": 1 2497 }, 2498 "end": { 2499 "line": 1, 2500 "column": 1 2501 } 2502 } 2503 }, 2504 "loc": { 2505 "start": { 2506 "line": 1, 2507 "column": 1 2508 }, 2509 "end": { 2510 "line": 1, 2511 "column": 1 2512 } 2513 } 2514 } 2515 ], 2516 "loc": { 2517 "start": { 2518 "line": 1, 2519 "column": 1 2520 }, 2521 "end": { 2522 "line": 29, 2523 "column": 1 2524 } 2525 } 2526} 2527