1{
2  "type": "Program",
3  "statements": [
4    {
5      "type": "ClassDeclaration",
6      "definition": {
7        "id": {
8          "type": "Identifier",
9          "name": "A",
10          "decorators": [],
11          "loc": {
12            "start": {
13              "line": 17,
14              "column": 7
15            },
16            "end": {
17              "line": 17,
18              "column": 8
19            }
20          }
21        },
22        "superClass": null,
23        "implements": [],
24        "constructor": {
25          "type": "MethodDefinition",
26          "key": {
27            "type": "Identifier",
28            "name": "constructor",
29            "decorators": [],
30            "loc": {
31              "start": {
32                "line": 1,
33                "column": 1
34              },
35              "end": {
36                "line": 1,
37                "column": 1
38              }
39            }
40          },
41          "kind": "constructor",
42          "static": false,
43          "optional": false,
44          "computed": false,
45          "value": {
46            "type": "FunctionExpression",
47            "function": {
48              "type": "ScriptFunction",
49              "id": null,
50              "generator": false,
51              "async": false,
52              "expression": false,
53              "params": [],
54              "body": {
55                "type": "BlockStatement",
56                "statements": [],
57                "loc": {
58                  "start": {
59                    "line": 1,
60                    "column": 1
61                  },
62                  "end": {
63                    "line": 1,
64                    "column": 1
65                  }
66                }
67              },
68              "loc": {
69                "start": {
70                  "line": 1,
71                  "column": 1
72                },
73                "end": {
74                  "line": 1,
75                  "column": 1
76                }
77              }
78            },
79            "loc": {
80              "start": {
81                "line": 1,
82                "column": 1
83              },
84              "end": {
85                "line": 1,
86                "column": 1
87              }
88            }
89          },
90          "overloads": [],
91          "decorators": [],
92          "loc": {
93            "start": {
94              "line": 19,
95              "column": 2
96            },
97            "end": {
98              "line": 19,
99              "column": 2
100            }
101          }
102        },
103        "body": [
104          {
105            "type": "MethodDefinition",
106            "key": {
107              "type": "Identifier",
108              "name": "foo",
109              "decorators": [],
110              "loc": {
111                "start": {
112                  "line": 18,
113                  "column": 5
114                },
115                "end": {
116                  "line": 18,
117                  "column": 8
118                }
119              }
120            },
121            "kind": "method",
122            "static": false,
123            "optional": false,
124            "computed": false,
125            "value": {
126              "type": "FunctionExpression",
127              "function": {
128                "type": "ScriptFunction",
129                "id": null,
130                "generator": false,
131                "async": false,
132                "expression": false,
133                "params": [
134                  {
135                    "type": "Identifier",
136                    "name": "a",
137                    "typeAnnotation": {
138                      "type": "NamedType",
139                      "name": {
140                        "type": "Identifier",
141                        "name": "i32",
142                        "decorators": [],
143                        "loc": {
144                          "start": {
145                            "line": 18,
146                            "column": 12
147                          },
148                          "end": {
149                            "line": 18,
150                            "column": 15
151                          }
152                        }
153                      },
154                      "isNullable": false,
155                      "loc": {
156                        "start": {
157                          "line": 18,
158                          "column": 12
159                        },
160                        "end": {
161                          "line": 18,
162                          "column": 15
163                        }
164                      }
165                    },
166                    "decorators": [],
167                    "loc": {
168                      "start": {
169                        "line": 18,
170                        "column": 9
171                      },
172                      "end": {
173                        "line": 18,
174                        "column": 10
175                      }
176                    }
177                  }
178                ],
179                "returnType": {
180                  "type": "NamedType",
181                  "name": {
182                    "type": "Identifier",
183                    "name": "i32",
184                    "decorators": [],
185                    "loc": {
186                      "start": {
187                        "line": 18,
188                        "column": 18
189                      },
190                      "end": {
191                        "line": 18,
192                        "column": 21
193                      }
194                    }
195                  },
196                  "isNullable": false,
197                  "loc": {
198                    "start": {
199                      "line": 18,
200                      "column": 18
201                    },
202                    "end": {
203                      "line": 18,
204                      "column": 21
205                    }
206                  }
207                },
208                "body": {
209                  "type": "BlockStatement",
210                  "statements": [],
211                  "loc": {
212                    "start": {
213                      "line": 18,
214                      "column": 22
215                    },
216                    "end": {
217                      "line": 18,
218                      "column": 25
219                    }
220                  }
221                },
222                "loc": {
223                  "start": {
224                    "line": 18,
225                    "column": 8
226                  },
227                  "end": {
228                    "line": 18,
229                    "column": 25
230                  }
231                }
232              },
233              "loc": {
234                "start": {
235                  "line": 18,
236                  "column": 8
237                },
238                "end": {
239                  "line": 18,
240                  "column": 25
241                }
242              }
243            },
244            "overloads": [],
245            "decorators": [],
246            "loc": {
247              "start": {
248                "line": 18,
249                "column": 5
250              },
251              "end": {
252                "line": 18,
253                "column": 25
254              }
255            }
256          }
257        ],
258        "loc": {
259          "start": {
260            "line": 17,
261            "column": 9
262          },
263          "end": {
264            "line": 19,
265            "column": 2
266          }
267        }
268      },
269      "loc": {
270        "start": {
271          "line": 17,
272          "column": 1
273        },
274        "end": {
275          "line": 19,
276          "column": 2
277        }
278      }
279    }
280  ],
281  "loc": {
282    "start": {
283      "line": 1,
284      "column": 1
285    },
286    "end": {
287      "line": 20,
288      "column": 1
289    }
290  }
291}
292