• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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