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