1{
2  "type": "Program",
3  "statements": [
4    {
5      "type": "ClassDeclaration",
6      "definition": {
7        "id": {
8          "type": "Identifier",
9          "name": "BaseOverride",
10          "loc": {
11            "start": {
12              "line": 17,
13              "column": 7
14            },
15            "end": {
16              "line": 17,
17              "column": 19
18            }
19          }
20        },
21        "superClass": null,
22        "implements": [],
23        "constructor": {
24          "type": "MethodDefinition",
25          "key": {
26            "type": "Identifier",
27            "name": "constructor",
28            "loc": {
29              "start": {
30                "line": 1,
31                "column": 1
32              },
33              "end": {
34                "line": 1,
35                "column": 1
36              }
37            }
38          },
39          "kind": "constructor",
40          "static": false,
41          "optional": false,
42          "computed": false,
43          "value": {
44            "type": "FunctionExpression",
45            "function": {
46              "type": "ScriptFunction",
47              "id": null,
48              "generator": false,
49              "async": false,
50              "expression": false,
51              "params": [],
52              "body": {
53                "type": "BlockStatement",
54                "statements": [],
55                "loc": {
56                  "start": {
57                    "line": 1,
58                    "column": 1
59                  },
60                  "end": {
61                    "line": 1,
62                    "column": 1
63                  }
64                }
65              },
66              "loc": {
67                "start": {
68                  "line": 1,
69                  "column": 1
70                },
71                "end": {
72                  "line": 1,
73                  "column": 1
74                }
75              }
76            },
77            "loc": {
78              "start": {
79                "line": 1,
80                "column": 1
81              },
82              "end": {
83                "line": 1,
84                "column": 1
85              }
86            }
87          },
88          "overloads": [],
89          "decorators": [],
90          "annotations": [],
91          "loc": {
92            "start": {
93              "line": 17,
94              "column": 1
95            },
96            "end": {
97              "line": 19,
98              "column": 2
99            }
100          }
101        },
102        "body": [
103          {
104            "type": "ClassProperty",
105            "key": {
106              "type": "Identifier",
107              "name": "foo",
108              "loc": {
109                "start": {
110                  "line": 18,
111                  "column": 5
112                },
113                "end": {
114                  "line": 18,
115                  "column": 8
116                }
117              }
118            },
119            "value": {
120              "type": "NumberLiteral",
121              "value": 1,
122              "loc": {
123                "start": {
124                  "line": 18,
125                  "column": 11
126                },
127                "end": {
128                  "line": 18,
129                  "column": 12
130                }
131              }
132            },
133            "static": false,
134            "readonly": false,
135            "declare": false,
136            "optional": false,
137            "computed": false,
138            "decorators": [],
139            "loc": {
140              "start": {
141                "line": 18,
142                "column": 5
143              },
144              "end": {
145                "line": 18,
146                "column": 12
147              }
148            }
149          }
150        ],
151        "indexSignatures": [],
152        "loc": {
153          "start": {
154            "line": 17,
155            "column": 20
156          },
157          "end": {
158            "line": 19,
159            "column": 2
160          }
161        }
162      },
163      "decorators": [],
164      "isAnnotationDeclaration": false,
165      "loc": {
166        "start": {
167          "line": 17,
168          "column": 1
169        },
170        "end": {
171          "line": 19,
172          "column": 2
173        }
174      }
175    },
176    {
177      "type": "ClassDeclaration",
178      "definition": {
179        "id": {
180          "type": "Identifier",
181          "name": "Sub",
182          "loc": {
183            "start": {
184              "line": 21,
185              "column": 7
186            },
187            "end": {
188              "line": 21,
189              "column": 10
190            }
191          }
192        },
193        "superClass": {
194          "type": "Identifier",
195          "name": "BaseOverride",
196          "loc": {
197            "start": {
198              "line": 21,
199              "column": 19
200            },
201            "end": {
202              "line": 21,
203              "column": 31
204            }
205          }
206        },
207        "implements": [],
208        "constructor": {
209          "type": "MethodDefinition",
210          "key": {
211            "type": "Identifier",
212            "name": "constructor",
213            "loc": {
214              "start": {
215                "line": 22,
216                "column": 5
217              },
218              "end": {
219                "line": 22,
220                "column": 16
221              }
222            }
223          },
224          "kind": "constructor",
225          "static": false,
226          "optional": false,
227          "computed": false,
228          "value": {
229            "type": "FunctionExpression",
230            "function": {
231              "type": "ScriptFunction",
232              "id": null,
233              "generator": false,
234              "async": false,
235              "expression": false,
236              "params": [
237                {
238                  "type": "TSParameterProperty",
239                  "accessibility": "undefined",
240                  "readonly": false,
241                  "override": true,
242                  "static": false,
243                  "export": false,
244                  "parameter": {
245                    "type": "Identifier",
246                    "name": "foo",
247                    "typeAnnotation": {
248                      "type": "TSNumberKeyword",
249                      "loc": {
250                        "start": {
251                          "line": 22,
252                          "column": 32
253                        },
254                        "end": {
255                          "line": 22,
256                          "column": 38
257                        }
258                      }
259                    },
260                    "loc": {
261                      "start": {
262                        "line": 22,
263                        "column": 27
264                      },
265                      "end": {
266                        "line": 22,
267                        "column": 30
268                      }
269                    }
270                  },
271                  "loc": {
272                    "start": {
273                      "line": 22,
274                      "column": 18
275                    },
276                    "end": {
277                      "line": 22,
278                      "column": 30
279                    }
280                  }
281                }
282              ],
283              "body": {
284                "type": "BlockStatement",
285                "statements": [
286                  {
287                    "type": "ExpressionStatement",
288                    "expression": {
289                      "type": "CallExpression",
290                      "callee": {
291                        "type": "Super",
292                        "loc": {
293                          "start": {
294                            "line": 23,
295                            "column": 9
296                          },
297                          "end": {
298                            "line": 23,
299                            "column": 14
300                          }
301                        }
302                      },
303                      "arguments": [],
304                      "optional": false,
305                      "loc": {
306                        "start": {
307                          "line": 23,
308                          "column": 9
309                        },
310                        "end": {
311                          "line": 23,
312                          "column": 16
313                        }
314                      }
315                    },
316                    "loc": {
317                      "start": {
318                        "line": 23,
319                        "column": 9
320                      },
321                      "end": {
322                        "line": 23,
323                        "column": 17
324                      }
325                    }
326                  }
327                ],
328                "loc": {
329                  "start": {
330                    "line": 22,
331                    "column": 40
332                  },
333                  "end": {
334                    "line": 24,
335                    "column": 6
336                  }
337                }
338              },
339              "loc": {
340                "start": {
341                  "line": 22,
342                  "column": 17
343                },
344                "end": {
345                  "line": 24,
346                  "column": 6
347                }
348              }
349            },
350            "loc": {
351              "start": {
352                "line": 22,
353                "column": 17
354              },
355              "end": {
356                "line": 24,
357                "column": 6
358              }
359            }
360          },
361          "overloads": [],
362          "decorators": [],
363          "annotations": [],
364          "loc": {
365            "start": {
366              "line": 22,
367              "column": 5
368            },
369            "end": {
370              "line": 24,
371              "column": 6
372            }
373          }
374        },
375        "body": [],
376        "indexSignatures": [],
377        "loc": {
378          "start": {
379            "line": 21,
380            "column": 32
381          },
382          "end": {
383            "line": 25,
384            "column": 2
385          }
386        }
387      },
388      "decorators": [],
389      "isAnnotationDeclaration": false,
390      "loc": {
391        "start": {
392          "line": 21,
393          "column": 1
394        },
395        "end": {
396          "line": 25,
397          "column": 2
398        }
399      }
400    }
401  ],
402  "loc": {
403    "start": {
404      "line": 1,
405      "column": 1
406    },
407    "end": {
408      "line": 25,
409      "column": 2
410    }
411  }
412}
413