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