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