1{
2  "type": "Program",
3  "statements": [
4    {
5      "type": "FunctionDeclaration",
6      "function": {
7        "type": "ScriptFunction",
8        "id": {
9          "type": "Identifier",
10          "name": "func1",
11          "decorators": [],
12          "loc": {
13            "start": {
14              "line": 17,
15              "column": 10
16            },
17            "end": {
18              "line": 17,
19              "column": 15
20            }
21          }
22        },
23        "generator": false,
24        "async": false,
25        "expression": false,
26        "params": [
27          {
28            "type": "Identifier",
29            "name": "a",
30            "typeAnnotation": {
31              "type": "TSNumberKeyword",
32              "loc": {
33                "start": {
34                  "line": 17,
35                  "column": 19
36                },
37                "end": {
38                  "line": 17,
39                  "column": 25
40                }
41              }
42            },
43            "decorators": [],
44            "loc": {
45              "start": {
46                "line": 17,
47                "column": 16
48              },
49              "end": {
50                "line": 17,
51                "column": 17
52              }
53            }
54          }
55        ],
56        "returnType": {
57          "type": "TSVoidKeyword",
58          "loc": {
59            "start": {
60              "line": 17,
61              "column": 28
62            },
63            "end": {
64              "line": 17,
65              "column": 32
66            }
67          }
68        },
69        "body": {
70          "type": "BlockStatement",
71          "statements": [],
72          "loc": {
73            "start": {
74              "line": 17,
75              "column": 33
76            },
77            "end": {
78              "line": 19,
79              "column": 2
80            }
81          }
82        },
83        "loc": {
84          "start": {
85            "line": 17,
86            "column": 1
87          },
88          "end": {
89            "line": 19,
90            "column": 2
91          }
92        }
93      },
94      "loc": {
95        "start": {
96          "line": 17,
97          "column": 1
98        },
99        "end": {
100          "line": 19,
101          "column": 2
102        }
103      }
104    },
105    {
106      "type": "ExpressionStatement",
107      "expression": {
108        "type": "CallExpression",
109        "callee": {
110          "type": "Identifier",
111          "name": "func1",
112          "decorators": [],
113          "loc": {
114            "start": {
115              "line": 20,
116              "column": 1
117            },
118            "end": {
119              "line": 20,
120              "column": 6
121            }
122          }
123        },
124        "arguments": [
125          {
126            "type": "NumberLiteral",
127            "value": 5,
128            "loc": {
129              "start": {
130                "line": 20,
131                "column": 7
132              },
133              "end": {
134                "line": 20,
135                "column": 8
136              }
137            }
138          }
139        ],
140        "optional": false,
141        "loc": {
142          "start": {
143            "line": 20,
144            "column": 1
145          },
146          "end": {
147            "line": 20,
148            "column": 9
149          }
150        }
151      },
152      "loc": {
153        "start": {
154          "line": 20,
155          "column": 1
156        },
157        "end": {
158          "line": 20,
159          "column": 10
160        }
161      }
162    },
163    {
164      "type": "FunctionDeclaration",
165      "function": {
166        "type": "ScriptFunction",
167        "id": {
168          "type": "Identifier",
169          "name": "func2",
170          "decorators": [],
171          "loc": {
172            "start": {
173              "line": 22,
174              "column": 10
175            },
176            "end": {
177              "line": 22,
178              "column": 15
179            }
180          }
181        },
182        "generator": false,
183        "async": false,
184        "expression": false,
185        "params": [
186          {
187            "type": "Identifier",
188            "name": "a",
189            "typeAnnotation": {
190              "type": "TSNumberKeyword",
191              "loc": {
192                "start": {
193                  "line": 22,
194                  "column": 19
195                },
196                "end": {
197                  "line": 22,
198                  "column": 25
199                }
200              }
201            },
202            "decorators": [],
203            "loc": {
204              "start": {
205                "line": 22,
206                "column": 16
207              },
208              "end": {
209                "line": 22,
210                "column": 17
211              }
212            }
213          }
214        ],
215        "returnType": {
216          "type": "TSNumberKeyword",
217          "loc": {
218            "start": {
219              "line": 22,
220              "column": 28
221            },
222            "end": {
223              "line": 22,
224              "column": 34
225            }
226          }
227        },
228        "body": {
229          "type": "BlockStatement",
230          "statements": [
231            {
232              "type": "ReturnStatement",
233              "argument": {
234                "type": "Identifier",
235                "name": "a",
236                "decorators": [],
237                "loc": {
238                  "start": {
239                    "line": 23,
240                    "column": 12
241                  },
242                  "end": {
243                    "line": 23,
244                    "column": 13
245                  }
246                }
247              },
248              "loc": {
249                "start": {
250                  "line": 23,
251                  "column": 5
252                },
253                "end": {
254                  "line": 23,
255                  "column": 14
256                }
257              }
258            }
259          ],
260          "loc": {
261            "start": {
262              "line": 22,
263              "column": 35
264            },
265            "end": {
266              "line": 24,
267              "column": 2
268            }
269          }
270        },
271        "loc": {
272          "start": {
273            "line": 22,
274            "column": 1
275          },
276          "end": {
277            "line": 24,
278            "column": 2
279          }
280        }
281      },
282      "loc": {
283        "start": {
284          "line": 22,
285          "column": 1
286        },
287        "end": {
288          "line": 24,
289          "column": 2
290        }
291      }
292    },
293    {
294      "type": "TSTypeAliasDeclaration",
295      "id": {
296        "type": "Identifier",
297        "name": "callAbleObj1",
298        "decorators": [],
299        "loc": {
300          "start": {
301            "line": 26,
302            "column": 6
303          },
304          "end": {
305            "line": 26,
306            "column": 18
307          }
308        }
309      },
310      "typeAnnotation": {
311        "type": "TSTypeLiteral",
312        "members": [
313          {
314            "type": "TSCallSignatureDeclaration",
315            "params": [
316              {
317                "type": "Identifier",
318                "name": "a",
319                "typeAnnotation": {
320                  "type": "TSNumberKeyword",
321                  "loc": {
322                    "start": {
323                      "line": 27,
324                      "column": 9
325                    },
326                    "end": {
327                      "line": 27,
328                      "column": 15
329                    }
330                  }
331                },
332                "decorators": [],
333                "loc": {
334                  "start": {
335                    "line": 27,
336                    "column": 6
337                  },
338                  "end": {
339                    "line": 27,
340                    "column": 7
341                  }
342                }
343              }
344            ],
345            "returnType": {
346              "type": "TSNumberKeyword",
347              "loc": {
348                "start": {
349                  "line": 27,
350                  "column": 18
351                },
352                "end": {
353                  "line": 27,
354                  "column": 24
355                }
356              }
357            },
358            "loc": {
359              "start": {
360                "line": 27,
361                "column": 5
362              },
363              "end": {
364                "line": 28,
365                "column": 2
366              }
367            }
368          }
369        ],
370        "loc": {
371          "start": {
372            "line": 26,
373            "column": 21
374          },
375          "end": {
376            "line": 28,
377            "column": 2
378          }
379        }
380      },
381      "loc": {
382        "start": {
383          "line": 26,
384          "column": 1
385        },
386        "end": {
387          "line": 30,
388          "column": 9
389        }
390      }
391    },
392    {
393      "type": "FunctionDeclaration",
394      "function": {
395        "type": "ScriptFunction",
396        "id": {
397          "type": "Identifier",
398          "name": "func3",
399          "decorators": [],
400          "loc": {
401            "start": {
402              "line": 30,
403              "column": 10
404            },
405            "end": {
406              "line": 30,
407              "column": 15
408            }
409          }
410        },
411        "generator": false,
412        "async": false,
413        "expression": false,
414        "params": [
415          {
416            "type": "Identifier",
417            "name": "fn",
418            "typeAnnotation": {
419              "type": "TSTypeReference",
420              "typeName": {
421                "type": "Identifier",
422                "name": "callAbleObj1",
423                "decorators": [],
424                "loc": {
425                  "start": {
426                    "line": 30,
427                    "column": 20
428                  },
429                  "end": {
430                    "line": 30,
431                    "column": 32
432                  }
433                }
434              },
435              "loc": {
436                "start": {
437                  "line": 30,
438                  "column": 20
439                },
440                "end": {
441                  "line": 30,
442                  "column": 32
443                }
444              }
445            },
446            "decorators": [],
447            "loc": {
448              "start": {
449                "line": 30,
450                "column": 16
451              },
452              "end": {
453                "line": 30,
454                "column": 18
455              }
456            }
457          }
458        ],
459        "returnType": {
460          "type": "TSNumberKeyword",
461          "loc": {
462            "start": {
463              "line": 30,
464              "column": 35
465            },
466            "end": {
467              "line": 30,
468              "column": 41
469            }
470          }
471        },
472        "body": {
473          "type": "BlockStatement",
474          "statements": [
475            {
476              "type": "ReturnStatement",
477              "argument": {
478                "type": "CallExpression",
479                "callee": {
480                  "type": "Identifier",
481                  "name": "fn",
482                  "decorators": [],
483                  "loc": {
484                    "start": {
485                      "line": 31,
486                      "column": 12
487                    },
488                    "end": {
489                      "line": 31,
490                      "column": 14
491                    }
492                  }
493                },
494                "arguments": [
495                  {
496                    "type": "NumberLiteral",
497                    "value": 5,
498                    "loc": {
499                      "start": {
500                        "line": 31,
501                        "column": 15
502                      },
503                      "end": {
504                        "line": 31,
505                        "column": 16
506                      }
507                    }
508                  }
509                ],
510                "optional": false,
511                "loc": {
512                  "start": {
513                    "line": 31,
514                    "column": 12
515                  },
516                  "end": {
517                    "line": 31,
518                    "column": 17
519                  }
520                }
521              },
522              "loc": {
523                "start": {
524                  "line": 31,
525                  "column": 5
526                },
527                "end": {
528                  "line": 31,
529                  "column": 18
530                }
531              }
532            }
533          ],
534          "loc": {
535            "start": {
536              "line": 30,
537              "column": 42
538            },
539            "end": {
540              "line": 32,
541              "column": 2
542            }
543          }
544        },
545        "loc": {
546          "start": {
547            "line": 30,
548            "column": 1
549          },
550          "end": {
551            "line": 32,
552            "column": 2
553          }
554        }
555      },
556      "loc": {
557        "start": {
558          "line": 30,
559          "column": 1
560        },
561        "end": {
562          "line": 32,
563          "column": 2
564        }
565      }
566    },
567    {
568      "type": "VariableDeclaration",
569      "declarations": [
570        {
571          "type": "VariableDeclarator",
572          "id": {
573            "type": "Identifier",
574            "name": "obj1",
575            "typeAnnotation": {
576              "type": "TSTypeReference",
577              "typeName": {
578                "type": "Identifier",
579                "name": "callAbleObj1",
580                "decorators": [],
581                "loc": {
582                  "start": {
583                    "line": 34,
584                    "column": 11
585                  },
586                  "end": {
587                    "line": 34,
588                    "column": 23
589                  }
590                }
591              },
592              "loc": {
593                "start": {
594                  "line": 34,
595                  "column": 11
596                },
597                "end": {
598                  "line": 34,
599                  "column": 23
600                }
601              }
602            },
603            "decorators": [],
604            "loc": {
605              "start": {
606                "line": 34,
607                "column": 5
608              },
609              "end": {
610                "line": 34,
611                "column": 9
612              }
613            }
614          },
615          "init": null,
616          "loc": {
617            "start": {
618              "line": 34,
619              "column": 5
620            },
621            "end": {
622              "line": 34,
623              "column": 9
624            }
625          }
626        }
627      ],
628      "kind": "var",
629      "loc": {
630        "start": {
631          "line": 34,
632          "column": 1
633        },
634        "end": {
635          "line": 34,
636          "column": 24
637        }
638      }
639    },
640    {
641      "type": "ExpressionStatement",
642      "expression": {
643        "type": "CallExpression",
644        "callee": {
645          "type": "Identifier",
646          "name": "func1",
647          "decorators": [],
648          "loc": {
649            "start": {
650              "line": 35,
651              "column": 1
652            },
653            "end": {
654              "line": 35,
655              "column": 6
656            }
657          }
658        },
659        "arguments": [
660          {
661            "type": "CallExpression",
662            "callee": {
663              "type": "Identifier",
664              "name": "func2",
665              "decorators": [],
666              "loc": {
667                "start": {
668                  "line": 35,
669                  "column": 7
670                },
671                "end": {
672                  "line": 35,
673                  "column": 12
674                }
675              }
676            },
677            "arguments": [
678              {
679                "type": "CallExpression",
680                "callee": {
681                  "type": "Identifier",
682                  "name": "func3",
683                  "decorators": [],
684                  "loc": {
685                    "start": {
686                      "line": 35,
687                      "column": 13
688                    },
689                    "end": {
690                      "line": 35,
691                      "column": 18
692                    }
693                  }
694                },
695                "arguments": [
696                  {
697                    "type": "Identifier",
698                    "name": "obj1",
699                    "decorators": [],
700                    "loc": {
701                      "start": {
702                        "line": 35,
703                        "column": 19
704                      },
705                      "end": {
706                        "line": 35,
707                        "column": 23
708                      }
709                    }
710                  }
711                ],
712                "optional": false,
713                "loc": {
714                  "start": {
715                    "line": 35,
716                    "column": 13
717                  },
718                  "end": {
719                    "line": 35,
720                    "column": 24
721                  }
722                }
723              }
724            ],
725            "optional": false,
726            "loc": {
727              "start": {
728                "line": 35,
729                "column": 7
730              },
731              "end": {
732                "line": 35,
733                "column": 25
734              }
735            }
736          }
737        ],
738        "optional": false,
739        "loc": {
740          "start": {
741            "line": 35,
742            "column": 1
743          },
744          "end": {
745            "line": 35,
746            "column": 26
747          }
748        }
749      },
750      "loc": {
751        "start": {
752          "line": 35,
753          "column": 1
754        },
755        "end": {
756          "line": 35,
757          "column": 27
758        }
759      }
760    },
761    {
762      "type": "FunctionDeclaration",
763      "function": {
764        "type": "ScriptFunction",
765        "id": {
766          "type": "Identifier",
767          "name": "func4",
768          "decorators": [],
769          "loc": {
770            "start": {
771              "line": 37,
772              "column": 10
773            },
774            "end": {
775              "line": 37,
776              "column": 15
777            }
778          }
779        },
780        "generator": false,
781        "async": false,
782        "expression": false,
783        "params": [
784          {
785            "type": "Identifier",
786            "name": "a",
787            "typeAnnotation": {
788              "type": "TSNumberKeyword",
789              "loc": {
790                "start": {
791                  "line": 37,
792                  "column": 19
793                },
794                "end": {
795                  "line": 37,
796                  "column": 25
797                }
798              }
799            },
800            "decorators": [],
801            "loc": {
802              "start": {
803                "line": 37,
804                "column": 16
805              },
806              "end": {
807                "line": 37,
808                "column": 17
809              }
810            }
811          }
812        ],
813        "returnType": {
814          "type": "TSNumberKeyword",
815          "loc": {
816            "start": {
817              "line": 37,
818              "column": 28
819            },
820            "end": {
821              "line": 37,
822              "column": 34
823            }
824          }
825        },
826        "body": {
827          "type": "BlockStatement",
828          "statements": [
829            {
830              "type": "ExpressionStatement",
831              "expression": {
832                "type": "UpdateExpression",
833                "operator": "++",
834                "prefix": false,
835                "argument": {
836                  "type": "Identifier",
837                  "name": "a",
838                  "decorators": [],
839                  "loc": {
840                    "start": {
841                      "line": 38,
842                      "column": 5
843                    },
844                    "end": {
845                      "line": 38,
846                      "column": 6
847                    }
848                  }
849                },
850                "loc": {
851                  "start": {
852                    "line": 38,
853                    "column": 5
854                  },
855                  "end": {
856                    "line": 38,
857                    "column": 8
858                  }
859                }
860              },
861              "loc": {
862                "start": {
863                  "line": 38,
864                  "column": 5
865                },
866                "end": {
867                  "line": 38,
868                  "column": 9
869                }
870              }
871            },
872            {
873              "type": "ReturnStatement",
874              "argument": {
875                "type": "ConditionalExpression",
876                "test": {
877                  "type": "BinaryExpression",
878                  "operator": "<",
879                  "left": {
880                    "type": "Identifier",
881                    "name": "a",
882                    "decorators": [],
883                    "loc": {
884                      "start": {
885                        "line": 39,
886                        "column": 12
887                      },
888                      "end": {
889                        "line": 39,
890                        "column": 13
891                      }
892                    }
893                  },
894                  "right": {
895                    "type": "NumberLiteral",
896                    "value": 0,
897                    "loc": {
898                      "start": {
899                        "line": 39,
900                        "column": 16
901                      },
902                      "end": {
903                        "line": 39,
904                        "column": 17
905                      }
906                    }
907                  },
908                  "loc": {
909                    "start": {
910                      "line": 39,
911                      "column": 12
912                    },
913                    "end": {
914                      "line": 39,
915                      "column": 17
916                    }
917                  }
918                },
919                "consequent": {
920                  "type": "CallExpression",
921                  "callee": {
922                    "type": "Identifier",
923                    "name": "func4",
924                    "decorators": [],
925                    "loc": {
926                      "start": {
927                        "line": 39,
928                        "column": 20
929                      },
930                      "end": {
931                        "line": 39,
932                        "column": 25
933                      }
934                    }
935                  },
936                  "arguments": [
937                    {
938                      "type": "Identifier",
939                      "name": "a",
940                      "decorators": [],
941                      "loc": {
942                        "start": {
943                          "line": 39,
944                          "column": 26
945                        },
946                        "end": {
947                          "line": 39,
948                          "column": 27
949                        }
950                      }
951                    }
952                  ],
953                  "optional": false,
954                  "loc": {
955                    "start": {
956                      "line": 39,
957                      "column": 20
958                    },
959                    "end": {
960                      "line": 39,
961                      "column": 28
962                    }
963                  }
964                },
965                "alternate": {
966                  "type": "Identifier",
967                  "name": "a",
968                  "decorators": [],
969                  "loc": {
970                    "start": {
971                      "line": 39,
972                      "column": 31
973                    },
974                    "end": {
975                      "line": 39,
976                      "column": 32
977                    }
978                  }
979                },
980                "loc": {
981                  "start": {
982                    "line": 39,
983                    "column": 12
984                  },
985                  "end": {
986                    "line": 39,
987                    "column": 32
988                  }
989                }
990              },
991              "loc": {
992                "start": {
993                  "line": 39,
994                  "column": 5
995                },
996                "end": {
997                  "line": 39,
998                  "column": 33
999                }
1000              }
1001            }
1002          ],
1003          "loc": {
1004            "start": {
1005              "line": 37,
1006              "column": 35
1007            },
1008            "end": {
1009              "line": 40,
1010              "column": 2
1011            }
1012          }
1013        },
1014        "loc": {
1015          "start": {
1016            "line": 37,
1017            "column": 1
1018          },
1019          "end": {
1020            "line": 40,
1021            "column": 2
1022          }
1023        }
1024      },
1025      "loc": {
1026        "start": {
1027          "line": 37,
1028          "column": 1
1029        },
1030        "end": {
1031          "line": 40,
1032          "column": 2
1033        }
1034      }
1035    },
1036    {
1037      "type": "ExpressionStatement",
1038      "expression": {
1039        "type": "CallExpression",
1040        "callee": {
1041          "type": "Identifier",
1042          "name": "func4",
1043          "decorators": [],
1044          "loc": {
1045            "start": {
1046              "line": 42,
1047              "column": 1
1048            },
1049            "end": {
1050              "line": 42,
1051              "column": 6
1052            }
1053          }
1054        },
1055        "arguments": [
1056          {
1057            "type": "UnaryExpression",
1058            "operator": "-",
1059            "prefix": true,
1060            "argument": {
1061              "type": "NumberLiteral",
1062              "value": 5,
1063              "loc": {
1064                "start": {
1065                  "line": 42,
1066                  "column": 8
1067                },
1068                "end": {
1069                  "line": 42,
1070                  "column": 9
1071                }
1072              }
1073            },
1074            "loc": {
1075              "start": {
1076                "line": 42,
1077                "column": 7
1078              },
1079              "end": {
1080                "line": 42,
1081                "column": 9
1082              }
1083            }
1084          }
1085        ],
1086        "optional": false,
1087        "loc": {
1088          "start": {
1089            "line": 42,
1090            "column": 1
1091          },
1092          "end": {
1093            "line": 42,
1094            "column": 10
1095          }
1096        }
1097      },
1098      "loc": {
1099        "start": {
1100          "line": 42,
1101          "column": 1
1102        },
1103        "end": {
1104          "line": 42,
1105          "column": 11
1106        }
1107      }
1108    },
1109    {
1110      "type": "ExpressionStatement",
1111      "expression": {
1112        "type": "CallExpression",
1113        "callee": {
1114          "type": "Identifier",
1115          "name": "func4",
1116          "decorators": [],
1117          "loc": {
1118            "start": {
1119              "line": 43,
1120              "column": 1
1121            },
1122            "end": {
1123              "line": 43,
1124              "column": 6
1125            }
1126          }
1127        },
1128        "arguments": [
1129          {
1130            "type": "NumberLiteral",
1131            "value": 0,
1132            "loc": {
1133              "start": {
1134                "line": 43,
1135                "column": 7
1136              },
1137              "end": {
1138                "line": 43,
1139                "column": 8
1140              }
1141            }
1142          }
1143        ],
1144        "optional": false,
1145        "loc": {
1146          "start": {
1147            "line": 43,
1148            "column": 1
1149          },
1150          "end": {
1151            "line": 43,
1152            "column": 9
1153          }
1154        }
1155      },
1156      "loc": {
1157        "start": {
1158          "line": 43,
1159          "column": 1
1160        },
1161        "end": {
1162          "line": 43,
1163          "column": 10
1164        }
1165      }
1166    },
1167    {
1168      "type": "FunctionDeclaration",
1169      "function": {
1170        "type": "ScriptFunction",
1171        "id": {
1172          "type": "Identifier",
1173          "name": "func5",
1174          "decorators": [],
1175          "loc": {
1176            "start": {
1177              "line": 45,
1178              "column": 10
1179            },
1180            "end": {
1181              "line": 45,
1182              "column": 15
1183            }
1184          }
1185        },
1186        "generator": false,
1187        "async": false,
1188        "expression": false,
1189        "params": [
1190          {
1191            "type": "Identifier",
1192            "name": "a",
1193            "typeAnnotation": {
1194              "type": "TSNumberKeyword",
1195              "loc": {
1196                "start": {
1197                  "line": 45,
1198                  "column": 19
1199                },
1200                "end": {
1201                  "line": 45,
1202                  "column": 25
1203                }
1204              }
1205            },
1206            "decorators": [],
1207            "loc": {
1208              "start": {
1209                "line": 45,
1210                "column": 16
1211              },
1212              "end": {
1213                "line": 45,
1214                "column": 17
1215              }
1216            }
1217          },
1218          {
1219            "type": "Identifier",
1220            "name": "b",
1221            "typeAnnotation": {
1222              "type": "TSStringKeyword",
1223              "loc": {
1224                "start": {
1225                  "line": 45,
1226                  "column": 30
1227                },
1228                "end": {
1229                  "line": 45,
1230                  "column": 36
1231                }
1232              }
1233            },
1234            "decorators": [],
1235            "loc": {
1236              "start": {
1237                "line": 45,
1238                "column": 27
1239              },
1240              "end": {
1241                "line": 45,
1242                "column": 28
1243              }
1244            }
1245          },
1246          {
1247            "type": "RestElement",
1248            "argument": {
1249              "type": "Identifier",
1250              "name": "c",
1251              "decorators": [],
1252              "loc": {
1253                "start": {
1254                  "line": 45,
1255                  "column": 41
1256                },
1257                "end": {
1258                  "line": 45,
1259                  "column": 42
1260                }
1261              }
1262            },
1263            "loc": {
1264              "start": {
1265                "line": 45,
1266                "column": 38
1267              },
1268              "end": {
1269                "line": 45,
1270                "column": 42
1271              }
1272            }
1273          }
1274        ],
1275        "body": {
1276          "type": "BlockStatement",
1277          "statements": [
1278            {
1279              "type": "ReturnStatement",
1280              "argument": {
1281                "type": "NumberLiteral",
1282                "value": 5,
1283                "loc": {
1284                  "start": {
1285                    "line": 46,
1286                    "column": 12
1287                  },
1288                  "end": {
1289                    "line": 46,
1290                    "column": 13
1291                  }
1292                }
1293              },
1294              "loc": {
1295                "start": {
1296                  "line": 46,
1297                  "column": 5
1298                },
1299                "end": {
1300                  "line": 46,
1301                  "column": 14
1302                }
1303              }
1304            }
1305          ],
1306          "loc": {
1307            "start": {
1308              "line": 45,
1309              "column": 44
1310            },
1311            "end": {
1312              "line": 47,
1313              "column": 2
1314            }
1315          }
1316        },
1317        "loc": {
1318          "start": {
1319            "line": 45,
1320            "column": 1
1321          },
1322          "end": {
1323            "line": 47,
1324            "column": 2
1325          }
1326        }
1327      },
1328      "loc": {
1329        "start": {
1330          "line": 45,
1331          "column": 1
1332        },
1333        "end": {
1334          "line": 47,
1335          "column": 2
1336        }
1337      }
1338    },
1339    {
1340      "type": "ExpressionStatement",
1341      "expression": {
1342        "type": "CallExpression",
1343        "callee": {
1344          "type": "Identifier",
1345          "name": "func5",
1346          "decorators": [],
1347          "loc": {
1348            "start": {
1349              "line": 49,
1350              "column": 1
1351            },
1352            "end": {
1353              "line": 49,
1354              "column": 6
1355            }
1356          }
1357        },
1358        "arguments": [
1359          {
1360            "type": "NumberLiteral",
1361            "value": 1,
1362            "loc": {
1363              "start": {
1364                "line": 49,
1365                "column": 7
1366              },
1367              "end": {
1368                "line": 49,
1369                "column": 8
1370              }
1371            }
1372          },
1373          {
1374            "type": "StringLiteral",
1375            "value": "foo",
1376            "loc": {
1377              "start": {
1378                "line": 49,
1379                "column": 10
1380              },
1381              "end": {
1382                "line": 49,
1383                "column": 15
1384              }
1385            }
1386          }
1387        ],
1388        "optional": false,
1389        "loc": {
1390          "start": {
1391            "line": 49,
1392            "column": 1
1393          },
1394          "end": {
1395            "line": 49,
1396            "column": 16
1397          }
1398        }
1399      },
1400      "loc": {
1401        "start": {
1402          "line": 49,
1403          "column": 1
1404        },
1405        "end": {
1406          "line": 49,
1407          "column": 17
1408        }
1409      }
1410    },
1411    {
1412      "type": "ExpressionStatement",
1413      "expression": {
1414        "type": "CallExpression",
1415        "callee": {
1416          "type": "Identifier",
1417          "name": "func5",
1418          "decorators": [],
1419          "loc": {
1420            "start": {
1421              "line": 50,
1422              "column": 1
1423            },
1424            "end": {
1425              "line": 50,
1426              "column": 6
1427            }
1428          }
1429        },
1430        "arguments": [
1431          {
1432            "type": "NumberLiteral",
1433            "value": 1,
1434            "loc": {
1435              "start": {
1436                "line": 50,
1437                "column": 7
1438              },
1439              "end": {
1440                "line": 50,
1441                "column": 8
1442              }
1443            }
1444          },
1445          {
1446            "type": "StringLiteral",
1447            "value": "foo",
1448            "loc": {
1449              "start": {
1450                "line": 50,
1451                "column": 10
1452              },
1453              "end": {
1454                "line": 50,
1455                "column": 15
1456              }
1457            }
1458          },
1459          {
1460            "type": "NumberLiteral",
1461            "value": 2,
1462            "loc": {
1463              "start": {
1464                "line": 50,
1465                "column": 17
1466              },
1467              "end": {
1468                "line": 50,
1469                "column": 18
1470              }
1471            }
1472          },
1473          {
1474            "type": "BooleanLiteral",
1475            "value": true,
1476            "loc": {
1477              "start": {
1478                "line": 50,
1479                "column": 20
1480              },
1481              "end": {
1482                "line": 50,
1483                "column": 24
1484              }
1485            }
1486          },
1487          {
1488            "type": "ObjectExpression",
1489            "properties": [],
1490            "loc": {
1491              "start": {
1492                "line": 50,
1493                "column": 26
1494              },
1495              "end": {
1496                "line": 50,
1497                "column": 28
1498              }
1499            }
1500          }
1501        ],
1502        "optional": false,
1503        "loc": {
1504          "start": {
1505            "line": 50,
1506            "column": 1
1507          },
1508          "end": {
1509            "line": 50,
1510            "column": 29
1511          }
1512        }
1513      },
1514      "loc": {
1515        "start": {
1516          "line": 50,
1517          "column": 1
1518        },
1519        "end": {
1520          "line": 50,
1521          "column": 30
1522        }
1523      }
1524    },
1525    {
1526      "type": "FunctionDeclaration",
1527      "function": {
1528        "type": "ScriptFunction",
1529        "id": {
1530          "type": "Identifier",
1531          "name": "func6",
1532          "decorators": [],
1533          "loc": {
1534            "start": {
1535              "line": 52,
1536              "column": 10
1537            },
1538            "end": {
1539              "line": 52,
1540              "column": 15
1541            }
1542          }
1543        },
1544        "generator": false,
1545        "async": false,
1546        "expression": false,
1547        "params": [
1548          {
1549            "type": "Identifier",
1550            "name": "a",
1551            "typeAnnotation": {
1552              "type": "TSAnyKeyword",
1553              "loc": {
1554                "start": {
1555                  "line": 52,
1556                  "column": 19
1557                },
1558                "end": {
1559                  "line": 52,
1560                  "column": 22
1561                }
1562              }
1563            },
1564            "decorators": [],
1565            "loc": {
1566              "start": {
1567                "line": 52,
1568                "column": 16
1569              },
1570              "end": {
1571                "line": 52,
1572                "column": 17
1573              }
1574            }
1575          },
1576          {
1577            "type": "Identifier",
1578            "name": "b",
1579            "typeAnnotation": {
1580              "type": "TSArrayType",
1581              "elementType": {
1582                "type": "TSStringKeyword",
1583                "loc": {
1584                  "start": {
1585                    "line": 52,
1586                    "column": 28
1587                  },
1588                  "end": {
1589                    "line": 52,
1590                    "column": 34
1591                  }
1592                }
1593              },
1594              "loc": {
1595                "start": {
1596                  "line": 52,
1597                  "column": 28
1598                },
1599                "end": {
1600                  "line": 52,
1601                  "column": 36
1602                }
1603              }
1604            },
1605            "optional": true,
1606            "decorators": [],
1607            "loc": {
1608              "start": {
1609                "line": 52,
1610                "column": 24
1611              },
1612              "end": {
1613                "line": 52,
1614                "column": 25
1615              }
1616            }
1617          },
1618          {
1619            "type": "RestElement",
1620            "argument": {
1621              "type": "Identifier",
1622              "name": "c",
1623              "typeAnnotation": {
1624                "type": "TSArrayType",
1625                "elementType": {
1626                  "type": "TSNumberKeyword",
1627                  "loc": {
1628                    "start": {
1629                      "line": 52,
1630                      "column": 44
1631                    },
1632                    "end": {
1633                      "line": 52,
1634                      "column": 50
1635                    }
1636                  }
1637                },
1638                "loc": {
1639                  "start": {
1640                    "line": 52,
1641                    "column": 44
1642                  },
1643                  "end": {
1644                    "line": 52,
1645                    "column": 52
1646                  }
1647                }
1648              },
1649              "decorators": [],
1650              "loc": {
1651                "start": {
1652                  "line": 52,
1653                  "column": 41
1654                },
1655                "end": {
1656                  "line": 52,
1657                  "column": 42
1658                }
1659              }
1660            },
1661            "loc": {
1662              "start": {
1663                "line": 52,
1664                "column": 38
1665              },
1666              "end": {
1667                "line": 52,
1668                "column": 42
1669              }
1670            }
1671          }
1672        ],
1673        "body": {
1674          "type": "BlockStatement",
1675          "statements": [
1676            {
1677              "type": "ReturnStatement",
1678              "argument": {
1679                "type": "BooleanLiteral",
1680                "value": true,
1681                "loc": {
1682                  "start": {
1683                    "line": 53,
1684                    "column": 12
1685                  },
1686                  "end": {
1687                    "line": 53,
1688                    "column": 16
1689                  }
1690                }
1691              },
1692              "loc": {
1693                "start": {
1694                  "line": 53,
1695                  "column": 5
1696                },
1697                "end": {
1698                  "line": 53,
1699                  "column": 17
1700                }
1701              }
1702            }
1703          ],
1704          "loc": {
1705            "start": {
1706              "line": 52,
1707              "column": 54
1708            },
1709            "end": {
1710              "line": 54,
1711              "column": 2
1712            }
1713          }
1714        },
1715        "loc": {
1716          "start": {
1717            "line": 52,
1718            "column": 1
1719          },
1720          "end": {
1721            "line": 54,
1722            "column": 2
1723          }
1724        }
1725      },
1726      "loc": {
1727        "start": {
1728          "line": 52,
1729          "column": 1
1730        },
1731        "end": {
1732          "line": 54,
1733          "column": 2
1734        }
1735      }
1736    },
1737    {
1738      "type": "ExpressionStatement",
1739      "expression": {
1740        "type": "CallExpression",
1741        "callee": {
1742          "type": "Identifier",
1743          "name": "func6",
1744          "decorators": [],
1745          "loc": {
1746            "start": {
1747              "line": 56,
1748              "column": 1
1749            },
1750            "end": {
1751              "line": 56,
1752              "column": 6
1753            }
1754          }
1755        },
1756        "arguments": [
1757          {
1758            "type": "NumberLiteral",
1759            "value": 2,
1760            "loc": {
1761              "start": {
1762                "line": 56,
1763                "column": 7
1764              },
1765              "end": {
1766                "line": 56,
1767                "column": 8
1768              }
1769            }
1770          }
1771        ],
1772        "optional": false,
1773        "loc": {
1774          "start": {
1775            "line": 56,
1776            "column": 1
1777          },
1778          "end": {
1779            "line": 56,
1780            "column": 9
1781          }
1782        }
1783      },
1784      "loc": {
1785        "start": {
1786          "line": 56,
1787          "column": 1
1788        },
1789        "end": {
1790          "line": 56,
1791          "column": 10
1792        }
1793      }
1794    },
1795    {
1796      "type": "ExpressionStatement",
1797      "expression": {
1798        "type": "CallExpression",
1799        "callee": {
1800          "type": "Identifier",
1801          "name": "func6",
1802          "decorators": [],
1803          "loc": {
1804            "start": {
1805              "line": 57,
1806              "column": 1
1807            },
1808            "end": {
1809              "line": 57,
1810              "column": 6
1811            }
1812          }
1813        },
1814        "arguments": [
1815          {
1816            "type": "BooleanLiteral",
1817            "value": false,
1818            "loc": {
1819              "start": {
1820                "line": 57,
1821                "column": 7
1822              },
1823              "end": {
1824                "line": 57,
1825                "column": 12
1826              }
1827            }
1828          },
1829          {
1830            "type": "ArrayExpression",
1831            "elements": [
1832              {
1833                "type": "StringLiteral",
1834                "value": "foo",
1835                "loc": {
1836                  "start": {
1837                    "line": 57,
1838                    "column": 15
1839                  },
1840                  "end": {
1841                    "line": 57,
1842                    "column": 20
1843                  }
1844                }
1845              }
1846            ],
1847            "loc": {
1848              "start": {
1849                "line": 57,
1850                "column": 14
1851              },
1852              "end": {
1853                "line": 57,
1854                "column": 21
1855              }
1856            }
1857          }
1858        ],
1859        "optional": false,
1860        "loc": {
1861          "start": {
1862            "line": 57,
1863            "column": 1
1864          },
1865          "end": {
1866            "line": 57,
1867            "column": 22
1868          }
1869        }
1870      },
1871      "loc": {
1872        "start": {
1873          "line": 57,
1874          "column": 1
1875        },
1876        "end": {
1877          "line": 57,
1878          "column": 23
1879        }
1880      }
1881    },
1882    {
1883      "type": "ExpressionStatement",
1884      "expression": {
1885        "type": "CallExpression",
1886        "callee": {
1887          "type": "Identifier",
1888          "name": "func6",
1889          "decorators": [],
1890          "loc": {
1891            "start": {
1892              "line": 58,
1893              "column": 1
1894            },
1895            "end": {
1896              "line": 58,
1897              "column": 6
1898            }
1899          }
1900        },
1901        "arguments": [
1902          {
1903            "type": "ObjectExpression",
1904            "properties": [],
1905            "loc": {
1906              "start": {
1907                "line": 58,
1908                "column": 7
1909              },
1910              "end": {
1911                "line": 58,
1912                "column": 9
1913              }
1914            }
1915          },
1916          {
1917            "type": "ArrayExpression",
1918            "elements": [
1919              {
1920                "type": "StringLiteral",
1921                "value": "foo",
1922                "loc": {
1923                  "start": {
1924                    "line": 58,
1925                    "column": 12
1926                  },
1927                  "end": {
1928                    "line": 58,
1929                    "column": 17
1930                  }
1931                }
1932              }
1933            ],
1934            "loc": {
1935              "start": {
1936                "line": 58,
1937                "column": 11
1938              },
1939              "end": {
1940                "line": 58,
1941                "column": 18
1942              }
1943            }
1944          },
1945          {
1946            "type": "NumberLiteral",
1947            "value": 2,
1948            "loc": {
1949              "start": {
1950                "line": 58,
1951                "column": 20
1952              },
1953              "end": {
1954                "line": 58,
1955                "column": 21
1956              }
1957            }
1958          },
1959          {
1960            "type": "NumberLiteral",
1961            "value": 3,
1962            "loc": {
1963              "start": {
1964                "line": 58,
1965                "column": 23
1966              },
1967              "end": {
1968                "line": 58,
1969                "column": 24
1970              }
1971            }
1972          },
1973          {
1974            "type": "NumberLiteral",
1975            "value": 4,
1976            "loc": {
1977              "start": {
1978                "line": 58,
1979                "column": 26
1980              },
1981              "end": {
1982                "line": 58,
1983                "column": 27
1984              }
1985            }
1986          }
1987        ],
1988        "optional": false,
1989        "loc": {
1990          "start": {
1991            "line": 58,
1992            "column": 1
1993          },
1994          "end": {
1995            "line": 58,
1996            "column": 28
1997          }
1998        }
1999      },
2000      "loc": {
2001        "start": {
2002          "line": 58,
2003          "column": 1
2004        },
2005        "end": {
2006          "line": 58,
2007          "column": 29
2008        }
2009      }
2010    },
2011    {
2012      "type": "VariableDeclaration",
2013      "declarations": [
2014        {
2015          "type": "VariableDeclarator",
2016          "id": {
2017            "type": "Identifier",
2018            "name": "func7",
2019            "typeAnnotation": {
2020              "type": "TSTypeLiteral",
2021              "members": [
2022                {
2023                  "type": "TSCallSignatureDeclaration",
2024                  "params": [
2025                    {
2026                      "type": "Identifier",
2027                      "name": "a",
2028                      "typeAnnotation": {
2029                        "type": "TSNumberKeyword",
2030                        "loc": {
2031                          "start": {
2032                            "line": 60,
2033                            "column": 18
2034                          },
2035                          "end": {
2036                            "line": 60,
2037                            "column": 24
2038                          }
2039                        }
2040                      },
2041                      "decorators": [],
2042                      "loc": {
2043                        "start": {
2044                          "line": 60,
2045                          "column": 15
2046                        },
2047                        "end": {
2048                          "line": 60,
2049                          "column": 16
2050                        }
2051                      }
2052                    },
2053                    {
2054                      "type": "Identifier",
2055                      "name": "b",
2056                      "typeAnnotation": {
2057                        "type": "TSStringKeyword",
2058                        "loc": {
2059                          "start": {
2060                            "line": 60,
2061                            "column": 29
2062                          },
2063                          "end": {
2064                            "line": 60,
2065                            "column": 35
2066                          }
2067                        }
2068                      },
2069                      "decorators": [],
2070                      "loc": {
2071                        "start": {
2072                          "line": 60,
2073                          "column": 26
2074                        },
2075                        "end": {
2076                          "line": 60,
2077                          "column": 27
2078                        }
2079                      }
2080                    }
2081                  ],
2082                  "returnType": {
2083                    "type": "TSNumberKeyword",
2084                    "loc": {
2085                      "start": {
2086                        "line": 60,
2087                        "column": 38
2088                      },
2089                      "end": {
2090                        "line": 60,
2091                        "column": 44
2092                      }
2093                    }
2094                  },
2095                  "loc": {
2096                    "start": {
2097                      "line": 60,
2098                      "column": 14
2099                    },
2100                    "end": {
2101                      "line": 60,
2102                      "column": 45
2103                    }
2104                  }
2105                },
2106                {
2107                  "type": "TSCallSignatureDeclaration",
2108                  "params": [
2109                    {
2110                      "type": "RestElement",
2111                      "argument": {
2112                        "type": "Identifier",
2113                        "name": "a",
2114                        "decorators": [],
2115                        "loc": {
2116                          "start": {
2117                            "line": 60,
2118                            "column": 50
2119                          },
2120                          "end": {
2121                            "line": 60,
2122                            "column": 51
2123                          }
2124                        }
2125                      },
2126                      "loc": {
2127                        "start": {
2128                          "line": 60,
2129                          "column": 47
2130                        },
2131                        "end": {
2132                          "line": 60,
2133                          "column": 51
2134                        }
2135                      }
2136                    }
2137                  ],
2138                  "returnType": {
2139                    "type": "TSStringKeyword",
2140                    "loc": {
2141                      "start": {
2142                        "line": 60,
2143                        "column": 54
2144                      },
2145                      "end": {
2146                        "line": 60,
2147                        "column": 60
2148                      }
2149                    }
2150                  },
2151                  "loc": {
2152                    "start": {
2153                      "line": 60,
2154                      "column": 46
2155                    },
2156                    "end": {
2157                      "line": 60,
2158                      "column": 62
2159                    }
2160                  }
2161                }
2162              ],
2163              "loc": {
2164                "start": {
2165                  "line": 60,
2166                  "column": 12
2167                },
2168                "end": {
2169                  "line": 60,
2170                  "column": 62
2171                }
2172              }
2173            },
2174            "decorators": [],
2175            "loc": {
2176              "start": {
2177                "line": 60,
2178                "column": 5
2179              },
2180              "end": {
2181                "line": 60,
2182                "column": 10
2183              }
2184            }
2185          },
2186          "init": null,
2187          "loc": {
2188            "start": {
2189              "line": 60,
2190              "column": 5
2191            },
2192            "end": {
2193              "line": 60,
2194              "column": 10
2195            }
2196          }
2197        }
2198      ],
2199      "kind": "var",
2200      "loc": {
2201        "start": {
2202          "line": 60,
2203          "column": 1
2204        },
2205        "end": {
2206          "line": 60,
2207          "column": 63
2208        }
2209      }
2210    },
2211    {
2212      "type": "VariableDeclaration",
2213      "declarations": [
2214        {
2215          "type": "VariableDeclarator",
2216          "id": {
2217            "type": "Identifier",
2218            "name": "b",
2219            "typeAnnotation": {
2220              "type": "TSStringKeyword",
2221              "loc": {
2222                "start": {
2223                  "line": 61,
2224                  "column": 8
2225                },
2226                "end": {
2227                  "line": 61,
2228                  "column": 14
2229                }
2230              }
2231            },
2232            "decorators": [],
2233            "loc": {
2234              "start": {
2235                "line": 61,
2236                "column": 5
2237              },
2238              "end": {
2239                "line": 61,
2240                "column": 6
2241              }
2242            }
2243          },
2244          "init": {
2245            "type": "CallExpression",
2246            "callee": {
2247              "type": "Identifier",
2248              "name": "func7",
2249              "decorators": [],
2250              "loc": {
2251                "start": {
2252                  "line": 61,
2253                  "column": 17
2254                },
2255                "end": {
2256                  "line": 61,
2257                  "column": 22
2258                }
2259              }
2260            },
2261            "arguments": [],
2262            "optional": false,
2263            "loc": {
2264              "start": {
2265                "line": 61,
2266                "column": 17
2267              },
2268              "end": {
2269                "line": 61,
2270                "column": 24
2271              }
2272            }
2273          },
2274          "loc": {
2275            "start": {
2276              "line": 61,
2277              "column": 5
2278            },
2279            "end": {
2280              "line": 61,
2281              "column": 24
2282            }
2283          }
2284        }
2285      ],
2286      "kind": "var",
2287      "loc": {
2288        "start": {
2289          "line": 61,
2290          "column": 1
2291        },
2292        "end": {
2293          "line": 61,
2294          "column": 25
2295        }
2296      }
2297    },
2298    {
2299      "type": "VariableDeclaration",
2300      "declarations": [
2301        {
2302          "type": "VariableDeclarator",
2303          "id": {
2304            "type": "Identifier",
2305            "name": "c",
2306            "typeAnnotation": {
2307              "type": "TSStringKeyword",
2308              "loc": {
2309                "start": {
2310                  "line": 62,
2311                  "column": 8
2312                },
2313                "end": {
2314                  "line": 62,
2315                  "column": 14
2316                }
2317              }
2318            },
2319            "decorators": [],
2320            "loc": {
2321              "start": {
2322                "line": 62,
2323                "column": 5
2324              },
2325              "end": {
2326                "line": 62,
2327                "column": 6
2328              }
2329            }
2330          },
2331          "init": {
2332            "type": "CallExpression",
2333            "callee": {
2334              "type": "Identifier",
2335              "name": "func7",
2336              "decorators": [],
2337              "loc": {
2338                "start": {
2339                  "line": 62,
2340                  "column": 17
2341                },
2342                "end": {
2343                  "line": 62,
2344                  "column": 22
2345                }
2346              }
2347            },
2348            "arguments": [
2349              {
2350                "type": "NumberLiteral",
2351                "value": 1,
2352                "loc": {
2353                  "start": {
2354                    "line": 62,
2355                    "column": 23
2356                  },
2357                  "end": {
2358                    "line": 62,
2359                    "column": 24
2360                  }
2361                }
2362              }
2363            ],
2364            "optional": false,
2365            "loc": {
2366              "start": {
2367                "line": 62,
2368                "column": 17
2369              },
2370              "end": {
2371                "line": 62,
2372                "column": 25
2373              }
2374            }
2375          },
2376          "loc": {
2377            "start": {
2378              "line": 62,
2379              "column": 5
2380            },
2381            "end": {
2382              "line": 62,
2383              "column": 25
2384            }
2385          }
2386        }
2387      ],
2388      "kind": "var",
2389      "loc": {
2390        "start": {
2391          "line": 62,
2392          "column": 1
2393        },
2394        "end": {
2395          "line": 62,
2396          "column": 26
2397        }
2398      }
2399    },
2400    {
2401      "type": "VariableDeclaration",
2402      "declarations": [
2403        {
2404          "type": "VariableDeclarator",
2405          "id": {
2406            "type": "Identifier",
2407            "name": "d",
2408            "typeAnnotation": {
2409              "type": "TSNumberKeyword",
2410              "loc": {
2411                "start": {
2412                  "line": 63,
2413                  "column": 8
2414                },
2415                "end": {
2416                  "line": 63,
2417                  "column": 14
2418                }
2419              }
2420            },
2421            "decorators": [],
2422            "loc": {
2423              "start": {
2424                "line": 63,
2425                "column": 5
2426              },
2427              "end": {
2428                "line": 63,
2429                "column": 6
2430              }
2431            }
2432          },
2433          "init": {
2434            "type": "CallExpression",
2435            "callee": {
2436              "type": "Identifier",
2437              "name": "func7",
2438              "decorators": [],
2439              "loc": {
2440                "start": {
2441                  "line": 63,
2442                  "column": 17
2443                },
2444                "end": {
2445                  "line": 63,
2446                  "column": 22
2447                }
2448              }
2449            },
2450            "arguments": [
2451              {
2452                "type": "NumberLiteral",
2453                "value": 1,
2454                "loc": {
2455                  "start": {
2456                    "line": 63,
2457                    "column": 23
2458                  },
2459                  "end": {
2460                    "line": 63,
2461                    "column": 24
2462                  }
2463                }
2464              },
2465              {
2466                "type": "StringLiteral",
2467                "value": "foo",
2468                "loc": {
2469                  "start": {
2470                    "line": 63,
2471                    "column": 26
2472                  },
2473                  "end": {
2474                    "line": 63,
2475                    "column": 31
2476                  }
2477                }
2478              }
2479            ],
2480            "optional": false,
2481            "loc": {
2482              "start": {
2483                "line": 63,
2484                "column": 17
2485              },
2486              "end": {
2487                "line": 63,
2488                "column": 32
2489              }
2490            }
2491          },
2492          "loc": {
2493            "start": {
2494              "line": 63,
2495              "column": 5
2496            },
2497            "end": {
2498              "line": 63,
2499              "column": 32
2500            }
2501          }
2502        }
2503      ],
2504      "kind": "var",
2505      "loc": {
2506        "start": {
2507          "line": 63,
2508          "column": 1
2509        },
2510        "end": {
2511          "line": 63,
2512          "column": 33
2513        }
2514      }
2515    },
2516    {
2517      "type": "VariableDeclaration",
2518      "declarations": [
2519        {
2520          "type": "VariableDeclarator",
2521          "id": {
2522            "type": "Identifier",
2523            "name": "func8",
2524            "typeAnnotation": {
2525              "type": "TSTypeLiteral",
2526              "members": [
2527                {
2528                  "type": "TSCallSignatureDeclaration",
2529                  "params": [
2530                    {
2531                      "type": "Identifier",
2532                      "name": "a",
2533                      "typeAnnotation": {
2534                        "type": "TSNumberKeyword",
2535                        "loc": {
2536                          "start": {
2537                            "line": 65,
2538                            "column": 19
2539                          },
2540                          "end": {
2541                            "line": 65,
2542                            "column": 25
2543                          }
2544                        }
2545                      },
2546                      "optional": true,
2547                      "decorators": [],
2548                      "loc": {
2549                        "start": {
2550                          "line": 65,
2551                          "column": 15
2552                        },
2553                        "end": {
2554                          "line": 65,
2555                          "column": 16
2556                        }
2557                      }
2558                    },
2559                    {
2560                      "type": "RestElement",
2561                      "argument": {
2562                        "type": "Identifier",
2563                        "name": "c",
2564                        "decorators": [],
2565                        "loc": {
2566                          "start": {
2567                            "line": 65,
2568                            "column": 30
2569                          },
2570                          "end": {
2571                            "line": 65,
2572                            "column": 31
2573                          }
2574                        }
2575                      },
2576                      "loc": {
2577                        "start": {
2578                          "line": 65,
2579                          "column": 27
2580                        },
2581                        "end": {
2582                          "line": 65,
2583                          "column": 31
2584                        }
2585                      }
2586                    }
2587                  ],
2588                  "returnType": {
2589                    "type": "TSBooleanKeyword",
2590                    "loc": {
2591                      "start": {
2592                        "line": 65,
2593                        "column": 34
2594                      },
2595                      "end": {
2596                        "line": 65,
2597                        "column": 41
2598                      }
2599                    }
2600                  },
2601                  "loc": {
2602                    "start": {
2603                      "line": 65,
2604                      "column": 14
2605                    },
2606                    "end": {
2607                      "line": 65,
2608                      "column": 42
2609                    }
2610                  }
2611                },
2612                {
2613                  "type": "TSCallSignatureDeclaration",
2614                  "params": [
2615                    {
2616                      "type": "Identifier",
2617                      "name": "a",
2618                      "typeAnnotation": {
2619                        "type": "TSAnyKeyword",
2620                        "loc": {
2621                          "start": {
2622                            "line": 65,
2623                            "column": 47
2624                          },
2625                          "end": {
2626                            "line": 65,
2627                            "column": 50
2628                          }
2629                        }
2630                      },
2631                      "decorators": [],
2632                      "loc": {
2633                        "start": {
2634                          "line": 65,
2635                          "column": 44
2636                        },
2637                        "end": {
2638                          "line": 65,
2639                          "column": 45
2640                        }
2641                      }
2642                    },
2643                    {
2644                      "type": "Identifier",
2645                      "name": "b",
2646                      "typeAnnotation": {
2647                        "type": "TSArrayType",
2648                        "elementType": {
2649                          "type": "TSStringKeyword",
2650                          "loc": {
2651                            "start": {
2652                              "line": 65,
2653                              "column": 55
2654                            },
2655                            "end": {
2656                              "line": 65,
2657                              "column": 61
2658                            }
2659                          }
2660                        },
2661                        "loc": {
2662                          "start": {
2663                            "line": 65,
2664                            "column": 55
2665                          },
2666                          "end": {
2667                            "line": 65,
2668                            "column": 63
2669                          }
2670                        }
2671                      },
2672                      "decorators": [],
2673                      "loc": {
2674                        "start": {
2675                          "line": 65,
2676                          "column": 52
2677                        },
2678                        "end": {
2679                          "line": 65,
2680                          "column": 53
2681                        }
2682                      }
2683                    },
2684                    {
2685                      "type": "RestElement",
2686                      "argument": {
2687                        "type": "Identifier",
2688                        "name": "c",
2689                        "typeAnnotation": {
2690                          "type": "TSArrayType",
2691                          "elementType": {
2692                            "type": "TSNumberKeyword",
2693                            "loc": {
2694                              "start": {
2695                                "line": 65,
2696                                "column": 71
2697                              },
2698                              "end": {
2699                                "line": 65,
2700                                "column": 77
2701                              }
2702                            }
2703                          },
2704                          "loc": {
2705                            "start": {
2706                              "line": 65,
2707                              "column": 71
2708                            },
2709                            "end": {
2710                              "line": 65,
2711                              "column": 79
2712                            }
2713                          }
2714                        },
2715                        "decorators": [],
2716                        "loc": {
2717                          "start": {
2718                            "line": 65,
2719                            "column": 68
2720                          },
2721                          "end": {
2722                            "line": 65,
2723                            "column": 69
2724                          }
2725                        }
2726                      },
2727                      "loc": {
2728                        "start": {
2729                          "line": 65,
2730                          "column": 65
2731                        },
2732                        "end": {
2733                          "line": 65,
2734                          "column": 69
2735                        }
2736                      }
2737                    }
2738                  ],
2739                  "returnType": {
2740                    "type": "TSStringKeyword",
2741                    "loc": {
2742                      "start": {
2743                        "line": 65,
2744                        "column": 82
2745                      },
2746                      "end": {
2747                        "line": 65,
2748                        "column": 88
2749                      }
2750                    }
2751                  },
2752                  "loc": {
2753                    "start": {
2754                      "line": 65,
2755                      "column": 43
2756                    },
2757                    "end": {
2758                      "line": 65,
2759                      "column": 89
2760                    }
2761                  }
2762                },
2763                {
2764                  "type": "TSCallSignatureDeclaration",
2765                  "params": [
2766                    {
2767                      "type": "Identifier",
2768                      "name": "a",
2769                      "typeAnnotation": {
2770                        "type": "TSNumberKeyword",
2771                        "loc": {
2772                          "start": {
2773                            "line": 65,
2774                            "column": 94
2775                          },
2776                          "end": {
2777                            "line": 65,
2778                            "column": 100
2779                          }
2780                        }
2781                      },
2782                      "decorators": [],
2783                      "loc": {
2784                        "start": {
2785                          "line": 65,
2786                          "column": 91
2787                        },
2788                        "end": {
2789                          "line": 65,
2790                          "column": 92
2791                        }
2792                      }
2793                    },
2794                    {
2795                      "type": "Identifier",
2796                      "name": "b",
2797                      "typeAnnotation": {
2798                        "type": "TSBooleanKeyword",
2799                        "loc": {
2800                          "start": {
2801                            "line": 65,
2802                            "column": 105
2803                          },
2804                          "end": {
2805                            "line": 65,
2806                            "column": 112
2807                          }
2808                        }
2809                      },
2810                      "decorators": [],
2811                      "loc": {
2812                        "start": {
2813                          "line": 65,
2814                          "column": 102
2815                        },
2816                        "end": {
2817                          "line": 65,
2818                          "column": 103
2819                        }
2820                      }
2821                    }
2822                  ],
2823                  "returnType": {
2824                    "type": "TSNumberKeyword",
2825                    "loc": {
2826                      "start": {
2827                        "line": 65,
2828                        "column": 115
2829                      },
2830                      "end": {
2831                        "line": 65,
2832                        "column": 121
2833                      }
2834                    }
2835                  },
2836                  "loc": {
2837                    "start": {
2838                      "line": 65,
2839                      "column": 90
2840                    },
2841                    "end": {
2842                      "line": 65,
2843                      "column": 123
2844                    }
2845                  }
2846                }
2847              ],
2848              "loc": {
2849                "start": {
2850                  "line": 65,
2851                  "column": 12
2852                },
2853                "end": {
2854                  "line": 65,
2855                  "column": 123
2856                }
2857              }
2858            },
2859            "decorators": [],
2860            "loc": {
2861              "start": {
2862                "line": 65,
2863                "column": 5
2864              },
2865              "end": {
2866                "line": 65,
2867                "column": 10
2868              }
2869            }
2870          },
2871          "init": null,
2872          "loc": {
2873            "start": {
2874              "line": 65,
2875              "column": 5
2876            },
2877            "end": {
2878              "line": 65,
2879              "column": 10
2880            }
2881          }
2882        }
2883      ],
2884      "kind": "var",
2885      "loc": {
2886        "start": {
2887          "line": 65,
2888          "column": 1
2889        },
2890        "end": {
2891          "line": 65,
2892          "column": 124
2893        }
2894      }
2895    },
2896    {
2897      "type": "VariableDeclaration",
2898      "declarations": [
2899        {
2900          "type": "VariableDeclarator",
2901          "id": {
2902            "type": "Identifier",
2903            "name": "e",
2904            "typeAnnotation": {
2905              "type": "TSBooleanKeyword",
2906              "loc": {
2907                "start": {
2908                  "line": 66,
2909                  "column": 8
2910                },
2911                "end": {
2912                  "line": 66,
2913                  "column": 15
2914                }
2915              }
2916            },
2917            "decorators": [],
2918            "loc": {
2919              "start": {
2920                "line": 66,
2921                "column": 5
2922              },
2923              "end": {
2924                "line": 66,
2925                "column": 6
2926              }
2927            }
2928          },
2929          "init": {
2930            "type": "CallExpression",
2931            "callee": {
2932              "type": "Identifier",
2933              "name": "func8",
2934              "decorators": [],
2935              "loc": {
2936                "start": {
2937                  "line": 66,
2938                  "column": 18
2939                },
2940                "end": {
2941                  "line": 66,
2942                  "column": 23
2943                }
2944              }
2945            },
2946            "arguments": [],
2947            "optional": false,
2948            "loc": {
2949              "start": {
2950                "line": 66,
2951                "column": 18
2952              },
2953              "end": {
2954                "line": 66,
2955                "column": 25
2956              }
2957            }
2958          },
2959          "loc": {
2960            "start": {
2961              "line": 66,
2962              "column": 5
2963            },
2964            "end": {
2965              "line": 66,
2966              "column": 25
2967            }
2968          }
2969        }
2970      ],
2971      "kind": "var",
2972      "loc": {
2973        "start": {
2974          "line": 66,
2975          "column": 1
2976        },
2977        "end": {
2978          "line": 66,
2979          "column": 26
2980        }
2981      }
2982    },
2983    {
2984      "type": "VariableDeclaration",
2985      "declarations": [
2986        {
2987          "type": "VariableDeclarator",
2988          "id": {
2989            "type": "Identifier",
2990            "name": "f",
2991            "typeAnnotation": {
2992              "type": "TSBooleanKeyword",
2993              "loc": {
2994                "start": {
2995                  "line": 67,
2996                  "column": 8
2997                },
2998                "end": {
2999                  "line": 67,
3000                  "column": 15
3001                }
3002              }
3003            },
3004            "decorators": [],
3005            "loc": {
3006              "start": {
3007                "line": 67,
3008                "column": 5
3009              },
3010              "end": {
3011                "line": 67,
3012                "column": 6
3013              }
3014            }
3015          },
3016          "init": {
3017            "type": "CallExpression",
3018            "callee": {
3019              "type": "Identifier",
3020              "name": "func8",
3021              "decorators": [],
3022              "loc": {
3023                "start": {
3024                  "line": 67,
3025                  "column": 18
3026                },
3027                "end": {
3028                  "line": 67,
3029                  "column": 23
3030                }
3031              }
3032            },
3033            "arguments": [
3034              {
3035                "type": "NumberLiteral",
3036                "value": 1,
3037                "loc": {
3038                  "start": {
3039                    "line": 67,
3040                    "column": 24
3041                  },
3042                  "end": {
3043                    "line": 67,
3044                    "column": 25
3045                  }
3046                }
3047              }
3048            ],
3049            "optional": false,
3050            "loc": {
3051              "start": {
3052                "line": 67,
3053                "column": 18
3054              },
3055              "end": {
3056                "line": 67,
3057                "column": 26
3058              }
3059            }
3060          },
3061          "loc": {
3062            "start": {
3063              "line": 67,
3064              "column": 5
3065            },
3066            "end": {
3067              "line": 67,
3068              "column": 26
3069            }
3070          }
3071        }
3072      ],
3073      "kind": "var",
3074      "loc": {
3075        "start": {
3076          "line": 67,
3077          "column": 1
3078        },
3079        "end": {
3080          "line": 67,
3081          "column": 27
3082        }
3083      }
3084    },
3085    {
3086      "type": "VariableDeclaration",
3087      "declarations": [
3088        {
3089          "type": "VariableDeclarator",
3090          "id": {
3091            "type": "Identifier",
3092            "name": "g",
3093            "typeAnnotation": {
3094              "type": "TSBooleanKeyword",
3095              "loc": {
3096                "start": {
3097                  "line": 68,
3098                  "column": 8
3099                },
3100                "end": {
3101                  "line": 68,
3102                  "column": 15
3103                }
3104              }
3105            },
3106            "decorators": [],
3107            "loc": {
3108              "start": {
3109                "line": 68,
3110                "column": 5
3111              },
3112              "end": {
3113                "line": 68,
3114                "column": 6
3115              }
3116            }
3117          },
3118          "init": {
3119            "type": "CallExpression",
3120            "callee": {
3121              "type": "Identifier",
3122              "name": "func8",
3123              "decorators": [],
3124              "loc": {
3125                "start": {
3126                  "line": 68,
3127                  "column": 18
3128                },
3129                "end": {
3130                  "line": 68,
3131                  "column": 23
3132                }
3133              }
3134            },
3135            "arguments": [
3136              {
3137                "type": "NumberLiteral",
3138                "value": 2,
3139                "loc": {
3140                  "start": {
3141                    "line": 68,
3142                    "column": 24
3143                  },
3144                  "end": {
3145                    "line": 68,
3146                    "column": 25
3147                  }
3148                }
3149              },
3150              {
3151                "type": "BooleanLiteral",
3152                "value": true,
3153                "loc": {
3154                  "start": {
3155                    "line": 68,
3156                    "column": 27
3157                  },
3158                  "end": {
3159                    "line": 68,
3160                    "column": 31
3161                  }
3162                }
3163              }
3164            ],
3165            "optional": false,
3166            "loc": {
3167              "start": {
3168                "line": 68,
3169                "column": 18
3170              },
3171              "end": {
3172                "line": 68,
3173                "column": 32
3174              }
3175            }
3176          },
3177          "loc": {
3178            "start": {
3179              "line": 68,
3180              "column": 5
3181            },
3182            "end": {
3183              "line": 68,
3184              "column": 32
3185            }
3186          }
3187        }
3188      ],
3189      "kind": "var",
3190      "loc": {
3191        "start": {
3192          "line": 68,
3193          "column": 1
3194        },
3195        "end": {
3196          "line": 68,
3197          "column": 33
3198        }
3199      }
3200    },
3201    {
3202      "type": "VariableDeclaration",
3203      "declarations": [
3204        {
3205          "type": "VariableDeclarator",
3206          "id": {
3207            "type": "Identifier",
3208            "name": "h",
3209            "typeAnnotation": {
3210              "type": "TSBooleanKeyword",
3211              "loc": {
3212                "start": {
3213                  "line": 69,
3214                  "column": 8
3215                },
3216                "end": {
3217                  "line": 69,
3218                  "column": 15
3219                }
3220              }
3221            },
3222            "decorators": [],
3223            "loc": {
3224              "start": {
3225                "line": 69,
3226                "column": 5
3227              },
3228              "end": {
3229                "line": 69,
3230                "column": 6
3231              }
3232            }
3233          },
3234          "init": {
3235            "type": "CallExpression",
3236            "callee": {
3237              "type": "Identifier",
3238              "name": "func8",
3239              "decorators": [],
3240              "loc": {
3241                "start": {
3242                  "line": 69,
3243                  "column": 18
3244                },
3245                "end": {
3246                  "line": 69,
3247                  "column": 23
3248                }
3249              }
3250            },
3251            "arguments": [
3252              {
3253                "type": "NumberLiteral",
3254                "value": 2,
3255                "loc": {
3256                  "start": {
3257                    "line": 69,
3258                    "column": 24
3259                  },
3260                  "end": {
3261                    "line": 69,
3262                    "column": 25
3263                  }
3264                }
3265              },
3266              {
3267                "type": "ArrayExpression",
3268                "elements": [
3269                  {
3270                    "type": "StringLiteral",
3271                    "value": "foo",
3272                    "loc": {
3273                      "start": {
3274                        "line": 69,
3275                        "column": 28
3276                      },
3277                      "end": {
3278                        "line": 69,
3279                        "column": 33
3280                      }
3281                    }
3282                  },
3283                  {
3284                    "type": "StringLiteral",
3285                    "value": "bar",
3286                    "loc": {
3287                      "start": {
3288                        "line": 69,
3289                        "column": 35
3290                      },
3291                      "end": {
3292                        "line": 69,
3293                        "column": 40
3294                      }
3295                    }
3296                  }
3297                ],
3298                "loc": {
3299                  "start": {
3300                    "line": 69,
3301                    "column": 27
3302                  },
3303                  "end": {
3304                    "line": 69,
3305                    "column": 41
3306                  }
3307                }
3308              },
3309              {
3310                "type": "ObjectExpression",
3311                "properties": [],
3312                "loc": {
3313                  "start": {
3314                    "line": 69,
3315                    "column": 43
3316                  },
3317                  "end": {
3318                    "line": 69,
3319                    "column": 45
3320                  }
3321                }
3322              }
3323            ],
3324            "optional": false,
3325            "loc": {
3326              "start": {
3327                "line": 69,
3328                "column": 18
3329              },
3330              "end": {
3331                "line": 69,
3332                "column": 46
3333              }
3334            }
3335          },
3336          "loc": {
3337            "start": {
3338              "line": 69,
3339              "column": 5
3340            },
3341            "end": {
3342              "line": 69,
3343              "column": 46
3344            }
3345          }
3346        }
3347      ],
3348      "kind": "var",
3349      "loc": {
3350        "start": {
3351          "line": 69,
3352          "column": 1
3353        },
3354        "end": {
3355          "line": 69,
3356          "column": 47
3357        }
3358      }
3359    },
3360    {
3361      "type": "VariableDeclaration",
3362      "declarations": [
3363        {
3364          "type": "VariableDeclarator",
3365          "id": {
3366            "type": "Identifier",
3367            "name": "i",
3368            "typeAnnotation": {
3369              "type": "TSStringKeyword",
3370              "loc": {
3371                "start": {
3372                  "line": 70,
3373                  "column": 8
3374                },
3375                "end": {
3376                  "line": 70,
3377                  "column": 14
3378                }
3379              }
3380            },
3381            "decorators": [],
3382            "loc": {
3383              "start": {
3384                "line": 70,
3385                "column": 5
3386              },
3387              "end": {
3388                "line": 70,
3389                "column": 6
3390              }
3391            }
3392          },
3393          "init": {
3394            "type": "CallExpression",
3395            "callee": {
3396              "type": "Identifier",
3397              "name": "func8",
3398              "decorators": [],
3399              "loc": {
3400                "start": {
3401                  "line": 70,
3402                  "column": 17
3403                },
3404                "end": {
3405                  "line": 70,
3406                  "column": 22
3407                }
3408              }
3409            },
3410            "arguments": [
3411              {
3412                "type": "ObjectExpression",
3413                "properties": [],
3414                "loc": {
3415                  "start": {
3416                    "line": 70,
3417                    "column": 23
3418                  },
3419                  "end": {
3420                    "line": 70,
3421                    "column": 25
3422                  }
3423                }
3424              },
3425              {
3426                "type": "ArrayExpression",
3427                "elements": [
3428                  {
3429                    "type": "StringLiteral",
3430                    "value": "bar",
3431                    "loc": {
3432                      "start": {
3433                        "line": 70,
3434                        "column": 28
3435                      },
3436                      "end": {
3437                        "line": 70,
3438                        "column": 33
3439                      }
3440                    }
3441                  }
3442                ],
3443                "loc": {
3444                  "start": {
3445                    "line": 70,
3446                    "column": 27
3447                  },
3448                  "end": {
3449                    "line": 70,
3450                    "column": 34
3451                  }
3452                }
3453              }
3454            ],
3455            "optional": false,
3456            "loc": {
3457              "start": {
3458                "line": 70,
3459                "column": 17
3460              },
3461              "end": {
3462                "line": 70,
3463                "column": 35
3464              }
3465            }
3466          },
3467          "loc": {
3468            "start": {
3469              "line": 70,
3470              "column": 5
3471            },
3472            "end": {
3473              "line": 70,
3474              "column": 35
3475            }
3476          }
3477        }
3478      ],
3479      "kind": "var",
3480      "loc": {
3481        "start": {
3482          "line": 70,
3483          "column": 1
3484        },
3485        "end": {
3486          "line": 70,
3487          "column": 36
3488        }
3489      }
3490    },
3491    {
3492      "type": "VariableDeclaration",
3493      "declarations": [
3494        {
3495          "type": "VariableDeclarator",
3496          "id": {
3497            "type": "Identifier",
3498            "name": "j",
3499            "typeAnnotation": {
3500              "type": "TSStringKeyword",
3501              "loc": {
3502                "start": {
3503                  "line": 71,
3504                  "column": 8
3505                },
3506                "end": {
3507                  "line": 71,
3508                  "column": 14
3509                }
3510              }
3511            },
3512            "decorators": [],
3513            "loc": {
3514              "start": {
3515                "line": 71,
3516                "column": 5
3517              },
3518              "end": {
3519                "line": 71,
3520                "column": 6
3521              }
3522            }
3523          },
3524          "init": {
3525            "type": "CallExpression",
3526            "callee": {
3527              "type": "Identifier",
3528              "name": "func8",
3529              "decorators": [],
3530              "loc": {
3531                "start": {
3532                  "line": 71,
3533                  "column": 17
3534                },
3535                "end": {
3536                  "line": 71,
3537                  "column": 22
3538                }
3539              }
3540            },
3541            "arguments": [
3542              {
3543                "type": "ObjectExpression",
3544                "properties": [],
3545                "loc": {
3546                  "start": {
3547                    "line": 71,
3548                    "column": 23
3549                  },
3550                  "end": {
3551                    "line": 71,
3552                    "column": 25
3553                  }
3554                }
3555              },
3556              {
3557                "type": "ArrayExpression",
3558                "elements": [
3559                  {
3560                    "type": "StringLiteral",
3561                    "value": "bar",
3562                    "loc": {
3563                      "start": {
3564                        "line": 71,
3565                        "column": 28
3566                      },
3567                      "end": {
3568                        "line": 71,
3569                        "column": 33
3570                      }
3571                    }
3572                  }
3573                ],
3574                "loc": {
3575                  "start": {
3576                    "line": 71,
3577                    "column": 27
3578                  },
3579                  "end": {
3580                    "line": 71,
3581                    "column": 34
3582                  }
3583                }
3584              },
3585              {
3586                "type": "NumberLiteral",
3587                "value": 3,
3588                "loc": {
3589                  "start": {
3590                    "line": 71,
3591                    "column": 36
3592                  },
3593                  "end": {
3594                    "line": 71,
3595                    "column": 37
3596                  }
3597                }
3598              },
3599              {
3600                "type": "NumberLiteral",
3601                "value": 4,
3602                "loc": {
3603                  "start": {
3604                    "line": 71,
3605                    "column": 39
3606                  },
3607                  "end": {
3608                    "line": 71,
3609                    "column": 40
3610                  }
3611                }
3612              },
3613              {
3614                "type": "NumberLiteral",
3615                "value": 5,
3616                "loc": {
3617                  "start": {
3618                    "line": 71,
3619                    "column": 42
3620                  },
3621                  "end": {
3622                    "line": 71,
3623                    "column": 43
3624                  }
3625                }
3626              }
3627            ],
3628            "optional": false,
3629            "loc": {
3630              "start": {
3631                "line": 71,
3632                "column": 17
3633              },
3634              "end": {
3635                "line": 71,
3636                "column": 44
3637              }
3638            }
3639          },
3640          "loc": {
3641            "start": {
3642              "line": 71,
3643              "column": 5
3644            },
3645            "end": {
3646              "line": 71,
3647              "column": 44
3648            }
3649          }
3650        }
3651      ],
3652      "kind": "var",
3653      "loc": {
3654        "start": {
3655          "line": 71,
3656          "column": 1
3657        },
3658        "end": {
3659          "line": 71,
3660          "column": 45
3661        }
3662      }
3663    },
3664    {
3665      "type": "TSDeclareFunction",
3666      "function": {
3667        "type": "ScriptFunction",
3668        "id": {
3669          "type": "Identifier",
3670          "name": "func9",
3671          "decorators": [],
3672          "loc": {
3673            "start": {
3674              "line": 73,
3675              "column": 10
3676            },
3677            "end": {
3678              "line": 73,
3679              "column": 15
3680            }
3681          }
3682        },
3683        "generator": false,
3684        "async": false,
3685        "expression": false,
3686        "params": [
3687          {
3688            "type": "Identifier",
3689            "name": "a",
3690            "typeAnnotation": {
3691              "type": "TSNumberKeyword",
3692              "loc": {
3693                "start": {
3694                  "line": 73,
3695                  "column": 19
3696                },
3697                "end": {
3698                  "line": 73,
3699                  "column": 25
3700                }
3701              }
3702            },
3703            "decorators": [],
3704            "loc": {
3705              "start": {
3706                "line": 73,
3707                "column": 16
3708              },
3709              "end": {
3710                "line": 73,
3711                "column": 17
3712              }
3713            }
3714          },
3715          {
3716            "type": "Identifier",
3717            "name": "b",
3718            "typeAnnotation": {
3719              "type": "TSStringKeyword",
3720              "loc": {
3721                "start": {
3722                  "line": 73,
3723                  "column": 30
3724                },
3725                "end": {
3726                  "line": 73,
3727                  "column": 36
3728                }
3729              }
3730            },
3731            "decorators": [],
3732            "loc": {
3733              "start": {
3734                "line": 73,
3735                "column": 27
3736              },
3737              "end": {
3738                "line": 73,
3739                "column": 28
3740              }
3741            }
3742          }
3743        ],
3744        "returnType": {
3745          "type": "TSNumberKeyword",
3746          "loc": {
3747            "start": {
3748              "line": 73,
3749              "column": 39
3750            },
3751            "end": {
3752              "line": 73,
3753              "column": 45
3754            }
3755          }
3756        },
3757        "loc": {
3758          "start": {
3759            "line": 73,
3760            "column": 1
3761          },
3762          "end": {
3763            "line": 73,
3764            "column": 46
3765          }
3766        }
3767      },
3768      "loc": {
3769        "start": {
3770          "line": 73,
3771          "column": 1
3772        },
3773        "end": {
3774          "line": 73,
3775          "column": 46
3776        }
3777      }
3778    },
3779    {
3780      "type": "TSDeclareFunction",
3781      "function": {
3782        "type": "ScriptFunction",
3783        "id": {
3784          "type": "Identifier",
3785          "name": "func9",
3786          "decorators": [],
3787          "loc": {
3788            "start": {
3789              "line": 74,
3790              "column": 10
3791            },
3792            "end": {
3793              "line": 74,
3794              "column": 15
3795            }
3796          }
3797        },
3798        "generator": false,
3799        "async": false,
3800        "expression": false,
3801        "params": [
3802          {
3803            "type": "Identifier",
3804            "name": "a",
3805            "typeAnnotation": {
3806              "type": "TSStringKeyword",
3807              "loc": {
3808                "start": {
3809                  "line": 74,
3810                  "column": 19
3811                },
3812                "end": {
3813                  "line": 74,
3814                  "column": 25
3815                }
3816              }
3817            },
3818            "decorators": [],
3819            "loc": {
3820              "start": {
3821                "line": 74,
3822                "column": 16
3823              },
3824              "end": {
3825                "line": 74,
3826                "column": 17
3827              }
3828            }
3829          },
3830          {
3831            "type": "Identifier",
3832            "name": "b",
3833            "typeAnnotation": {
3834              "type": "TSNumberKeyword",
3835              "loc": {
3836                "start": {
3837                  "line": 74,
3838                  "column": 30
3839                },
3840                "end": {
3841                  "line": 74,
3842                  "column": 36
3843                }
3844              }
3845            },
3846            "decorators": [],
3847            "loc": {
3848              "start": {
3849                "line": 74,
3850                "column": 27
3851              },
3852              "end": {
3853                "line": 74,
3854                "column": 28
3855              }
3856            }
3857          }
3858        ],
3859        "returnType": {
3860          "type": "TSUnionType",
3861          "types": [
3862            {
3863              "type": "TSNumberKeyword",
3864              "loc": {
3865                "start": {
3866                  "line": 74,
3867                  "column": 39
3868                },
3869                "end": {
3870                  "line": 74,
3871                  "column": 45
3872                }
3873              }
3874            },
3875            {
3876              "type": "TSStringKeyword",
3877              "loc": {
3878                "start": {
3879                  "line": 74,
3880                  "column": 48
3881                },
3882                "end": {
3883                  "line": 74,
3884                  "column": 54
3885                }
3886              }
3887            }
3888          ],
3889          "loc": {
3890            "start": {
3891              "line": 74,
3892              "column": 39
3893            },
3894            "end": {
3895              "line": 74,
3896              "column": 54
3897            }
3898          }
3899        },
3900        "loc": {
3901          "start": {
3902            "line": 74,
3903            "column": 1
3904          },
3905          "end": {
3906            "line": 74,
3907            "column": 55
3908          }
3909        }
3910      },
3911      "loc": {
3912        "start": {
3913          "line": 74,
3914          "column": 1
3915        },
3916        "end": {
3917          "line": 74,
3918          "column": 55
3919        }
3920      }
3921    },
3922    {
3923      "type": "FunctionDeclaration",
3924      "function": {
3925        "type": "ScriptFunction",
3926        "id": {
3927          "type": "Identifier",
3928          "name": "func9",
3929          "decorators": [],
3930          "loc": {
3931            "start": {
3932              "line": 75,
3933              "column": 10
3934            },
3935            "end": {
3936              "line": 75,
3937              "column": 15
3938            }
3939          }
3940        },
3941        "generator": false,
3942        "async": false,
3943        "expression": false,
3944        "params": [
3945          {
3946            "type": "Identifier",
3947            "name": "a",
3948            "typeAnnotation": {
3949              "type": "TSUnionType",
3950              "types": [
3951                {
3952                  "type": "TSNumberKeyword",
3953                  "loc": {
3954                    "start": {
3955                      "line": 75,
3956                      "column": 19
3957                    },
3958                    "end": {
3959                      "line": 75,
3960                      "column": 25
3961                    }
3962                  }
3963                },
3964                {
3965                  "type": "TSStringKeyword",
3966                  "loc": {
3967                    "start": {
3968                      "line": 75,
3969                      "column": 28
3970                    },
3971                    "end": {
3972                      "line": 75,
3973                      "column": 34
3974                    }
3975                  }
3976                }
3977              ],
3978              "loc": {
3979                "start": {
3980                  "line": 75,
3981                  "column": 19
3982                },
3983                "end": {
3984                  "line": 75,
3985                  "column": 34
3986                }
3987              }
3988            },
3989            "decorators": [],
3990            "loc": {
3991              "start": {
3992                "line": 75,
3993                "column": 16
3994              },
3995              "end": {
3996                "line": 75,
3997                "column": 17
3998              }
3999            }
4000          },
4001          {
4002            "type": "Identifier",
4003            "name": "b",
4004            "typeAnnotation": {
4005              "type": "TSUnionType",
4006              "types": [
4007                {
4008                  "type": "TSNumberKeyword",
4009                  "loc": {
4010                    "start": {
4011                      "line": 75,
4012                      "column": 40
4013                    },
4014                    "end": {
4015                      "line": 75,
4016                      "column": 46
4017                    }
4018                  }
4019                },
4020                {
4021                  "type": "TSStringKeyword",
4022                  "loc": {
4023                    "start": {
4024                      "line": 75,
4025                      "column": 49
4026                    },
4027                    "end": {
4028                      "line": 75,
4029                      "column": 55
4030                    }
4031                  }
4032                }
4033              ],
4034              "loc": {
4035                "start": {
4036                  "line": 75,
4037                  "column": 40
4038                },
4039                "end": {
4040                  "line": 75,
4041                  "column": 55
4042                }
4043              }
4044            },
4045            "optional": true,
4046            "decorators": [],
4047            "loc": {
4048              "start": {
4049                "line": 75,
4050                "column": 36
4051              },
4052              "end": {
4053                "line": 75,
4054                "column": 37
4055              }
4056            }
4057          }
4058        ],
4059        "returnType": {
4060          "type": "TSUnionType",
4061          "types": [
4062            {
4063              "type": "TSNumberKeyword",
4064              "loc": {
4065                "start": {
4066                  "line": 75,
4067                  "column": 58
4068                },
4069                "end": {
4070                  "line": 75,
4071                  "column": 64
4072                }
4073              }
4074            },
4075            {
4076              "type": "TSStringKeyword",
4077              "loc": {
4078                "start": {
4079                  "line": 75,
4080                  "column": 67
4081                },
4082                "end": {
4083                  "line": 75,
4084                  "column": 73
4085                }
4086              }
4087            },
4088            {
4089              "type": "TSBooleanKeyword",
4090              "loc": {
4091                "start": {
4092                  "line": 75,
4093                  "column": 76
4094                },
4095                "end": {
4096                  "line": 75,
4097                  "column": 83
4098                }
4099              }
4100            }
4101          ],
4102          "loc": {
4103            "start": {
4104              "line": 75,
4105              "column": 58
4106            },
4107            "end": {
4108              "line": 75,
4109              "column": 83
4110            }
4111          }
4112        },
4113        "body": {
4114          "type": "BlockStatement",
4115          "statements": [
4116            {
4117              "type": "ReturnStatement",
4118              "argument": {
4119                "type": "BooleanLiteral",
4120                "value": true,
4121                "loc": {
4122                  "start": {
4123                    "line": 76,
4124                    "column": 12
4125                  },
4126                  "end": {
4127                    "line": 76,
4128                    "column": 16
4129                  }
4130                }
4131              },
4132              "loc": {
4133                "start": {
4134                  "line": 76,
4135                  "column": 5
4136                },
4137                "end": {
4138                  "line": 76,
4139                  "column": 17
4140                }
4141              }
4142            }
4143          ],
4144          "loc": {
4145            "start": {
4146              "line": 75,
4147              "column": 84
4148            },
4149            "end": {
4150              "line": 77,
4151              "column": 2
4152            }
4153          }
4154        },
4155        "loc": {
4156          "start": {
4157            "line": 75,
4158            "column": 1
4159          },
4160          "end": {
4161            "line": 77,
4162            "column": 2
4163          }
4164        }
4165      },
4166      "loc": {
4167        "start": {
4168          "line": 75,
4169          "column": 1
4170        },
4171        "end": {
4172          "line": 77,
4173          "column": 2
4174        }
4175      }
4176    },
4177    {
4178      "type": "VariableDeclaration",
4179      "declarations": [
4180        {
4181          "type": "VariableDeclarator",
4182          "id": {
4183            "type": "Identifier",
4184            "name": "k",
4185            "typeAnnotation": {
4186              "type": "TSNumberKeyword",
4187              "loc": {
4188                "start": {
4189                  "line": 79,
4190                  "column": 8
4191                },
4192                "end": {
4193                  "line": 79,
4194                  "column": 14
4195                }
4196              }
4197            },
4198            "decorators": [],
4199            "loc": {
4200              "start": {
4201                "line": 79,
4202                "column": 5
4203              },
4204              "end": {
4205                "line": 79,
4206                "column": 6
4207              }
4208            }
4209          },
4210          "init": {
4211            "type": "CallExpression",
4212            "callee": {
4213              "type": "Identifier",
4214              "name": "func9",
4215              "decorators": [],
4216              "loc": {
4217                "start": {
4218                  "line": 79,
4219                  "column": 17
4220                },
4221                "end": {
4222                  "line": 79,
4223                  "column": 22
4224                }
4225              }
4226            },
4227            "arguments": [
4228              {
4229                "type": "NumberLiteral",
4230                "value": 1,
4231                "loc": {
4232                  "start": {
4233                    "line": 79,
4234                    "column": 23
4235                  },
4236                  "end": {
4237                    "line": 79,
4238                    "column": 24
4239                  }
4240                }
4241              },
4242              {
4243                "type": "StringLiteral",
4244                "value": "foo",
4245                "loc": {
4246                  "start": {
4247                    "line": 79,
4248                    "column": 26
4249                  },
4250                  "end": {
4251                    "line": 79,
4252                    "column": 31
4253                  }
4254                }
4255              }
4256            ],
4257            "optional": false,
4258            "loc": {
4259              "start": {
4260                "line": 79,
4261                "column": 17
4262              },
4263              "end": {
4264                "line": 79,
4265                "column": 32
4266              }
4267            }
4268          },
4269          "loc": {
4270            "start": {
4271              "line": 79,
4272              "column": 5
4273            },
4274            "end": {
4275              "line": 79,
4276              "column": 32
4277            }
4278          }
4279        }
4280      ],
4281      "kind": "var",
4282      "loc": {
4283        "start": {
4284          "line": 79,
4285          "column": 1
4286        },
4287        "end": {
4288          "line": 79,
4289          "column": 33
4290        }
4291      }
4292    },
4293    {
4294      "type": "VariableDeclaration",
4295      "declarations": [
4296        {
4297          "type": "VariableDeclarator",
4298          "id": {
4299            "type": "Identifier",
4300            "name": "l",
4301            "typeAnnotation": {
4302              "type": "TSUnionType",
4303              "types": [
4304                {
4305                  "type": "TSNumberKeyword",
4306                  "loc": {
4307                    "start": {
4308                      "line": 80,
4309                      "column": 8
4310                    },
4311                    "end": {
4312                      "line": 80,
4313                      "column": 14
4314                    }
4315                  }
4316                },
4317                {
4318                  "type": "TSStringKeyword",
4319                  "loc": {
4320                    "start": {
4321                      "line": 80,
4322                      "column": 17
4323                    },
4324                    "end": {
4325                      "line": 80,
4326                      "column": 23
4327                    }
4328                  }
4329                }
4330              ],
4331              "loc": {
4332                "start": {
4333                  "line": 80,
4334                  "column": 8
4335                },
4336                "end": {
4337                  "line": 80,
4338                  "column": 23
4339                }
4340              }
4341            },
4342            "decorators": [],
4343            "loc": {
4344              "start": {
4345                "line": 80,
4346                "column": 5
4347              },
4348              "end": {
4349                "line": 80,
4350                "column": 6
4351              }
4352            }
4353          },
4354          "init": {
4355            "type": "CallExpression",
4356            "callee": {
4357              "type": "Identifier",
4358              "name": "func9",
4359              "decorators": [],
4360              "loc": {
4361                "start": {
4362                  "line": 80,
4363                  "column": 26
4364                },
4365                "end": {
4366                  "line": 80,
4367                  "column": 31
4368                }
4369              }
4370            },
4371            "arguments": [
4372              {
4373                "type": "StringLiteral",
4374                "value": "bar",
4375                "loc": {
4376                  "start": {
4377                    "line": 80,
4378                    "column": 32
4379                  },
4380                  "end": {
4381                    "line": 80,
4382                    "column": 37
4383                  }
4384                }
4385              },
4386              {
4387                "type": "NumberLiteral",
4388                "value": 2,
4389                "loc": {
4390                  "start": {
4391                    "line": 80,
4392                    "column": 39
4393                  },
4394                  "end": {
4395                    "line": 80,
4396                    "column": 40
4397                  }
4398                }
4399              }
4400            ],
4401            "optional": false,
4402            "loc": {
4403              "start": {
4404                "line": 80,
4405                "column": 26
4406              },
4407              "end": {
4408                "line": 80,
4409                "column": 41
4410              }
4411            }
4412          },
4413          "loc": {
4414            "start": {
4415              "line": 80,
4416              "column": 5
4417            },
4418            "end": {
4419              "line": 80,
4420              "column": 41
4421            }
4422          }
4423        }
4424      ],
4425      "kind": "var",
4426      "loc": {
4427        "start": {
4428          "line": 80,
4429          "column": 1
4430        },
4431        "end": {
4432          "line": 80,
4433          "column": 42
4434        }
4435      }
4436    },
4437    {
4438      "type": "TSDeclareFunction",
4439      "function": {
4440        "type": "ScriptFunction",
4441        "id": {
4442          "type": "Identifier",
4443          "name": "func10",
4444          "decorators": [],
4445          "loc": {
4446            "start": {
4447              "line": 82,
4448              "column": 10
4449            },
4450            "end": {
4451              "line": 82,
4452              "column": 16
4453            }
4454          }
4455        },
4456        "generator": false,
4457        "async": false,
4458        "expression": false,
4459        "params": [
4460          {
4461            "type": "Identifier",
4462            "name": "a",
4463            "typeAnnotation": {
4464              "type": "TSTypeLiteral",
4465              "members": [
4466                {
4467                  "type": "TSPropertySignature",
4468                  "computed": false,
4469                  "optional": false,
4470                  "readonly": false,
4471                  "key": {
4472                    "type": "Identifier",
4473                    "name": "x",
4474                    "decorators": [],
4475                    "loc": {
4476                      "start": {
4477                        "line": 82,
4478                        "column": 22
4479                      },
4480                      "end": {
4481                        "line": 82,
4482                        "column": 23
4483                      }
4484                    }
4485                  },
4486                  "typeAnnotation": {
4487                    "type": "TSNumberKeyword",
4488                    "loc": {
4489                      "start": {
4490                        "line": 82,
4491                        "column": 25
4492                      },
4493                      "end": {
4494                        "line": 82,
4495                        "column": 31
4496                      }
4497                    }
4498                  },
4499                  "loc": {
4500                    "start": {
4501                      "line": 82,
4502                      "column": 22
4503                    },
4504                    "end": {
4505                      "line": 82,
4506                      "column": 32
4507                    }
4508                  }
4509                },
4510                {
4511                  "type": "TSPropertySignature",
4512                  "computed": false,
4513                  "optional": false,
4514                  "readonly": false,
4515                  "key": {
4516                    "type": "Identifier",
4517                    "name": "y",
4518                    "decorators": [],
4519                    "loc": {
4520                      "start": {
4521                        "line": 82,
4522                        "column": 33
4523                      },
4524                      "end": {
4525                        "line": 82,
4526                        "column": 34
4527                      }
4528                    }
4529                  },
4530                  "typeAnnotation": {
4531                    "type": "TSStringKeyword",
4532                    "loc": {
4533                      "start": {
4534                        "line": 82,
4535                        "column": 36
4536                      },
4537                      "end": {
4538                        "line": 82,
4539                        "column": 42
4540                      }
4541                    }
4542                  },
4543                  "loc": {
4544                    "start": {
4545                      "line": 82,
4546                      "column": 33
4547                    },
4548                    "end": {
4549                      "line": 82,
4550                      "column": 44
4551                    }
4552                  }
4553                }
4554              ],
4555              "loc": {
4556                "start": {
4557                  "line": 82,
4558                  "column": 20
4559                },
4560                "end": {
4561                  "line": 82,
4562                  "column": 44
4563                }
4564              }
4565            },
4566            "decorators": [],
4567            "loc": {
4568              "start": {
4569                "line": 82,
4570                "column": 17
4571              },
4572              "end": {
4573                "line": 82,
4574                "column": 18
4575              }
4576            }
4577          }
4578        ],
4579        "returnType": {
4580          "type": "TSArrayType",
4581          "elementType": {
4582            "type": "TSNumberKeyword",
4583            "loc": {
4584              "start": {
4585                "line": 82,
4586                "column": 47
4587              },
4588              "end": {
4589                "line": 82,
4590                "column": 53
4591              }
4592            }
4593          },
4594          "loc": {
4595            "start": {
4596              "line": 82,
4597              "column": 47
4598            },
4599            "end": {
4600              "line": 82,
4601              "column": 55
4602            }
4603          }
4604        },
4605        "loc": {
4606          "start": {
4607            "line": 82,
4608            "column": 1
4609          },
4610          "end": {
4611            "line": 82,
4612            "column": 56
4613          }
4614        }
4615      },
4616      "loc": {
4617        "start": {
4618          "line": 82,
4619          "column": 1
4620        },
4621        "end": {
4622          "line": 82,
4623          "column": 56
4624        }
4625      }
4626    },
4627    {
4628      "type": "TSDeclareFunction",
4629      "function": {
4630        "type": "ScriptFunction",
4631        "id": {
4632          "type": "Identifier",
4633          "name": "func10",
4634          "decorators": [],
4635          "loc": {
4636            "start": {
4637              "line": 83,
4638              "column": 10
4639            },
4640            "end": {
4641              "line": 83,
4642              "column": 16
4643            }
4644          }
4645        },
4646        "generator": false,
4647        "async": false,
4648        "expression": false,
4649        "params": [
4650          {
4651            "type": "Identifier",
4652            "name": "a",
4653            "typeAnnotation": {
4654              "type": "TSTypeLiteral",
4655              "members": [
4656                {
4657                  "type": "TSPropertySignature",
4658                  "computed": false,
4659                  "optional": false,
4660                  "readonly": false,
4661                  "key": {
4662                    "type": "Identifier",
4663                    "name": "x",
4664                    "decorators": [],
4665                    "loc": {
4666                      "start": {
4667                        "line": 83,
4668                        "column": 22
4669                      },
4670                      "end": {
4671                        "line": 83,
4672                        "column": 23
4673                      }
4674                    }
4675                  },
4676                  "typeAnnotation": {
4677                    "type": "TSStringKeyword",
4678                    "loc": {
4679                      "start": {
4680                        "line": 83,
4681                        "column": 25
4682                      },
4683                      "end": {
4684                        "line": 83,
4685                        "column": 31
4686                      }
4687                    }
4688                  },
4689                  "loc": {
4690                    "start": {
4691                      "line": 83,
4692                      "column": 22
4693                    },
4694                    "end": {
4695                      "line": 83,
4696                      "column": 32
4697                    }
4698                  }
4699                },
4700                {
4701                  "type": "TSPropertySignature",
4702                  "computed": false,
4703                  "optional": false,
4704                  "readonly": false,
4705                  "key": {
4706                    "type": "Identifier",
4707                    "name": "y",
4708                    "decorators": [],
4709                    "loc": {
4710                      "start": {
4711                        "line": 83,
4712                        "column": 33
4713                      },
4714                      "end": {
4715                        "line": 83,
4716                        "column": 34
4717                      }
4718                    }
4719                  },
4720                  "typeAnnotation": {
4721                    "type": "TSNumberKeyword",
4722                    "loc": {
4723                      "start": {
4724                        "line": 83,
4725                        "column": 36
4726                      },
4727                      "end": {
4728                        "line": 83,
4729                        "column": 42
4730                      }
4731                    }
4732                  },
4733                  "loc": {
4734                    "start": {
4735                      "line": 83,
4736                      "column": 33
4737                    },
4738                    "end": {
4739                      "line": 83,
4740                      "column": 44
4741                    }
4742                  }
4743                }
4744              ],
4745              "loc": {
4746                "start": {
4747                  "line": 83,
4748                  "column": 20
4749                },
4750                "end": {
4751                  "line": 83,
4752                  "column": 44
4753                }
4754              }
4755            },
4756            "decorators": [],
4757            "loc": {
4758              "start": {
4759                "line": 83,
4760                "column": 17
4761              },
4762              "end": {
4763                "line": 83,
4764                "column": 18
4765              }
4766            }
4767          }
4768        ],
4769        "returnType": {
4770          "type": "TSArrayType",
4771          "elementType": {
4772            "type": "TSNumberKeyword",
4773            "loc": {
4774              "start": {
4775                "line": 83,
4776                "column": 47
4777              },
4778              "end": {
4779                "line": 83,
4780                "column": 53
4781              }
4782            }
4783          },
4784          "loc": {
4785            "start": {
4786              "line": 83,
4787              "column": 47
4788            },
4789            "end": {
4790              "line": 83,
4791              "column": 55
4792            }
4793          }
4794        },
4795        "loc": {
4796          "start": {
4797            "line": 83,
4798            "column": 1
4799          },
4800          "end": {
4801            "line": 83,
4802            "column": 56
4803          }
4804        }
4805      },
4806      "loc": {
4807        "start": {
4808          "line": 83,
4809          "column": 1
4810        },
4811        "end": {
4812          "line": 83,
4813          "column": 56
4814        }
4815      }
4816    },
4817    {
4818      "type": "FunctionDeclaration",
4819      "function": {
4820        "type": "ScriptFunction",
4821        "id": {
4822          "type": "Identifier",
4823          "name": "func10",
4824          "decorators": [],
4825          "loc": {
4826            "start": {
4827              "line": 84,
4828              "column": 10
4829            },
4830            "end": {
4831              "line": 84,
4832              "column": 16
4833            }
4834          }
4835        },
4836        "generator": false,
4837        "async": false,
4838        "expression": false,
4839        "params": [
4840          {
4841            "type": "Identifier",
4842            "name": "a",
4843            "typeAnnotation": {
4844              "type": "TSTypeLiteral",
4845              "members": [
4846                {
4847                  "type": "TSPropertySignature",
4848                  "computed": false,
4849                  "optional": false,
4850                  "readonly": false,
4851                  "key": {
4852                    "type": "Identifier",
4853                    "name": "x",
4854                    "decorators": [],
4855                    "loc": {
4856                      "start": {
4857                        "line": 84,
4858                        "column": 22
4859                      },
4860                      "end": {
4861                        "line": 84,
4862                        "column": 23
4863                      }
4864                    }
4865                  },
4866                  "typeAnnotation": {
4867                    "type": "TSUnionType",
4868                    "types": [
4869                      {
4870                        "type": "TSNumberKeyword",
4871                        "loc": {
4872                          "start": {
4873                            "line": 84,
4874                            "column": 25
4875                          },
4876                          "end": {
4877                            "line": 84,
4878                            "column": 31
4879                          }
4880                        }
4881                      },
4882                      {
4883                        "type": "TSStringKeyword",
4884                        "loc": {
4885                          "start": {
4886                            "line": 84,
4887                            "column": 34
4888                          },
4889                          "end": {
4890                            "line": 84,
4891                            "column": 40
4892                          }
4893                        }
4894                      }
4895                    ],
4896                    "loc": {
4897                      "start": {
4898                        "line": 84,
4899                        "column": 25
4900                      },
4901                      "end": {
4902                        "line": 84,
4903                        "column": 40
4904                      }
4905                    }
4906                  },
4907                  "loc": {
4908                    "start": {
4909                      "line": 84,
4910                      "column": 22
4911                    },
4912                    "end": {
4913                      "line": 84,
4914                      "column": 42
4915                    }
4916                  }
4917                }
4918              ],
4919              "loc": {
4920                "start": {
4921                  "line": 84,
4922                  "column": 20
4923                },
4924                "end": {
4925                  "line": 84,
4926                  "column": 42
4927                }
4928              }
4929            },
4930            "decorators": [],
4931            "loc": {
4932              "start": {
4933                "line": 84,
4934                "column": 17
4935              },
4936              "end": {
4937                "line": 84,
4938                "column": 18
4939              }
4940            }
4941          }
4942        ],
4943        "body": {
4944          "type": "BlockStatement",
4945          "statements": [
4946            {
4947              "type": "ReturnStatement",
4948              "argument": {
4949                "type": "ArrayExpression",
4950                "elements": [
4951                  {
4952                    "type": "NumberLiteral",
4953                    "value": 1,
4954                    "loc": {
4955                      "start": {
4956                        "line": 85,
4957                        "column": 13
4958                      },
4959                      "end": {
4960                        "line": 85,
4961                        "column": 14
4962                      }
4963                    }
4964                  },
4965                  {
4966                    "type": "NumberLiteral",
4967                    "value": 2,
4968                    "loc": {
4969                      "start": {
4970                        "line": 85,
4971                        "column": 16
4972                      },
4973                      "end": {
4974                        "line": 85,
4975                        "column": 17
4976                      }
4977                    }
4978                  },
4979                  {
4980                    "type": "NumberLiteral",
4981                    "value": 3,
4982                    "loc": {
4983                      "start": {
4984                        "line": 85,
4985                        "column": 19
4986                      },
4987                      "end": {
4988                        "line": 85,
4989                        "column": 20
4990                      }
4991                    }
4992                  }
4993                ],
4994                "loc": {
4995                  "start": {
4996                    "line": 85,
4997                    "column": 12
4998                  },
4999                  "end": {
5000                    "line": 85,
5001                    "column": 21
5002                  }
5003                }
5004              },
5005              "loc": {
5006                "start": {
5007                  "line": 85,
5008                  "column": 5
5009                },
5010                "end": {
5011                  "line": 85,
5012                  "column": 22
5013                }
5014              }
5015            }
5016          ],
5017          "loc": {
5018            "start": {
5019              "line": 84,
5020              "column": 44
5021            },
5022            "end": {
5023              "line": 86,
5024              "column": 2
5025            }
5026          }
5027        },
5028        "loc": {
5029          "start": {
5030            "line": 84,
5031            "column": 1
5032          },
5033          "end": {
5034            "line": 86,
5035            "column": 2
5036          }
5037        }
5038      },
5039      "loc": {
5040        "start": {
5041          "line": 84,
5042          "column": 1
5043        },
5044        "end": {
5045          "line": 86,
5046          "column": 2
5047        }
5048      }
5049    },
5050    {
5051      "type": "VariableDeclaration",
5052      "declarations": [
5053        {
5054          "type": "VariableDeclarator",
5055          "id": {
5056            "type": "Identifier",
5057            "name": "m",
5058            "typeAnnotation": {
5059              "type": "TSArrayType",
5060              "elementType": {
5061                "type": "TSNumberKeyword",
5062                "loc": {
5063                  "start": {
5064                    "line": 88,
5065                    "column": 8
5066                  },
5067                  "end": {
5068                    "line": 88,
5069                    "column": 14
5070                  }
5071                }
5072              },
5073              "loc": {
5074                "start": {
5075                  "line": 88,
5076                  "column": 8
5077                },
5078                "end": {
5079                  "line": 88,
5080                  "column": 16
5081                }
5082              }
5083            },
5084            "decorators": [],
5085            "loc": {
5086              "start": {
5087                "line": 88,
5088                "column": 5
5089              },
5090              "end": {
5091                "line": 88,
5092                "column": 6
5093              }
5094            }
5095          },
5096          "init": {
5097            "type": "CallExpression",
5098            "callee": {
5099              "type": "Identifier",
5100              "name": "func10",
5101              "decorators": [],
5102              "loc": {
5103                "start": {
5104                  "line": 88,
5105                  "column": 19
5106                },
5107                "end": {
5108                  "line": 88,
5109                  "column": 25
5110                }
5111              }
5112            },
5113            "arguments": [
5114              {
5115                "type": "ObjectExpression",
5116                "properties": [
5117                  {
5118                    "type": "Property",
5119                    "method": false,
5120                    "shorthand": false,
5121                    "computed": false,
5122                    "key": {
5123                      "type": "Identifier",
5124                      "name": "x",
5125                      "decorators": [],
5126                      "loc": {
5127                        "start": {
5128                          "line": 88,
5129                          "column": 28
5130                        },
5131                        "end": {
5132                          "line": 88,
5133                          "column": 29
5134                        }
5135                      }
5136                    },
5137                    "value": {
5138                      "type": "NumberLiteral",
5139                      "value": 1,
5140                      "loc": {
5141                        "start": {
5142                          "line": 88,
5143                          "column": 31
5144                        },
5145                        "end": {
5146                          "line": 88,
5147                          "column": 32
5148                        }
5149                      }
5150                    },
5151                    "kind": "init",
5152                    "loc": {
5153                      "start": {
5154                        "line": 88,
5155                        "column": 28
5156                      },
5157                      "end": {
5158                        "line": 88,
5159                        "column": 32
5160                      }
5161                    }
5162                  },
5163                  {
5164                    "type": "Property",
5165                    "method": false,
5166                    "shorthand": false,
5167                    "computed": false,
5168                    "key": {
5169                      "type": "Identifier",
5170                      "name": "y",
5171                      "decorators": [],
5172                      "loc": {
5173                        "start": {
5174                          "line": 88,
5175                          "column": 34
5176                        },
5177                        "end": {
5178                          "line": 88,
5179                          "column": 35
5180                        }
5181                      }
5182                    },
5183                    "value": {
5184                      "type": "StringLiteral",
5185                      "value": "foo",
5186                      "loc": {
5187                        "start": {
5188                          "line": 88,
5189                          "column": 37
5190                        },
5191                        "end": {
5192                          "line": 88,
5193                          "column": 42
5194                        }
5195                      }
5196                    },
5197                    "kind": "init",
5198                    "loc": {
5199                      "start": {
5200                        "line": 88,
5201                        "column": 34
5202                      },
5203                      "end": {
5204                        "line": 88,
5205                        "column": 42
5206                      }
5207                    }
5208                  }
5209                ],
5210                "loc": {
5211                  "start": {
5212                    "line": 88,
5213                    "column": 26
5214                  },
5215                  "end": {
5216                    "line": 88,
5217                    "column": 44
5218                  }
5219                }
5220              }
5221            ],
5222            "optional": false,
5223            "loc": {
5224              "start": {
5225                "line": 88,
5226                "column": 19
5227              },
5228              "end": {
5229                "line": 88,
5230                "column": 45
5231              }
5232            }
5233          },
5234          "loc": {
5235            "start": {
5236              "line": 88,
5237              "column": 5
5238            },
5239            "end": {
5240              "line": 88,
5241              "column": 45
5242            }
5243          }
5244        }
5245      ],
5246      "kind": "var",
5247      "loc": {
5248        "start": {
5249          "line": 88,
5250          "column": 1
5251        },
5252        "end": {
5253          "line": 88,
5254          "column": 46
5255        }
5256      }
5257    },
5258    {
5259      "type": "VariableDeclaration",
5260      "declarations": [
5261        {
5262          "type": "VariableDeclarator",
5263          "id": {
5264            "type": "Identifier",
5265            "name": "m",
5266            "typeAnnotation": {
5267              "type": "TSArrayType",
5268              "elementType": {
5269                "type": "TSNumberKeyword",
5270                "loc": {
5271                  "start": {
5272                    "line": 89,
5273                    "column": 8
5274                  },
5275                  "end": {
5276                    "line": 89,
5277                    "column": 14
5278                  }
5279                }
5280              },
5281              "loc": {
5282                "start": {
5283                  "line": 89,
5284                  "column": 8
5285                },
5286                "end": {
5287                  "line": 89,
5288                  "column": 16
5289                }
5290              }
5291            },
5292            "decorators": [],
5293            "loc": {
5294              "start": {
5295                "line": 89,
5296                "column": 5
5297              },
5298              "end": {
5299                "line": 89,
5300                "column": 6
5301              }
5302            }
5303          },
5304          "init": {
5305            "type": "CallExpression",
5306            "callee": {
5307              "type": "Identifier",
5308              "name": "func10",
5309              "decorators": [],
5310              "loc": {
5311                "start": {
5312                  "line": 89,
5313                  "column": 19
5314                },
5315                "end": {
5316                  "line": 89,
5317                  "column": 25
5318                }
5319              }
5320            },
5321            "arguments": [
5322              {
5323                "type": "ObjectExpression",
5324                "properties": [
5325                  {
5326                    "type": "Property",
5327                    "method": false,
5328                    "shorthand": false,
5329                    "computed": false,
5330                    "key": {
5331                      "type": "Identifier",
5332                      "name": "x",
5333                      "decorators": [],
5334                      "loc": {
5335                        "start": {
5336                          "line": 89,
5337                          "column": 28
5338                        },
5339                        "end": {
5340                          "line": 89,
5341                          "column": 29
5342                        }
5343                      }
5344                    },
5345                    "value": {
5346                      "type": "StringLiteral",
5347                      "value": "bar",
5348                      "loc": {
5349                        "start": {
5350                          "line": 89,
5351                          "column": 31
5352                        },
5353                        "end": {
5354                          "line": 89,
5355                          "column": 36
5356                        }
5357                      }
5358                    },
5359                    "kind": "init",
5360                    "loc": {
5361                      "start": {
5362                        "line": 89,
5363                        "column": 28
5364                      },
5365                      "end": {
5366                        "line": 89,
5367                        "column": 36
5368                      }
5369                    }
5370                  },
5371                  {
5372                    "type": "Property",
5373                    "method": false,
5374                    "shorthand": false,
5375                    "computed": false,
5376                    "key": {
5377                      "type": "Identifier",
5378                      "name": "y",
5379                      "decorators": [],
5380                      "loc": {
5381                        "start": {
5382                          "line": 89,
5383                          "column": 38
5384                        },
5385                        "end": {
5386                          "line": 89,
5387                          "column": 39
5388                        }
5389                      }
5390                    },
5391                    "value": {
5392                      "type": "NumberLiteral",
5393                      "value": 2,
5394                      "loc": {
5395                        "start": {
5396                          "line": 89,
5397                          "column": 41
5398                        },
5399                        "end": {
5400                          "line": 89,
5401                          "column": 42
5402                        }
5403                      }
5404                    },
5405                    "kind": "init",
5406                    "loc": {
5407                      "start": {
5408                        "line": 89,
5409                        "column": 38
5410                      },
5411                      "end": {
5412                        "line": 89,
5413                        "column": 42
5414                      }
5415                    }
5416                  }
5417                ],
5418                "loc": {
5419                  "start": {
5420                    "line": 89,
5421                    "column": 26
5422                  },
5423                  "end": {
5424                    "line": 89,
5425                    "column": 44
5426                  }
5427                }
5428              }
5429            ],
5430            "optional": false,
5431            "loc": {
5432              "start": {
5433                "line": 89,
5434                "column": 19
5435              },
5436              "end": {
5437                "line": 89,
5438                "column": 45
5439              }
5440            }
5441          },
5442          "loc": {
5443            "start": {
5444              "line": 89,
5445              "column": 5
5446            },
5447            "end": {
5448              "line": 89,
5449              "column": 45
5450            }
5451          }
5452        }
5453      ],
5454      "kind": "var",
5455      "loc": {
5456        "start": {
5457          "line": 89,
5458          "column": 1
5459        },
5460        "end": {
5461          "line": 89,
5462          "column": 46
5463        }
5464      }
5465    }
5466  ],
5467  "loc": {
5468    "start": {
5469      "line": 1,
5470      "column": 1
5471    },
5472    "end": {
5473      "line": 90,
5474      "column": 1
5475    }
5476  }
5477}
5478