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