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