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