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