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