• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1{
2  "type": "Program",
3  "statements": [
4    {
5      "type": "VariableDeclaration",
6      "declarations": [
7        {
8          "type": "VariableDeclarator",
9          "id": {
10            "type": "Identifier",
11            "name": "a",
12            "typeAnnotation": {
13              "type": "TSAnyKeyword",
14              "loc": {
15                "start": {
16                  "line": 17,
17                  "column": 8,
18                  "program": "varRedeclaration.ts"
19                },
20                "end": {
21                  "line": 17,
22                  "column": 11,
23                  "program": "varRedeclaration.ts"
24                }
25              }
26            },
27            "decorators": [],
28            "loc": {
29              "start": {
30                "line": 17,
31                "column": 5,
32                "program": "varRedeclaration.ts"
33              },
34              "end": {
35                "line": 17,
36                "column": 6,
37                "program": "varRedeclaration.ts"
38              }
39            }
40          },
41          "init": null,
42          "loc": {
43            "start": {
44              "line": 17,
45              "column": 5,
46              "program": "varRedeclaration.ts"
47            },
48            "end": {
49              "line": 17,
50              "column": 6,
51              "program": "varRedeclaration.ts"
52            }
53          }
54        }
55      ],
56      "kind": "var",
57      "loc": {
58        "start": {
59          "line": 17,
60          "column": 1,
61          "program": "varRedeclaration.ts"
62        },
63        "end": {
64          "line": 17,
65          "column": 12,
66          "program": "varRedeclaration.ts"
67        }
68      }
69    },
70    {
71      "type": "VariableDeclaration",
72      "declarations": [
73        {
74          "type": "VariableDeclarator",
75          "id": {
76            "type": "Identifier",
77            "name": "a",
78            "typeAnnotation": {
79              "type": "TSAnyKeyword",
80              "loc": {
81                "start": {
82                  "line": 18,
83                  "column": 8,
84                  "program": "varRedeclaration.ts"
85                },
86                "end": {
87                  "line": 18,
88                  "column": 11,
89                  "program": "varRedeclaration.ts"
90                }
91              }
92            },
93            "decorators": [],
94            "loc": {
95              "start": {
96                "line": 18,
97                "column": 5,
98                "program": "varRedeclaration.ts"
99              },
100              "end": {
101                "line": 18,
102                "column": 6,
103                "program": "varRedeclaration.ts"
104              }
105            }
106          },
107          "init": null,
108          "loc": {
109            "start": {
110              "line": 18,
111              "column": 5,
112              "program": "varRedeclaration.ts"
113            },
114            "end": {
115              "line": 18,
116              "column": 6,
117              "program": "varRedeclaration.ts"
118            }
119          }
120        }
121      ],
122      "kind": "var",
123      "loc": {
124        "start": {
125          "line": 18,
126          "column": 1,
127          "program": "varRedeclaration.ts"
128        },
129        "end": {
130          "line": 18,
131          "column": 12,
132          "program": "varRedeclaration.ts"
133        }
134      }
135    },
136    {
137      "type": "VariableDeclaration",
138      "declarations": [
139        {
140          "type": "VariableDeclarator",
141          "id": {
142            "type": "Identifier",
143            "name": "b",
144            "typeAnnotation": {
145              "type": "TSNumberKeyword",
146              "loc": {
147                "start": {
148                  "line": 20,
149                  "column": 8,
150                  "program": "varRedeclaration.ts"
151                },
152                "end": {
153                  "line": 20,
154                  "column": 14,
155                  "program": "varRedeclaration.ts"
156                }
157              }
158            },
159            "decorators": [],
160            "loc": {
161              "start": {
162                "line": 20,
163                "column": 5,
164                "program": "varRedeclaration.ts"
165              },
166              "end": {
167                "line": 20,
168                "column": 6,
169                "program": "varRedeclaration.ts"
170              }
171            }
172          },
173          "init": null,
174          "loc": {
175            "start": {
176              "line": 20,
177              "column": 5,
178              "program": "varRedeclaration.ts"
179            },
180            "end": {
181              "line": 20,
182              "column": 6,
183              "program": "varRedeclaration.ts"
184            }
185          }
186        }
187      ],
188      "kind": "var",
189      "loc": {
190        "start": {
191          "line": 20,
192          "column": 1,
193          "program": "varRedeclaration.ts"
194        },
195        "end": {
196          "line": 20,
197          "column": 15,
198          "program": "varRedeclaration.ts"
199        }
200      }
201    },
202    {
203      "type": "VariableDeclaration",
204      "declarations": [
205        {
206          "type": "VariableDeclarator",
207          "id": {
208            "type": "Identifier",
209            "name": "b",
210            "typeAnnotation": {
211              "type": "TSNumberKeyword",
212              "loc": {
213                "start": {
214                  "line": 21,
215                  "column": 8,
216                  "program": "varRedeclaration.ts"
217                },
218                "end": {
219                  "line": 21,
220                  "column": 14,
221                  "program": "varRedeclaration.ts"
222                }
223              }
224            },
225            "decorators": [],
226            "loc": {
227              "start": {
228                "line": 21,
229                "column": 5,
230                "program": "varRedeclaration.ts"
231              },
232              "end": {
233                "line": 21,
234                "column": 6,
235                "program": "varRedeclaration.ts"
236              }
237            }
238          },
239          "init": null,
240          "loc": {
241            "start": {
242              "line": 21,
243              "column": 5,
244              "program": "varRedeclaration.ts"
245            },
246            "end": {
247              "line": 21,
248              "column": 6,
249              "program": "varRedeclaration.ts"
250            }
251          }
252        }
253      ],
254      "kind": "var",
255      "loc": {
256        "start": {
257          "line": 21,
258          "column": 1,
259          "program": "varRedeclaration.ts"
260        },
261        "end": {
262          "line": 21,
263          "column": 15,
264          "program": "varRedeclaration.ts"
265        }
266      }
267    },
268    {
269      "type": "VariableDeclaration",
270      "declarations": [
271        {
272          "type": "VariableDeclarator",
273          "id": {
274            "type": "Identifier",
275            "name": "c",
276            "typeAnnotation": {
277              "type": "TSUnionType",
278              "types": [
279                {
280                  "type": "TSNumberKeyword",
281                  "loc": {
282                    "start": {
283                      "line": 23,
284                      "column": 8,
285                      "program": "varRedeclaration.ts"
286                    },
287                    "end": {
288                      "line": 23,
289                      "column": 14,
290                      "program": "varRedeclaration.ts"
291                    }
292                  }
293                },
294                {
295                  "type": "TSStringKeyword",
296                  "loc": {
297                    "start": {
298                      "line": 23,
299                      "column": 17,
300                      "program": "varRedeclaration.ts"
301                    },
302                    "end": {
303                      "line": 23,
304                      "column": 23,
305                      "program": "varRedeclaration.ts"
306                    }
307                  }
308                }
309              ],
310              "loc": {
311                "start": {
312                  "line": 23,
313                  "column": 8,
314                  "program": "varRedeclaration.ts"
315                },
316                "end": {
317                  "line": 23,
318                  "column": 23,
319                  "program": "varRedeclaration.ts"
320                }
321              }
322            },
323            "decorators": [],
324            "loc": {
325              "start": {
326                "line": 23,
327                "column": 5,
328                "program": "varRedeclaration.ts"
329              },
330              "end": {
331                "line": 23,
332                "column": 6,
333                "program": "varRedeclaration.ts"
334              }
335            }
336          },
337          "init": null,
338          "loc": {
339            "start": {
340              "line": 23,
341              "column": 5,
342              "program": "varRedeclaration.ts"
343            },
344            "end": {
345              "line": 23,
346              "column": 6,
347              "program": "varRedeclaration.ts"
348            }
349          }
350        }
351      ],
352      "kind": "var",
353      "loc": {
354        "start": {
355          "line": 23,
356          "column": 1,
357          "program": "varRedeclaration.ts"
358        },
359        "end": {
360          "line": 23,
361          "column": 24,
362          "program": "varRedeclaration.ts"
363        }
364      }
365    },
366    {
367      "type": "VariableDeclaration",
368      "declarations": [
369        {
370          "type": "VariableDeclarator",
371          "id": {
372            "type": "Identifier",
373            "name": "c",
374            "typeAnnotation": {
375              "type": "TSUnionType",
376              "types": [
377                {
378                  "type": "TSStringKeyword",
379                  "loc": {
380                    "start": {
381                      "line": 24,
382                      "column": 8,
383                      "program": "varRedeclaration.ts"
384                    },
385                    "end": {
386                      "line": 24,
387                      "column": 14,
388                      "program": "varRedeclaration.ts"
389                    }
390                  }
391                },
392                {
393                  "type": "TSNumberKeyword",
394                  "loc": {
395                    "start": {
396                      "line": 24,
397                      "column": 17,
398                      "program": "varRedeclaration.ts"
399                    },
400                    "end": {
401                      "line": 24,
402                      "column": 23,
403                      "program": "varRedeclaration.ts"
404                    }
405                  }
406                }
407              ],
408              "loc": {
409                "start": {
410                  "line": 24,
411                  "column": 8,
412                  "program": "varRedeclaration.ts"
413                },
414                "end": {
415                  "line": 24,
416                  "column": 23,
417                  "program": "varRedeclaration.ts"
418                }
419              }
420            },
421            "decorators": [],
422            "loc": {
423              "start": {
424                "line": 24,
425                "column": 5,
426                "program": "varRedeclaration.ts"
427              },
428              "end": {
429                "line": 24,
430                "column": 6,
431                "program": "varRedeclaration.ts"
432              }
433            }
434          },
435          "init": null,
436          "loc": {
437            "start": {
438              "line": 24,
439              "column": 5,
440              "program": "varRedeclaration.ts"
441            },
442            "end": {
443              "line": 24,
444              "column": 6,
445              "program": "varRedeclaration.ts"
446            }
447          }
448        }
449      ],
450      "kind": "var",
451      "loc": {
452        "start": {
453          "line": 24,
454          "column": 1,
455          "program": "varRedeclaration.ts"
456        },
457        "end": {
458          "line": 24,
459          "column": 24,
460          "program": "varRedeclaration.ts"
461        }
462      }
463    },
464    {
465      "type": "VariableDeclaration",
466      "declarations": [
467        {
468          "type": "VariableDeclarator",
469          "id": {
470            "type": "Identifier",
471            "name": "d",
472            "typeAnnotation": {
473              "type": "TSTypeLiteral",
474              "members": [
475                {
476                  "type": "TSPropertySignature",
477                  "computed": false,
478                  "optional": false,
479                  "readonly": false,
480                  "key": {
481                    "type": "Identifier",
482                    "name": "a",
483                    "decorators": [],
484                    "loc": {
485                      "start": {
486                        "line": 26,
487                        "column": 10,
488                        "program": "varRedeclaration.ts"
489                      },
490                      "end": {
491                        "line": 26,
492                        "column": 11,
493                        "program": "varRedeclaration.ts"
494                      }
495                    }
496                  },
497                  "typeAnnotation": {
498                    "type": "TSNumberKeyword",
499                    "loc": {
500                      "start": {
501                        "line": 26,
502                        "column": 13,
503                        "program": "varRedeclaration.ts"
504                      },
505                      "end": {
506                        "line": 26,
507                        "column": 19,
508                        "program": "varRedeclaration.ts"
509                      }
510                    }
511                  },
512                  "loc": {
513                    "start": {
514                      "line": 26,
515                      "column": 10,
516                      "program": "varRedeclaration.ts"
517                    },
518                    "end": {
519                      "line": 26,
520                      "column": 20,
521                      "program": "varRedeclaration.ts"
522                    }
523                  }
524                },
525                {
526                  "type": "TSPropertySignature",
527                  "computed": false,
528                  "optional": false,
529                  "readonly": false,
530                  "key": {
531                    "type": "Identifier",
532                    "name": "b",
533                    "decorators": [],
534                    "loc": {
535                      "start": {
536                        "line": 26,
537                        "column": 21,
538                        "program": "varRedeclaration.ts"
539                      },
540                      "end": {
541                        "line": 26,
542                        "column": 22,
543                        "program": "varRedeclaration.ts"
544                      }
545                    }
546                  },
547                  "typeAnnotation": {
548                    "type": "TSStringKeyword",
549                    "loc": {
550                      "start": {
551                        "line": 26,
552                        "column": 24,
553                        "program": "varRedeclaration.ts"
554                      },
555                      "end": {
556                        "line": 26,
557                        "column": 30,
558                        "program": "varRedeclaration.ts"
559                      }
560                    }
561                  },
562                  "loc": {
563                    "start": {
564                      "line": 26,
565                      "column": 21,
566                      "program": "varRedeclaration.ts"
567                    },
568                    "end": {
569                      "line": 26,
570                      "column": 32,
571                      "program": "varRedeclaration.ts"
572                    }
573                  }
574                }
575              ],
576              "loc": {
577                "start": {
578                  "line": 26,
579                  "column": 8,
580                  "program": "varRedeclaration.ts"
581                },
582                "end": {
583                  "line": 26,
584                  "column": 32,
585                  "program": "varRedeclaration.ts"
586                }
587              }
588            },
589            "decorators": [],
590            "loc": {
591              "start": {
592                "line": 26,
593                "column": 5,
594                "program": "varRedeclaration.ts"
595              },
596              "end": {
597                "line": 26,
598                "column": 6,
599                "program": "varRedeclaration.ts"
600              }
601            }
602          },
603          "init": null,
604          "loc": {
605            "start": {
606              "line": 26,
607              "column": 5,
608              "program": "varRedeclaration.ts"
609            },
610            "end": {
611              "line": 26,
612              "column": 6,
613              "program": "varRedeclaration.ts"
614            }
615          }
616        }
617      ],
618      "kind": "var",
619      "loc": {
620        "start": {
621          "line": 26,
622          "column": 1,
623          "program": "varRedeclaration.ts"
624        },
625        "end": {
626          "line": 26,
627          "column": 33,
628          "program": "varRedeclaration.ts"
629        }
630      }
631    },
632    {
633      "type": "VariableDeclaration",
634      "declarations": [
635        {
636          "type": "VariableDeclarator",
637          "id": {
638            "type": "Identifier",
639            "name": "d",
640            "typeAnnotation": {
641              "type": "TSTypeLiteral",
642              "members": [
643                {
644                  "type": "TSPropertySignature",
645                  "computed": false,
646                  "optional": false,
647                  "readonly": false,
648                  "key": {
649                    "type": "Identifier",
650                    "name": "b",
651                    "decorators": [],
652                    "loc": {
653                      "start": {
654                        "line": 27,
655                        "column": 10,
656                        "program": "varRedeclaration.ts"
657                      },
658                      "end": {
659                        "line": 27,
660                        "column": 11,
661                        "program": "varRedeclaration.ts"
662                      }
663                    }
664                  },
665                  "typeAnnotation": {
666                    "type": "TSStringKeyword",
667                    "loc": {
668                      "start": {
669                        "line": 27,
670                        "column": 13,
671                        "program": "varRedeclaration.ts"
672                      },
673                      "end": {
674                        "line": 27,
675                        "column": 19,
676                        "program": "varRedeclaration.ts"
677                      }
678                    }
679                  },
680                  "loc": {
681                    "start": {
682                      "line": 27,
683                      "column": 10,
684                      "program": "varRedeclaration.ts"
685                    },
686                    "end": {
687                      "line": 27,
688                      "column": 20,
689                      "program": "varRedeclaration.ts"
690                    }
691                  }
692                },
693                {
694                  "type": "TSPropertySignature",
695                  "computed": false,
696                  "optional": false,
697                  "readonly": false,
698                  "key": {
699                    "type": "Identifier",
700                    "name": "a",
701                    "decorators": [],
702                    "loc": {
703                      "start": {
704                        "line": 27,
705                        "column": 21,
706                        "program": "varRedeclaration.ts"
707                      },
708                      "end": {
709                        "line": 27,
710                        "column": 22,
711                        "program": "varRedeclaration.ts"
712                      }
713                    }
714                  },
715                  "typeAnnotation": {
716                    "type": "TSNumberKeyword",
717                    "loc": {
718                      "start": {
719                        "line": 27,
720                        "column": 24,
721                        "program": "varRedeclaration.ts"
722                      },
723                      "end": {
724                        "line": 27,
725                        "column": 30,
726                        "program": "varRedeclaration.ts"
727                      }
728                    }
729                  },
730                  "loc": {
731                    "start": {
732                      "line": 27,
733                      "column": 21,
734                      "program": "varRedeclaration.ts"
735                    },
736                    "end": {
737                      "line": 27,
738                      "column": 32,
739                      "program": "varRedeclaration.ts"
740                    }
741                  }
742                }
743              ],
744              "loc": {
745                "start": {
746                  "line": 27,
747                  "column": 8,
748                  "program": "varRedeclaration.ts"
749                },
750                "end": {
751                  "line": 27,
752                  "column": 32,
753                  "program": "varRedeclaration.ts"
754                }
755              }
756            },
757            "decorators": [],
758            "loc": {
759              "start": {
760                "line": 27,
761                "column": 5,
762                "program": "varRedeclaration.ts"
763              },
764              "end": {
765                "line": 27,
766                "column": 6,
767                "program": "varRedeclaration.ts"
768              }
769            }
770          },
771          "init": null,
772          "loc": {
773            "start": {
774              "line": 27,
775              "column": 5,
776              "program": "varRedeclaration.ts"
777            },
778            "end": {
779              "line": 27,
780              "column": 6,
781              "program": "varRedeclaration.ts"
782            }
783          }
784        }
785      ],
786      "kind": "var",
787      "loc": {
788        "start": {
789          "line": 27,
790          "column": 1,
791          "program": "varRedeclaration.ts"
792        },
793        "end": {
794          "line": 27,
795          "column": 33,
796          "program": "varRedeclaration.ts"
797        }
798      }
799    },
800    {
801      "type": "VariableDeclaration",
802      "declarations": [
803        {
804          "type": "VariableDeclarator",
805          "id": {
806            "type": "Identifier",
807            "name": "e",
808            "typeAnnotation": {
809              "type": "TSFunctionType",
810              "params": [
811                {
812                  "type": "Identifier",
813                  "name": "a",
814                  "typeAnnotation": {
815                    "type": "TSNumberKeyword",
816                    "loc": {
817                      "start": {
818                        "line": 29,
819                        "column": 12,
820                        "program": "varRedeclaration.ts"
821                      },
822                      "end": {
823                        "line": 29,
824                        "column": 18,
825                        "program": "varRedeclaration.ts"
826                      }
827                    }
828                  },
829                  "decorators": [],
830                  "loc": {
831                    "start": {
832                      "line": 29,
833                      "column": 9,
834                      "program": "varRedeclaration.ts"
835                    },
836                    "end": {
837                      "line": 29,
838                      "column": 10,
839                      "program": "varRedeclaration.ts"
840                    }
841                  }
842                },
843                {
844                  "type": "Identifier",
845                  "name": "b",
846                  "typeAnnotation": {
847                    "type": "TSArrayType",
848                    "elementType": {
849                      "type": "TSParenthesizedType",
850                      "typeAnnotation": {
851                        "type": "TSUnionType",
852                        "types": [
853                          {
854                            "type": "TSStringKeyword",
855                            "loc": {
856                              "start": {
857                                "line": 29,
858                                "column": 24,
859                                "program": "varRedeclaration.ts"
860                              },
861                              "end": {
862                                "line": 29,
863                                "column": 30,
864                                "program": "varRedeclaration.ts"
865                              }
866                            }
867                          },
868                          {
869                            "type": "TSNumberKeyword",
870                            "loc": {
871                              "start": {
872                                "line": 29,
873                                "column": 33,
874                                "program": "varRedeclaration.ts"
875                              },
876                              "end": {
877                                "line": 29,
878                                "column": 39,
879                                "program": "varRedeclaration.ts"
880                              }
881                            }
882                          }
883                        ],
884                        "loc": {
885                          "start": {
886                            "line": 29,
887                            "column": 24,
888                            "program": "varRedeclaration.ts"
889                          },
890                          "end": {
891                            "line": 29,
892                            "column": 39,
893                            "program": "varRedeclaration.ts"
894                          }
895                        }
896                      },
897                      "loc": {
898                        "start": {
899                          "line": 29,
900                          "column": 23,
901                          "program": "varRedeclaration.ts"
902                        },
903                        "end": {
904                          "line": 29,
905                          "column": 40,
906                          "program": "varRedeclaration.ts"
907                        }
908                      }
909                    },
910                    "annotations": [],
911                    "loc": {
912                      "start": {
913                        "line": 29,
914                        "column": 23,
915                        "program": "varRedeclaration.ts"
916                      },
917                      "end": {
918                        "line": 29,
919                        "column": 42,
920                        "program": "varRedeclaration.ts"
921                      }
922                    }
923                  },
924                  "decorators": [],
925                  "loc": {
926                    "start": {
927                      "line": 29,
928                      "column": 20,
929                      "program": "varRedeclaration.ts"
930                    },
931                    "end": {
932                      "line": 29,
933                      "column": 21,
934                      "program": "varRedeclaration.ts"
935                    }
936                  }
937                }
938              ],
939              "returnType": {
940                "type": "TSVoidKeyword",
941                "loc": {
942                  "start": {
943                    "line": 29,
944                    "column": 47,
945                    "program": "varRedeclaration.ts"
946                  },
947                  "end": {
948                    "line": 29,
949                    "column": 51,
950                    "program": "varRedeclaration.ts"
951                  }
952                }
953              },
954              "loc": {
955                "start": {
956                  "line": 29,
957                  "column": 8,
958                  "program": "varRedeclaration.ts"
959                },
960                "end": {
961                  "line": 29,
962                  "column": 51,
963                  "program": "varRedeclaration.ts"
964                }
965              }
966            },
967            "decorators": [],
968            "loc": {
969              "start": {
970                "line": 29,
971                "column": 5,
972                "program": "varRedeclaration.ts"
973              },
974              "end": {
975                "line": 29,
976                "column": 6,
977                "program": "varRedeclaration.ts"
978              }
979            }
980          },
981          "init": null,
982          "loc": {
983            "start": {
984              "line": 29,
985              "column": 5,
986              "program": "varRedeclaration.ts"
987            },
988            "end": {
989              "line": 29,
990              "column": 6,
991              "program": "varRedeclaration.ts"
992            }
993          }
994        }
995      ],
996      "kind": "var",
997      "loc": {
998        "start": {
999          "line": 29,
1000          "column": 1,
1001          "program": "varRedeclaration.ts"
1002        },
1003        "end": {
1004          "line": 29,
1005          "column": 52,
1006          "program": "varRedeclaration.ts"
1007        }
1008      }
1009    },
1010    {
1011      "type": "VariableDeclaration",
1012      "declarations": [
1013        {
1014          "type": "VariableDeclarator",
1015          "id": {
1016            "type": "Identifier",
1017            "name": "e",
1018            "typeAnnotation": {
1019              "type": "TSFunctionType",
1020              "params": [
1021                {
1022                  "type": "Identifier",
1023                  "name": "a",
1024                  "typeAnnotation": {
1025                    "type": "TSNumberKeyword",
1026                    "loc": {
1027                      "start": {
1028                        "line": 30,
1029                        "column": 12,
1030                        "program": "varRedeclaration.ts"
1031                      },
1032                      "end": {
1033                        "line": 30,
1034                        "column": 18,
1035                        "program": "varRedeclaration.ts"
1036                      }
1037                    }
1038                  },
1039                  "decorators": [],
1040                  "loc": {
1041                    "start": {
1042                      "line": 30,
1043                      "column": 9,
1044                      "program": "varRedeclaration.ts"
1045                    },
1046                    "end": {
1047                      "line": 30,
1048                      "column": 10,
1049                      "program": "varRedeclaration.ts"
1050                    }
1051                  }
1052                },
1053                {
1054                  "type": "Identifier",
1055                  "name": "b",
1056                  "typeAnnotation": {
1057                    "type": "TSArrayType",
1058                    "elementType": {
1059                      "type": "TSParenthesizedType",
1060                      "typeAnnotation": {
1061                        "type": "TSUnionType",
1062                        "types": [
1063                          {
1064                            "type": "TSStringKeyword",
1065                            "loc": {
1066                              "start": {
1067                                "line": 30,
1068                                "column": 24,
1069                                "program": "varRedeclaration.ts"
1070                              },
1071                              "end": {
1072                                "line": 30,
1073                                "column": 30,
1074                                "program": "varRedeclaration.ts"
1075                              }
1076                            }
1077                          },
1078                          {
1079                            "type": "TSNumberKeyword",
1080                            "loc": {
1081                              "start": {
1082                                "line": 30,
1083                                "column": 33,
1084                                "program": "varRedeclaration.ts"
1085                              },
1086                              "end": {
1087                                "line": 30,
1088                                "column": 39,
1089                                "program": "varRedeclaration.ts"
1090                              }
1091                            }
1092                          }
1093                        ],
1094                        "loc": {
1095                          "start": {
1096                            "line": 30,
1097                            "column": 24,
1098                            "program": "varRedeclaration.ts"
1099                          },
1100                          "end": {
1101                            "line": 30,
1102                            "column": 39,
1103                            "program": "varRedeclaration.ts"
1104                          }
1105                        }
1106                      },
1107                      "loc": {
1108                        "start": {
1109                          "line": 30,
1110                          "column": 23,
1111                          "program": "varRedeclaration.ts"
1112                        },
1113                        "end": {
1114                          "line": 30,
1115                          "column": 40,
1116                          "program": "varRedeclaration.ts"
1117                        }
1118                      }
1119                    },
1120                    "annotations": [],
1121                    "loc": {
1122                      "start": {
1123                        "line": 30,
1124                        "column": 23,
1125                        "program": "varRedeclaration.ts"
1126                      },
1127                      "end": {
1128                        "line": 30,
1129                        "column": 42,
1130                        "program": "varRedeclaration.ts"
1131                      }
1132                    }
1133                  },
1134                  "decorators": [],
1135                  "loc": {
1136                    "start": {
1137                      "line": 30,
1138                      "column": 20,
1139                      "program": "varRedeclaration.ts"
1140                    },
1141                    "end": {
1142                      "line": 30,
1143                      "column": 21,
1144                      "program": "varRedeclaration.ts"
1145                    }
1146                  }
1147                }
1148              ],
1149              "returnType": {
1150                "type": "TSVoidKeyword",
1151                "loc": {
1152                  "start": {
1153                    "line": 30,
1154                    "column": 47,
1155                    "program": "varRedeclaration.ts"
1156                  },
1157                  "end": {
1158                    "line": 30,
1159                    "column": 51,
1160                    "program": "varRedeclaration.ts"
1161                  }
1162                }
1163              },
1164              "loc": {
1165                "start": {
1166                  "line": 30,
1167                  "column": 8,
1168                  "program": "varRedeclaration.ts"
1169                },
1170                "end": {
1171                  "line": 30,
1172                  "column": 51,
1173                  "program": "varRedeclaration.ts"
1174                }
1175              }
1176            },
1177            "decorators": [],
1178            "loc": {
1179              "start": {
1180                "line": 30,
1181                "column": 5,
1182                "program": "varRedeclaration.ts"
1183              },
1184              "end": {
1185                "line": 30,
1186                "column": 6,
1187                "program": "varRedeclaration.ts"
1188              }
1189            }
1190          },
1191          "init": null,
1192          "loc": {
1193            "start": {
1194              "line": 30,
1195              "column": 5,
1196              "program": "varRedeclaration.ts"
1197            },
1198            "end": {
1199              "line": 30,
1200              "column": 6,
1201              "program": "varRedeclaration.ts"
1202            }
1203          }
1204        }
1205      ],
1206      "kind": "var",
1207      "loc": {
1208        "start": {
1209          "line": 30,
1210          "column": 1,
1211          "program": "varRedeclaration.ts"
1212        },
1213        "end": {
1214          "line": 30,
1215          "column": 52,
1216          "program": "varRedeclaration.ts"
1217        }
1218      }
1219    },
1220    {
1221      "type": "VariableDeclaration",
1222      "declarations": [
1223        {
1224          "type": "VariableDeclarator",
1225          "id": {
1226            "type": "Identifier",
1227            "name": "f",
1228            "typeAnnotation": {
1229              "type": "TSUnionType",
1230              "types": [
1231                {
1232                  "type": "TSTypeLiteral",
1233                  "members": [
1234                    {
1235                      "type": "TSPropertySignature",
1236                      "computed": false,
1237                      "optional": false,
1238                      "readonly": false,
1239                      "key": {
1240                        "type": "Identifier",
1241                        "name": "a",
1242                        "decorators": [],
1243                        "loc": {
1244                          "start": {
1245                            "line": 32,
1246                            "column": 10,
1247                            "program": "varRedeclaration.ts"
1248                          },
1249                          "end": {
1250                            "line": 32,
1251                            "column": 11,
1252                            "program": "varRedeclaration.ts"
1253                          }
1254                        }
1255                      },
1256                      "typeAnnotation": {
1257                        "type": "TSNumberKeyword",
1258                        "loc": {
1259                          "start": {
1260                            "line": 32,
1261                            "column": 13,
1262                            "program": "varRedeclaration.ts"
1263                          },
1264                          "end": {
1265                            "line": 32,
1266                            "column": 19,
1267                            "program": "varRedeclaration.ts"
1268                          }
1269                        }
1270                      },
1271                      "loc": {
1272                        "start": {
1273                          "line": 32,
1274                          "column": 10,
1275                          "program": "varRedeclaration.ts"
1276                        },
1277                        "end": {
1278                          "line": 32,
1279                          "column": 20,
1280                          "program": "varRedeclaration.ts"
1281                        }
1282                      }
1283                    },
1284                    {
1285                      "type": "TSPropertySignature",
1286                      "computed": false,
1287                      "optional": false,
1288                      "readonly": false,
1289                      "key": {
1290                        "type": "Identifier",
1291                        "name": "b",
1292                        "decorators": [],
1293                        "loc": {
1294                          "start": {
1295                            "line": 32,
1296                            "column": 21,
1297                            "program": "varRedeclaration.ts"
1298                          },
1299                          "end": {
1300                            "line": 32,
1301                            "column": 22,
1302                            "program": "varRedeclaration.ts"
1303                          }
1304                        }
1305                      },
1306                      "typeAnnotation": {
1307                        "type": "TSStringKeyword",
1308                        "loc": {
1309                          "start": {
1310                            "line": 32,
1311                            "column": 24,
1312                            "program": "varRedeclaration.ts"
1313                          },
1314                          "end": {
1315                            "line": 32,
1316                            "column": 30,
1317                            "program": "varRedeclaration.ts"
1318                          }
1319                        }
1320                      },
1321                      "loc": {
1322                        "start": {
1323                          "line": 32,
1324                          "column": 21,
1325                          "program": "varRedeclaration.ts"
1326                        },
1327                        "end": {
1328                          "line": 32,
1329                          "column": 32,
1330                          "program": "varRedeclaration.ts"
1331                        }
1332                      }
1333                    }
1334                  ],
1335                  "loc": {
1336                    "start": {
1337                      "line": 32,
1338                      "column": 8,
1339                      "program": "varRedeclaration.ts"
1340                    },
1341                    "end": {
1342                      "line": 32,
1343                      "column": 32,
1344                      "program": "varRedeclaration.ts"
1345                    }
1346                  }
1347                },
1348                {
1349                  "type": "TSTypeLiteral",
1350                  "members": [
1351                    {
1352                      "type": "TSPropertySignature",
1353                      "computed": false,
1354                      "optional": false,
1355                      "readonly": false,
1356                      "key": {
1357                        "type": "Identifier",
1358                        "name": "a",
1359                        "decorators": [],
1360                        "loc": {
1361                          "start": {
1362                            "line": 32,
1363                            "column": 37,
1364                            "program": "varRedeclaration.ts"
1365                          },
1366                          "end": {
1367                            "line": 32,
1368                            "column": 38,
1369                            "program": "varRedeclaration.ts"
1370                          }
1371                        }
1372                      },
1373                      "typeAnnotation": {
1374                        "type": "TSArrayType",
1375                        "elementType": {
1376                          "type": "TSNumberKeyword",
1377                          "loc": {
1378                            "start": {
1379                              "line": 32,
1380                              "column": 40,
1381                              "program": "varRedeclaration.ts"
1382                            },
1383                            "end": {
1384                              "line": 32,
1385                              "column": 46,
1386                              "program": "varRedeclaration.ts"
1387                            }
1388                          }
1389                        },
1390                        "annotations": [],
1391                        "loc": {
1392                          "start": {
1393                            "line": 32,
1394                            "column": 40,
1395                            "program": "varRedeclaration.ts"
1396                          },
1397                          "end": {
1398                            "line": 32,
1399                            "column": 48,
1400                            "program": "varRedeclaration.ts"
1401                          }
1402                        }
1403                      },
1404                      "loc": {
1405                        "start": {
1406                          "line": 32,
1407                          "column": 37,
1408                          "program": "varRedeclaration.ts"
1409                        },
1410                        "end": {
1411                          "line": 32,
1412                          "column": 49,
1413                          "program": "varRedeclaration.ts"
1414                        }
1415                      }
1416                    },
1417                    {
1418                      "type": "TSPropertySignature",
1419                      "computed": false,
1420                      "optional": true,
1421                      "readonly": false,
1422                      "key": {
1423                        "type": "Identifier",
1424                        "name": "b",
1425                        "decorators": [],
1426                        "loc": {
1427                          "start": {
1428                            "line": 32,
1429                            "column": 50,
1430                            "program": "varRedeclaration.ts"
1431                          },
1432                          "end": {
1433                            "line": 32,
1434                            "column": 51,
1435                            "program": "varRedeclaration.ts"
1436                          }
1437                        }
1438                      },
1439                      "typeAnnotation": {
1440                        "type": "TSStringKeyword",
1441                        "loc": {
1442                          "start": {
1443                            "line": 32,
1444                            "column": 54,
1445                            "program": "varRedeclaration.ts"
1446                          },
1447                          "end": {
1448                            "line": 32,
1449                            "column": 60,
1450                            "program": "varRedeclaration.ts"
1451                          }
1452                        }
1453                      },
1454                      "loc": {
1455                        "start": {
1456                          "line": 32,
1457                          "column": 50,
1458                          "program": "varRedeclaration.ts"
1459                        },
1460                        "end": {
1461                          "line": 32,
1462                          "column": 62,
1463                          "program": "varRedeclaration.ts"
1464                        }
1465                      }
1466                    }
1467                  ],
1468                  "loc": {
1469                    "start": {
1470                      "line": 32,
1471                      "column": 35,
1472                      "program": "varRedeclaration.ts"
1473                    },
1474                    "end": {
1475                      "line": 32,
1476                      "column": 62,
1477                      "program": "varRedeclaration.ts"
1478                    }
1479                  }
1480                }
1481              ],
1482              "loc": {
1483                "start": {
1484                  "line": 32,
1485                  "column": 8,
1486                  "program": "varRedeclaration.ts"
1487                },
1488                "end": {
1489                  "line": 32,
1490                  "column": 62,
1491                  "program": "varRedeclaration.ts"
1492                }
1493              }
1494            },
1495            "decorators": [],
1496            "loc": {
1497              "start": {
1498                "line": 32,
1499                "column": 5,
1500                "program": "varRedeclaration.ts"
1501              },
1502              "end": {
1503                "line": 32,
1504                "column": 6,
1505                "program": "varRedeclaration.ts"
1506              }
1507            }
1508          },
1509          "init": null,
1510          "loc": {
1511            "start": {
1512              "line": 32,
1513              "column": 5,
1514              "program": "varRedeclaration.ts"
1515            },
1516            "end": {
1517              "line": 32,
1518              "column": 6,
1519              "program": "varRedeclaration.ts"
1520            }
1521          }
1522        }
1523      ],
1524      "kind": "var",
1525      "loc": {
1526        "start": {
1527          "line": 32,
1528          "column": 1,
1529          "program": "varRedeclaration.ts"
1530        },
1531        "end": {
1532          "line": 32,
1533          "column": 63,
1534          "program": "varRedeclaration.ts"
1535        }
1536      }
1537    },
1538    {
1539      "type": "VariableDeclaration",
1540      "declarations": [
1541        {
1542          "type": "VariableDeclarator",
1543          "id": {
1544            "type": "Identifier",
1545            "name": "f",
1546            "typeAnnotation": {
1547              "type": "TSUnionType",
1548              "types": [
1549                {
1550                  "type": "TSTypeLiteral",
1551                  "members": [
1552                    {
1553                      "type": "TSPropertySignature",
1554                      "computed": false,
1555                      "optional": false,
1556                      "readonly": false,
1557                      "key": {
1558                        "type": "Identifier",
1559                        "name": "a",
1560                        "decorators": [],
1561                        "loc": {
1562                          "start": {
1563                            "line": 33,
1564                            "column": 10,
1565                            "program": "varRedeclaration.ts"
1566                          },
1567                          "end": {
1568                            "line": 33,
1569                            "column": 11,
1570                            "program": "varRedeclaration.ts"
1571                          }
1572                        }
1573                      },
1574                      "typeAnnotation": {
1575                        "type": "TSNumberKeyword",
1576                        "loc": {
1577                          "start": {
1578                            "line": 33,
1579                            "column": 13,
1580                            "program": "varRedeclaration.ts"
1581                          },
1582                          "end": {
1583                            "line": 33,
1584                            "column": 19,
1585                            "program": "varRedeclaration.ts"
1586                          }
1587                        }
1588                      },
1589                      "loc": {
1590                        "start": {
1591                          "line": 33,
1592                          "column": 10,
1593                          "program": "varRedeclaration.ts"
1594                        },
1595                        "end": {
1596                          "line": 33,
1597                          "column": 20,
1598                          "program": "varRedeclaration.ts"
1599                        }
1600                      }
1601                    },
1602                    {
1603                      "type": "TSPropertySignature",
1604                      "computed": false,
1605                      "optional": false,
1606                      "readonly": false,
1607                      "key": {
1608                        "type": "Identifier",
1609                        "name": "b",
1610                        "decorators": [],
1611                        "loc": {
1612                          "start": {
1613                            "line": 33,
1614                            "column": 21,
1615                            "program": "varRedeclaration.ts"
1616                          },
1617                          "end": {
1618                            "line": 33,
1619                            "column": 22,
1620                            "program": "varRedeclaration.ts"
1621                          }
1622                        }
1623                      },
1624                      "typeAnnotation": {
1625                        "type": "TSStringKeyword",
1626                        "loc": {
1627                          "start": {
1628                            "line": 33,
1629                            "column": 24,
1630                            "program": "varRedeclaration.ts"
1631                          },
1632                          "end": {
1633                            "line": 33,
1634                            "column": 30,
1635                            "program": "varRedeclaration.ts"
1636                          }
1637                        }
1638                      },
1639                      "loc": {
1640                        "start": {
1641                          "line": 33,
1642                          "column": 21,
1643                          "program": "varRedeclaration.ts"
1644                        },
1645                        "end": {
1646                          "line": 33,
1647                          "column": 32,
1648                          "program": "varRedeclaration.ts"
1649                        }
1650                      }
1651                    }
1652                  ],
1653                  "loc": {
1654                    "start": {
1655                      "line": 33,
1656                      "column": 8,
1657                      "program": "varRedeclaration.ts"
1658                    },
1659                    "end": {
1660                      "line": 33,
1661                      "column": 32,
1662                      "program": "varRedeclaration.ts"
1663                    }
1664                  }
1665                },
1666                {
1667                  "type": "TSTypeLiteral",
1668                  "members": [
1669                    {
1670                      "type": "TSPropertySignature",
1671                      "computed": false,
1672                      "optional": false,
1673                      "readonly": false,
1674                      "key": {
1675                        "type": "Identifier",
1676                        "name": "a",
1677                        "decorators": [],
1678                        "loc": {
1679                          "start": {
1680                            "line": 33,
1681                            "column": 37,
1682                            "program": "varRedeclaration.ts"
1683                          },
1684                          "end": {
1685                            "line": 33,
1686                            "column": 38,
1687                            "program": "varRedeclaration.ts"
1688                          }
1689                        }
1690                      },
1691                      "typeAnnotation": {
1692                        "type": "TSArrayType",
1693                        "elementType": {
1694                          "type": "TSNumberKeyword",
1695                          "loc": {
1696                            "start": {
1697                              "line": 33,
1698                              "column": 40,
1699                              "program": "varRedeclaration.ts"
1700                            },
1701                            "end": {
1702                              "line": 33,
1703                              "column": 46,
1704                              "program": "varRedeclaration.ts"
1705                            }
1706                          }
1707                        },
1708                        "annotations": [],
1709                        "loc": {
1710                          "start": {
1711                            "line": 33,
1712                            "column": 40,
1713                            "program": "varRedeclaration.ts"
1714                          },
1715                          "end": {
1716                            "line": 33,
1717                            "column": 48,
1718                            "program": "varRedeclaration.ts"
1719                          }
1720                        }
1721                      },
1722                      "loc": {
1723                        "start": {
1724                          "line": 33,
1725                          "column": 37,
1726                          "program": "varRedeclaration.ts"
1727                        },
1728                        "end": {
1729                          "line": 33,
1730                          "column": 49,
1731                          "program": "varRedeclaration.ts"
1732                        }
1733                      }
1734                    },
1735                    {
1736                      "type": "TSPropertySignature",
1737                      "computed": false,
1738                      "optional": true,
1739                      "readonly": false,
1740                      "key": {
1741                        "type": "Identifier",
1742                        "name": "b",
1743                        "decorators": [],
1744                        "loc": {
1745                          "start": {
1746                            "line": 33,
1747                            "column": 50,
1748                            "program": "varRedeclaration.ts"
1749                          },
1750                          "end": {
1751                            "line": 33,
1752                            "column": 51,
1753                            "program": "varRedeclaration.ts"
1754                          }
1755                        }
1756                      },
1757                      "typeAnnotation": {
1758                        "type": "TSStringKeyword",
1759                        "loc": {
1760                          "start": {
1761                            "line": 33,
1762                            "column": 54,
1763                            "program": "varRedeclaration.ts"
1764                          },
1765                          "end": {
1766                            "line": 33,
1767                            "column": 60,
1768                            "program": "varRedeclaration.ts"
1769                          }
1770                        }
1771                      },
1772                      "loc": {
1773                        "start": {
1774                          "line": 33,
1775                          "column": 50,
1776                          "program": "varRedeclaration.ts"
1777                        },
1778                        "end": {
1779                          "line": 33,
1780                          "column": 62,
1781                          "program": "varRedeclaration.ts"
1782                        }
1783                      }
1784                    }
1785                  ],
1786                  "loc": {
1787                    "start": {
1788                      "line": 33,
1789                      "column": 35,
1790                      "program": "varRedeclaration.ts"
1791                    },
1792                    "end": {
1793                      "line": 33,
1794                      "column": 62,
1795                      "program": "varRedeclaration.ts"
1796                    }
1797                  }
1798                }
1799              ],
1800              "loc": {
1801                "start": {
1802                  "line": 33,
1803                  "column": 8,
1804                  "program": "varRedeclaration.ts"
1805                },
1806                "end": {
1807                  "line": 33,
1808                  "column": 62,
1809                  "program": "varRedeclaration.ts"
1810                }
1811              }
1812            },
1813            "decorators": [],
1814            "loc": {
1815              "start": {
1816                "line": 33,
1817                "column": 5,
1818                "program": "varRedeclaration.ts"
1819              },
1820              "end": {
1821                "line": 33,
1822                "column": 6,
1823                "program": "varRedeclaration.ts"
1824              }
1825            }
1826          },
1827          "init": null,
1828          "loc": {
1829            "start": {
1830              "line": 33,
1831              "column": 5,
1832              "program": "varRedeclaration.ts"
1833            },
1834            "end": {
1835              "line": 33,
1836              "column": 6,
1837              "program": "varRedeclaration.ts"
1838            }
1839          }
1840        }
1841      ],
1842      "kind": "var",
1843      "loc": {
1844        "start": {
1845          "line": 33,
1846          "column": 1,
1847          "program": "varRedeclaration.ts"
1848        },
1849        "end": {
1850          "line": 33,
1851          "column": 63,
1852          "program": "varRedeclaration.ts"
1853        }
1854      }
1855    },
1856    {
1857      "type": "TSInterfaceDeclaration",
1858      "body": {
1859        "type": "TSInterfaceBody",
1860        "body": [
1861          {
1862            "type": "TSPropertySignature",
1863            "computed": false,
1864            "optional": false,
1865            "readonly": false,
1866            "key": {
1867              "type": "Identifier",
1868              "name": "a",
1869              "decorators": [],
1870              "loc": {
1871                "start": {
1872                  "line": 36,
1873                  "column": 5,
1874                  "program": "varRedeclaration.ts"
1875                },
1876                "end": {
1877                  "line": 36,
1878                  "column": 6,
1879                  "program": "varRedeclaration.ts"
1880                }
1881              }
1882            },
1883            "typeAnnotation": {
1884              "type": "TSNumberKeyword",
1885              "loc": {
1886                "start": {
1887                  "line": 36,
1888                  "column": 8,
1889                  "program": "varRedeclaration.ts"
1890                },
1891                "end": {
1892                  "line": 36,
1893                  "column": 14,
1894                  "program": "varRedeclaration.ts"
1895                }
1896              }
1897            },
1898            "loc": {
1899              "start": {
1900                "line": 36,
1901                "column": 5,
1902                "program": "varRedeclaration.ts"
1903              },
1904              "end": {
1905                "line": 36,
1906                "column": 15,
1907                "program": "varRedeclaration.ts"
1908              }
1909            }
1910          },
1911          {
1912            "type": "TSPropertySignature",
1913            "computed": false,
1914            "optional": false,
1915            "readonly": false,
1916            "key": {
1917              "type": "Identifier",
1918              "name": "b",
1919              "decorators": [],
1920              "loc": {
1921                "start": {
1922                  "line": 37,
1923                  "column": 5,
1924                  "program": "varRedeclaration.ts"
1925                },
1926                "end": {
1927                  "line": 37,
1928                  "column": 6,
1929                  "program": "varRedeclaration.ts"
1930                }
1931              }
1932            },
1933            "typeAnnotation": {
1934              "type": "TSStringKeyword",
1935              "loc": {
1936                "start": {
1937                  "line": 37,
1938                  "column": 8,
1939                  "program": "varRedeclaration.ts"
1940                },
1941                "end": {
1942                  "line": 37,
1943                  "column": 14,
1944                  "program": "varRedeclaration.ts"
1945                }
1946              }
1947            },
1948            "loc": {
1949              "start": {
1950                "line": 37,
1951                "column": 5,
1952                "program": "varRedeclaration.ts"
1953              },
1954              "end": {
1955                "line": 37,
1956                "column": 15,
1957                "program": "varRedeclaration.ts"
1958              }
1959            }
1960          }
1961        ],
1962        "loc": {
1963          "start": {
1964            "line": 35,
1965            "column": 22,
1966            "program": "varRedeclaration.ts"
1967          },
1968          "end": {
1969            "line": 38,
1970            "column": 2,
1971            "program": "varRedeclaration.ts"
1972          }
1973        }
1974      },
1975      "id": {
1976        "type": "Identifier",
1977        "name": "interface1",
1978        "decorators": [],
1979        "loc": {
1980          "start": {
1981            "line": 35,
1982            "column": 11,
1983            "program": "varRedeclaration.ts"
1984          },
1985          "end": {
1986            "line": 35,
1987            "column": 21,
1988            "program": "varRedeclaration.ts"
1989          }
1990        }
1991      },
1992      "extends": [],
1993      "loc": {
1994        "start": {
1995          "line": 35,
1996          "column": 1,
1997          "program": "varRedeclaration.ts"
1998        },
1999        "end": {
2000          "line": 38,
2001          "column": 2,
2002          "program": "varRedeclaration.ts"
2003        }
2004      }
2005    },
2006    {
2007      "type": "TSInterfaceDeclaration",
2008      "body": {
2009        "type": "TSInterfaceBody",
2010        "body": [
2011          {
2012            "type": "TSPropertySignature",
2013            "computed": false,
2014            "optional": false,
2015            "readonly": false,
2016            "key": {
2017              "type": "Identifier",
2018              "name": "a",
2019              "decorators": [],
2020              "loc": {
2021                "start": {
2022                  "line": 41,
2023                  "column": 5,
2024                  "program": "varRedeclaration.ts"
2025                },
2026                "end": {
2027                  "line": 41,
2028                  "column": 6,
2029                  "program": "varRedeclaration.ts"
2030                }
2031              }
2032            },
2033            "typeAnnotation": {
2034              "type": "TSNumberKeyword",
2035              "loc": {
2036                "start": {
2037                  "line": 41,
2038                  "column": 8,
2039                  "program": "varRedeclaration.ts"
2040                },
2041                "end": {
2042                  "line": 41,
2043                  "column": 14,
2044                  "program": "varRedeclaration.ts"
2045                }
2046              }
2047            },
2048            "loc": {
2049              "start": {
2050                "line": 41,
2051                "column": 5,
2052                "program": "varRedeclaration.ts"
2053              },
2054              "end": {
2055                "line": 41,
2056                "column": 15,
2057                "program": "varRedeclaration.ts"
2058              }
2059            }
2060          },
2061          {
2062            "type": "TSPropertySignature",
2063            "computed": false,
2064            "optional": false,
2065            "readonly": false,
2066            "key": {
2067              "type": "Identifier",
2068              "name": "b",
2069              "decorators": [],
2070              "loc": {
2071                "start": {
2072                  "line": 42,
2073                  "column": 5,
2074                  "program": "varRedeclaration.ts"
2075                },
2076                "end": {
2077                  "line": 42,
2078                  "column": 6,
2079                  "program": "varRedeclaration.ts"
2080                }
2081              }
2082            },
2083            "typeAnnotation": {
2084              "type": "TSStringKeyword",
2085              "loc": {
2086                "start": {
2087                  "line": 42,
2088                  "column": 8,
2089                  "program": "varRedeclaration.ts"
2090                },
2091                "end": {
2092                  "line": 42,
2093                  "column": 14,
2094                  "program": "varRedeclaration.ts"
2095                }
2096              }
2097            },
2098            "loc": {
2099              "start": {
2100                "line": 42,
2101                "column": 5,
2102                "program": "varRedeclaration.ts"
2103              },
2104              "end": {
2105                "line": 42,
2106                "column": 15,
2107                "program": "varRedeclaration.ts"
2108              }
2109            }
2110          }
2111        ],
2112        "loc": {
2113          "start": {
2114            "line": 40,
2115            "column": 22,
2116            "program": "varRedeclaration.ts"
2117          },
2118          "end": {
2119            "line": 43,
2120            "column": 2,
2121            "program": "varRedeclaration.ts"
2122          }
2123        }
2124      },
2125      "id": {
2126        "type": "Identifier",
2127        "name": "interface2",
2128        "decorators": [],
2129        "loc": {
2130          "start": {
2131            "line": 40,
2132            "column": 11,
2133            "program": "varRedeclaration.ts"
2134          },
2135          "end": {
2136            "line": 40,
2137            "column": 21,
2138            "program": "varRedeclaration.ts"
2139          }
2140        }
2141      },
2142      "extends": [],
2143      "loc": {
2144        "start": {
2145          "line": 40,
2146          "column": 1,
2147          "program": "varRedeclaration.ts"
2148        },
2149        "end": {
2150          "line": 43,
2151          "column": 2,
2152          "program": "varRedeclaration.ts"
2153        }
2154      }
2155    },
2156    {
2157      "type": "VariableDeclaration",
2158      "declarations": [
2159        {
2160          "type": "VariableDeclarator",
2161          "id": {
2162            "type": "Identifier",
2163            "name": "g",
2164            "typeAnnotation": {
2165              "type": "TSTypeReference",
2166              "typeName": {
2167                "type": "Identifier",
2168                "name": "interface1",
2169                "decorators": [],
2170                "loc": {
2171                  "start": {
2172                    "line": 45,
2173                    "column": 8,
2174                    "program": "varRedeclaration.ts"
2175                  },
2176                  "end": {
2177                    "line": 45,
2178                    "column": 18,
2179                    "program": "varRedeclaration.ts"
2180                  }
2181                }
2182              },
2183              "loc": {
2184                "start": {
2185                  "line": 45,
2186                  "column": 8,
2187                  "program": "varRedeclaration.ts"
2188                },
2189                "end": {
2190                  "line": 45,
2191                  "column": 18,
2192                  "program": "varRedeclaration.ts"
2193                }
2194              }
2195            },
2196            "decorators": [],
2197            "loc": {
2198              "start": {
2199                "line": 45,
2200                "column": 5,
2201                "program": "varRedeclaration.ts"
2202              },
2203              "end": {
2204                "line": 45,
2205                "column": 6,
2206                "program": "varRedeclaration.ts"
2207              }
2208            }
2209          },
2210          "init": null,
2211          "loc": {
2212            "start": {
2213              "line": 45,
2214              "column": 5,
2215              "program": "varRedeclaration.ts"
2216            },
2217            "end": {
2218              "line": 45,
2219              "column": 6,
2220              "program": "varRedeclaration.ts"
2221            }
2222          }
2223        }
2224      ],
2225      "kind": "var",
2226      "loc": {
2227        "start": {
2228          "line": 45,
2229          "column": 1,
2230          "program": "varRedeclaration.ts"
2231        },
2232        "end": {
2233          "line": 45,
2234          "column": 19,
2235          "program": "varRedeclaration.ts"
2236        }
2237      }
2238    },
2239    {
2240      "type": "VariableDeclaration",
2241      "declarations": [
2242        {
2243          "type": "VariableDeclarator",
2244          "id": {
2245            "type": "Identifier",
2246            "name": "g",
2247            "typeAnnotation": {
2248              "type": "TSTypeReference",
2249              "typeName": {
2250                "type": "Identifier",
2251                "name": "interface2",
2252                "decorators": [],
2253                "loc": {
2254                  "start": {
2255                    "line": 46,
2256                    "column": 8,
2257                    "program": "varRedeclaration.ts"
2258                  },
2259                  "end": {
2260                    "line": 46,
2261                    "column": 18,
2262                    "program": "varRedeclaration.ts"
2263                  }
2264                }
2265              },
2266              "loc": {
2267                "start": {
2268                  "line": 46,
2269                  "column": 8,
2270                  "program": "varRedeclaration.ts"
2271                },
2272                "end": {
2273                  "line": 46,
2274                  "column": 18,
2275                  "program": "varRedeclaration.ts"
2276                }
2277              }
2278            },
2279            "decorators": [],
2280            "loc": {
2281              "start": {
2282                "line": 46,
2283                "column": 5,
2284                "program": "varRedeclaration.ts"
2285              },
2286              "end": {
2287                "line": 46,
2288                "column": 6,
2289                "program": "varRedeclaration.ts"
2290              }
2291            }
2292          },
2293          "init": null,
2294          "loc": {
2295            "start": {
2296              "line": 46,
2297              "column": 5,
2298              "program": "varRedeclaration.ts"
2299            },
2300            "end": {
2301              "line": 46,
2302              "column": 6,
2303              "program": "varRedeclaration.ts"
2304            }
2305          }
2306        }
2307      ],
2308      "kind": "var",
2309      "loc": {
2310        "start": {
2311          "line": 46,
2312          "column": 1,
2313          "program": "varRedeclaration.ts"
2314        },
2315        "end": {
2316          "line": 46,
2317          "column": 19,
2318          "program": "varRedeclaration.ts"
2319        }
2320      }
2321    },
2322    {
2323      "type": "TSInterfaceDeclaration",
2324      "body": {
2325        "type": "TSInterfaceBody",
2326        "body": [
2327          {
2328            "type": "TSPropertySignature",
2329            "computed": false,
2330            "optional": false,
2331            "readonly": false,
2332            "key": {
2333              "type": "Identifier",
2334              "name": "c",
2335              "decorators": [],
2336              "loc": {
2337                "start": {
2338                  "line": 49,
2339                  "column": 5,
2340                  "program": "varRedeclaration.ts"
2341                },
2342                "end": {
2343                  "line": 49,
2344                  "column": 6,
2345                  "program": "varRedeclaration.ts"
2346                }
2347              }
2348            },
2349            "typeAnnotation": {
2350              "type": "TSBooleanKeyword",
2351              "loc": {
2352                "start": {
2353                  "line": 49,
2354                  "column": 8,
2355                  "program": "varRedeclaration.ts"
2356                },
2357                "end": {
2358                  "line": 49,
2359                  "column": 15,
2360                  "program": "varRedeclaration.ts"
2361                }
2362              }
2363            },
2364            "loc": {
2365              "start": {
2366                "line": 49,
2367                "column": 5,
2368                "program": "varRedeclaration.ts"
2369              },
2370              "end": {
2371                "line": 49,
2372                "column": 16,
2373                "program": "varRedeclaration.ts"
2374              }
2375            }
2376          }
2377        ],
2378        "loc": {
2379          "start": {
2380            "line": 48,
2381            "column": 41,
2382            "program": "varRedeclaration.ts"
2383          },
2384          "end": {
2385            "line": 50,
2386            "column": 2,
2387            "program": "varRedeclaration.ts"
2388          }
2389        }
2390      },
2391      "id": {
2392        "type": "Identifier",
2393        "name": "interface3",
2394        "decorators": [],
2395        "loc": {
2396          "start": {
2397            "line": 48,
2398            "column": 11,
2399            "program": "varRedeclaration.ts"
2400          },
2401          "end": {
2402            "line": 48,
2403            "column": 21,
2404            "program": "varRedeclaration.ts"
2405          }
2406        }
2407      },
2408      "extends": [
2409        {
2410          "type": "TSInterfaceHeritage",
2411          "expression": {
2412            "type": "TSTypeReference",
2413            "typeName": {
2414              "type": "Identifier",
2415              "name": "interface1",
2416              "decorators": [],
2417              "loc": {
2418                "start": {
2419                  "line": 48,
2420                  "column": 30,
2421                  "program": "varRedeclaration.ts"
2422                },
2423                "end": {
2424                  "line": 48,
2425                  "column": 40,
2426                  "program": "varRedeclaration.ts"
2427                }
2428              }
2429            },
2430            "loc": {
2431              "start": {
2432                "line": 48,
2433                "column": 41,
2434                "program": "varRedeclaration.ts"
2435              },
2436              "end": {
2437                "line": 48,
2438                "column": 40,
2439                "program": "varRedeclaration.ts"
2440              }
2441            }
2442          },
2443          "loc": {
2444            "start": {
2445              "line": 48,
2446              "column": 41,
2447              "program": "varRedeclaration.ts"
2448            },
2449            "end": {
2450              "line": 48,
2451              "column": 40,
2452              "program": "varRedeclaration.ts"
2453            }
2454          }
2455        }
2456      ],
2457      "loc": {
2458        "start": {
2459          "line": 48,
2460          "column": 1,
2461          "program": "varRedeclaration.ts"
2462        },
2463        "end": {
2464          "line": 50,
2465          "column": 2,
2466          "program": "varRedeclaration.ts"
2467        }
2468      }
2469    },
2470    {
2471      "type": "TSInterfaceDeclaration",
2472      "body": {
2473        "type": "TSInterfaceBody",
2474        "body": [
2475          {
2476            "type": "TSPropertySignature",
2477            "computed": false,
2478            "optional": false,
2479            "readonly": false,
2480            "key": {
2481              "type": "Identifier",
2482              "name": "c",
2483              "decorators": [],
2484              "loc": {
2485                "start": {
2486                  "line": 53,
2487                  "column": 5,
2488                  "program": "varRedeclaration.ts"
2489                },
2490                "end": {
2491                  "line": 53,
2492                  "column": 6,
2493                  "program": "varRedeclaration.ts"
2494                }
2495              }
2496            },
2497            "typeAnnotation": {
2498              "type": "TSBooleanKeyword",
2499              "loc": {
2500                "start": {
2501                  "line": 53,
2502                  "column": 8,
2503                  "program": "varRedeclaration.ts"
2504                },
2505                "end": {
2506                  "line": 53,
2507                  "column": 15,
2508                  "program": "varRedeclaration.ts"
2509                }
2510              }
2511            },
2512            "loc": {
2513              "start": {
2514                "line": 53,
2515                "column": 5,
2516                "program": "varRedeclaration.ts"
2517              },
2518              "end": {
2519                "line": 53,
2520                "column": 16,
2521                "program": "varRedeclaration.ts"
2522              }
2523            }
2524          }
2525        ],
2526        "loc": {
2527          "start": {
2528            "line": 52,
2529            "column": 41,
2530            "program": "varRedeclaration.ts"
2531          },
2532          "end": {
2533            "line": 54,
2534            "column": 2,
2535            "program": "varRedeclaration.ts"
2536          }
2537        }
2538      },
2539      "id": {
2540        "type": "Identifier",
2541        "name": "interface4",
2542        "decorators": [],
2543        "loc": {
2544          "start": {
2545            "line": 52,
2546            "column": 11,
2547            "program": "varRedeclaration.ts"
2548          },
2549          "end": {
2550            "line": 52,
2551            "column": 21,
2552            "program": "varRedeclaration.ts"
2553          }
2554        }
2555      },
2556      "extends": [
2557        {
2558          "type": "TSInterfaceHeritage",
2559          "expression": {
2560            "type": "TSTypeReference",
2561            "typeName": {
2562              "type": "Identifier",
2563              "name": "interface2",
2564              "decorators": [],
2565              "loc": {
2566                "start": {
2567                  "line": 52,
2568                  "column": 30,
2569                  "program": "varRedeclaration.ts"
2570                },
2571                "end": {
2572                  "line": 52,
2573                  "column": 40,
2574                  "program": "varRedeclaration.ts"
2575                }
2576              }
2577            },
2578            "loc": {
2579              "start": {
2580                "line": 52,
2581                "column": 41,
2582                "program": "varRedeclaration.ts"
2583              },
2584              "end": {
2585                "line": 52,
2586                "column": 40,
2587                "program": "varRedeclaration.ts"
2588              }
2589            }
2590          },
2591          "loc": {
2592            "start": {
2593              "line": 52,
2594              "column": 41,
2595              "program": "varRedeclaration.ts"
2596            },
2597            "end": {
2598              "line": 52,
2599              "column": 40,
2600              "program": "varRedeclaration.ts"
2601            }
2602          }
2603        }
2604      ],
2605      "loc": {
2606        "start": {
2607          "line": 52,
2608          "column": 1,
2609          "program": "varRedeclaration.ts"
2610        },
2611        "end": {
2612          "line": 54,
2613          "column": 2,
2614          "program": "varRedeclaration.ts"
2615        }
2616      }
2617    },
2618    {
2619      "type": "VariableDeclaration",
2620      "declarations": [
2621        {
2622          "type": "VariableDeclarator",
2623          "id": {
2624            "type": "Identifier",
2625            "name": "h",
2626            "typeAnnotation": {
2627              "type": "TSTypeReference",
2628              "typeName": {
2629                "type": "Identifier",
2630                "name": "interface3",
2631                "decorators": [],
2632                "loc": {
2633                  "start": {
2634                    "line": 56,
2635                    "column": 8,
2636                    "program": "varRedeclaration.ts"
2637                  },
2638                  "end": {
2639                    "line": 56,
2640                    "column": 18,
2641                    "program": "varRedeclaration.ts"
2642                  }
2643                }
2644              },
2645              "loc": {
2646                "start": {
2647                  "line": 56,
2648                  "column": 8,
2649                  "program": "varRedeclaration.ts"
2650                },
2651                "end": {
2652                  "line": 56,
2653                  "column": 18,
2654                  "program": "varRedeclaration.ts"
2655                }
2656              }
2657            },
2658            "decorators": [],
2659            "loc": {
2660              "start": {
2661                "line": 56,
2662                "column": 5,
2663                "program": "varRedeclaration.ts"
2664              },
2665              "end": {
2666                "line": 56,
2667                "column": 6,
2668                "program": "varRedeclaration.ts"
2669              }
2670            }
2671          },
2672          "init": null,
2673          "loc": {
2674            "start": {
2675              "line": 56,
2676              "column": 5,
2677              "program": "varRedeclaration.ts"
2678            },
2679            "end": {
2680              "line": 56,
2681              "column": 6,
2682              "program": "varRedeclaration.ts"
2683            }
2684          }
2685        }
2686      ],
2687      "kind": "var",
2688      "loc": {
2689        "start": {
2690          "line": 56,
2691          "column": 1,
2692          "program": "varRedeclaration.ts"
2693        },
2694        "end": {
2695          "line": 56,
2696          "column": 19,
2697          "program": "varRedeclaration.ts"
2698        }
2699      }
2700    },
2701    {
2702      "type": "VariableDeclaration",
2703      "declarations": [
2704        {
2705          "type": "VariableDeclarator",
2706          "id": {
2707            "type": "Identifier",
2708            "name": "h",
2709            "typeAnnotation": {
2710              "type": "TSTypeReference",
2711              "typeName": {
2712                "type": "Identifier",
2713                "name": "interface4",
2714                "decorators": [],
2715                "loc": {
2716                  "start": {
2717                    "line": 57,
2718                    "column": 8,
2719                    "program": "varRedeclaration.ts"
2720                  },
2721                  "end": {
2722                    "line": 57,
2723                    "column": 18,
2724                    "program": "varRedeclaration.ts"
2725                  }
2726                }
2727              },
2728              "loc": {
2729                "start": {
2730                  "line": 57,
2731                  "column": 8,
2732                  "program": "varRedeclaration.ts"
2733                },
2734                "end": {
2735                  "line": 57,
2736                  "column": 18,
2737                  "program": "varRedeclaration.ts"
2738                }
2739              }
2740            },
2741            "decorators": [],
2742            "loc": {
2743              "start": {
2744                "line": 57,
2745                "column": 5,
2746                "program": "varRedeclaration.ts"
2747              },
2748              "end": {
2749                "line": 57,
2750                "column": 6,
2751                "program": "varRedeclaration.ts"
2752              }
2753            }
2754          },
2755          "init": null,
2756          "loc": {
2757            "start": {
2758              "line": 57,
2759              "column": 5,
2760              "program": "varRedeclaration.ts"
2761            },
2762            "end": {
2763              "line": 57,
2764              "column": 6,
2765              "program": "varRedeclaration.ts"
2766            }
2767          }
2768        }
2769      ],
2770      "kind": "var",
2771      "loc": {
2772        "start": {
2773          "line": 57,
2774          "column": 1,
2775          "program": "varRedeclaration.ts"
2776        },
2777        "end": {
2778          "line": 57,
2779          "column": 19,
2780          "program": "varRedeclaration.ts"
2781        }
2782      }
2783    },
2784    {
2785      "type": "TSInterfaceDeclaration",
2786      "body": {
2787        "type": "TSInterfaceBody",
2788        "body": [
2789          {
2790            "type": "TSCallSignatureDeclaration",
2791            "params": [
2792              {
2793                "type": "Identifier",
2794                "name": "a",
2795                "typeAnnotation": {
2796                  "type": "TSNumberKeyword",
2797                  "loc": {
2798                    "start": {
2799                      "line": 60,
2800                      "column": 9,
2801                      "program": "varRedeclaration.ts"
2802                    },
2803                    "end": {
2804                      "line": 60,
2805                      "column": 15,
2806                      "program": "varRedeclaration.ts"
2807                    }
2808                  }
2809                },
2810                "decorators": [],
2811                "loc": {
2812                  "start": {
2813                    "line": 60,
2814                    "column": 6,
2815                    "program": "varRedeclaration.ts"
2816                  },
2817                  "end": {
2818                    "line": 60,
2819                    "column": 7,
2820                    "program": "varRedeclaration.ts"
2821                  }
2822                }
2823              },
2824              {
2825                "type": "Identifier",
2826                "name": "b",
2827                "typeAnnotation": {
2828                  "type": "TSStringKeyword",
2829                  "loc": {
2830                    "start": {
2831                      "line": 60,
2832                      "column": 20,
2833                      "program": "varRedeclaration.ts"
2834                    },
2835                    "end": {
2836                      "line": 60,
2837                      "column": 26,
2838                      "program": "varRedeclaration.ts"
2839                    }
2840                  }
2841                },
2842                "decorators": [],
2843                "loc": {
2844                  "start": {
2845                    "line": 60,
2846                    "column": 17,
2847                    "program": "varRedeclaration.ts"
2848                  },
2849                  "end": {
2850                    "line": 60,
2851                    "column": 18,
2852                    "program": "varRedeclaration.ts"
2853                  }
2854                }
2855              }
2856            ],
2857            "returnType": {
2858              "type": "TSNumberKeyword",
2859              "loc": {
2860                "start": {
2861                  "line": 60,
2862                  "column": 29,
2863                  "program": "varRedeclaration.ts"
2864                },
2865                "end": {
2866                  "line": 60,
2867                  "column": 35,
2868                  "program": "varRedeclaration.ts"
2869                }
2870              }
2871            },
2872            "loc": {
2873              "start": {
2874                "line": 60,
2875                "column": 5,
2876                "program": "varRedeclaration.ts"
2877              },
2878              "end": {
2879                "line": 60,
2880                "column": 36,
2881                "program": "varRedeclaration.ts"
2882              }
2883            }
2884          },
2885          {
2886            "type": "TSCallSignatureDeclaration",
2887            "params": [
2888              {
2889                "type": "Identifier",
2890                "name": "a",
2891                "typeAnnotation": {
2892                  "type": "TSNumberKeyword",
2893                  "loc": {
2894                    "start": {
2895                      "line": 61,
2896                      "column": 9,
2897                      "program": "varRedeclaration.ts"
2898                    },
2899                    "end": {
2900                      "line": 61,
2901                      "column": 15,
2902                      "program": "varRedeclaration.ts"
2903                    }
2904                  }
2905                },
2906                "decorators": [],
2907                "loc": {
2908                  "start": {
2909                    "line": 61,
2910                    "column": 6,
2911                    "program": "varRedeclaration.ts"
2912                  },
2913                  "end": {
2914                    "line": 61,
2915                    "column": 7,
2916                    "program": "varRedeclaration.ts"
2917                  }
2918                }
2919              },
2920              {
2921                "type": "Identifier",
2922                "name": "b",
2923                "typeAnnotation": {
2924                  "type": "TSStringKeyword",
2925                  "loc": {
2926                    "start": {
2927                      "line": 61,
2928                      "column": 20,
2929                      "program": "varRedeclaration.ts"
2930                    },
2931                    "end": {
2932                      "line": 61,
2933                      "column": 26,
2934                      "program": "varRedeclaration.ts"
2935                    }
2936                  }
2937                },
2938                "decorators": [],
2939                "loc": {
2940                  "start": {
2941                    "line": 61,
2942                    "column": 17,
2943                    "program": "varRedeclaration.ts"
2944                  },
2945                  "end": {
2946                    "line": 61,
2947                    "column": 18,
2948                    "program": "varRedeclaration.ts"
2949                  }
2950                }
2951              }
2952            ],
2953            "returnType": {
2954              "type": "TSStringKeyword",
2955              "loc": {
2956                "start": {
2957                  "line": 61,
2958                  "column": 29,
2959                  "program": "varRedeclaration.ts"
2960                },
2961                "end": {
2962                  "line": 61,
2963                  "column": 35,
2964                  "program": "varRedeclaration.ts"
2965                }
2966              }
2967            },
2968            "loc": {
2969              "start": {
2970                "line": 61,
2971                "column": 5,
2972                "program": "varRedeclaration.ts"
2973              },
2974              "end": {
2975                "line": 61,
2976                "column": 36,
2977                "program": "varRedeclaration.ts"
2978              }
2979            }
2980          },
2981          {
2982            "type": "TSConstructSignatureDeclaration",
2983            "params": [
2984              {
2985                "type": "Identifier",
2986                "name": "a",
2987                "typeAnnotation": {
2988                  "type": "TSArrayType",
2989                  "elementType": {
2990                    "type": "TSNumberKeyword",
2991                    "loc": {
2992                      "start": {
2993                        "line": 62,
2994                        "column": 12,
2995                        "program": "varRedeclaration.ts"
2996                      },
2997                      "end": {
2998                        "line": 62,
2999                        "column": 18,
3000                        "program": "varRedeclaration.ts"
3001                      }
3002                    }
3003                  },
3004                  "annotations": [],
3005                  "loc": {
3006                    "start": {
3007                      "line": 62,
3008                      "column": 12,
3009                      "program": "varRedeclaration.ts"
3010                    },
3011                    "end": {
3012                      "line": 62,
3013                      "column": 20,
3014                      "program": "varRedeclaration.ts"
3015                    }
3016                  }
3017                },
3018                "decorators": [],
3019                "loc": {
3020                  "start": {
3021                    "line": 62,
3022                    "column": 9,
3023                    "program": "varRedeclaration.ts"
3024                  },
3025                  "end": {
3026                    "line": 62,
3027                    "column": 10,
3028                    "program": "varRedeclaration.ts"
3029                  }
3030                }
3031              },
3032              {
3033                "type": "Identifier",
3034                "name": "b",
3035                "typeAnnotation": {
3036                  "type": "TSTypeLiteral",
3037                  "members": [
3038                    {
3039                      "type": "TSPropertySignature",
3040                      "computed": false,
3041                      "optional": false,
3042                      "readonly": false,
3043                      "key": {
3044                        "type": "Identifier",
3045                        "name": "a",
3046                        "decorators": [],
3047                        "loc": {
3048                          "start": {
3049                            "line": 62,
3050                            "column": 27,
3051                            "program": "varRedeclaration.ts"
3052                          },
3053                          "end": {
3054                            "line": 62,
3055                            "column": 28,
3056                            "program": "varRedeclaration.ts"
3057                          }
3058                        }
3059                      },
3060                      "typeAnnotation": {
3061                        "type": "TSNumberKeyword",
3062                        "loc": {
3063                          "start": {
3064                            "line": 62,
3065                            "column": 30,
3066                            "program": "varRedeclaration.ts"
3067                          },
3068                          "end": {
3069                            "line": 62,
3070                            "column": 36,
3071                            "program": "varRedeclaration.ts"
3072                          }
3073                        }
3074                      },
3075                      "loc": {
3076                        "start": {
3077                          "line": 62,
3078                          "column": 27,
3079                          "program": "varRedeclaration.ts"
3080                        },
3081                        "end": {
3082                          "line": 62,
3083                          "column": 37,
3084                          "program": "varRedeclaration.ts"
3085                        }
3086                      }
3087                    },
3088                    {
3089                      "type": "TSPropertySignature",
3090                      "computed": false,
3091                      "optional": false,
3092                      "readonly": false,
3093                      "key": {
3094                        "type": "Identifier",
3095                        "name": "b",
3096                        "decorators": [],
3097                        "loc": {
3098                          "start": {
3099                            "line": 62,
3100                            "column": 38,
3101                            "program": "varRedeclaration.ts"
3102                          },
3103                          "end": {
3104                            "line": 62,
3105                            "column": 39,
3106                            "program": "varRedeclaration.ts"
3107                          }
3108                        }
3109                      },
3110                      "typeAnnotation": {
3111                        "type": "TSStringKeyword",
3112                        "loc": {
3113                          "start": {
3114                            "line": 62,
3115                            "column": 41,
3116                            "program": "varRedeclaration.ts"
3117                          },
3118                          "end": {
3119                            "line": 62,
3120                            "column": 47,
3121                            "program": "varRedeclaration.ts"
3122                          }
3123                        }
3124                      },
3125                      "loc": {
3126                        "start": {
3127                          "line": 62,
3128                          "column": 38,
3129                          "program": "varRedeclaration.ts"
3130                        },
3131                        "end": {
3132                          "line": 62,
3133                          "column": 49,
3134                          "program": "varRedeclaration.ts"
3135                        }
3136                      }
3137                    }
3138                  ],
3139                  "loc": {
3140                    "start": {
3141                      "line": 62,
3142                      "column": 25,
3143                      "program": "varRedeclaration.ts"
3144                    },
3145                    "end": {
3146                      "line": 62,
3147                      "column": 49,
3148                      "program": "varRedeclaration.ts"
3149                    }
3150                  }
3151                },
3152                "decorators": [],
3153                "loc": {
3154                  "start": {
3155                    "line": 62,
3156                    "column": 22,
3157                    "program": "varRedeclaration.ts"
3158                  },
3159                  "end": {
3160                    "line": 62,
3161                    "column": 23,
3162                    "program": "varRedeclaration.ts"
3163                  }
3164                }
3165              }
3166            ],
3167            "returnType": {
3168              "type": "TSBooleanKeyword",
3169              "loc": {
3170                "start": {
3171                  "line": 62,
3172                  "column": 52,
3173                  "program": "varRedeclaration.ts"
3174                },
3175                "end": {
3176                  "line": 62,
3177                  "column": 59,
3178                  "program": "varRedeclaration.ts"
3179                }
3180              }
3181            },
3182            "loc": {
3183              "start": {
3184                "line": 62,
3185                "column": 5,
3186                "program": "varRedeclaration.ts"
3187              },
3188              "end": {
3189                "line": 62,
3190                "column": 60,
3191                "program": "varRedeclaration.ts"
3192              }
3193            }
3194          },
3195          {
3196            "type": "TSConstructSignatureDeclaration",
3197            "params": [
3198              {
3199                "type": "Identifier",
3200                "name": "a",
3201                "typeAnnotation": {
3202                  "type": "TSArrayType",
3203                  "elementType": {
3204                    "type": "TSNumberKeyword",
3205                    "loc": {
3206                      "start": {
3207                        "line": 63,
3208                        "column": 12,
3209                        "program": "varRedeclaration.ts"
3210                      },
3211                      "end": {
3212                        "line": 63,
3213                        "column": 18,
3214                        "program": "varRedeclaration.ts"
3215                      }
3216                    }
3217                  },
3218                  "annotations": [],
3219                  "loc": {
3220                    "start": {
3221                      "line": 63,
3222                      "column": 12,
3223                      "program": "varRedeclaration.ts"
3224                    },
3225                    "end": {
3226                      "line": 63,
3227                      "column": 20,
3228                      "program": "varRedeclaration.ts"
3229                    }
3230                  }
3231                },
3232                "decorators": [],
3233                "loc": {
3234                  "start": {
3235                    "line": 63,
3236                    "column": 9,
3237                    "program": "varRedeclaration.ts"
3238                  },
3239                  "end": {
3240                    "line": 63,
3241                    "column": 10,
3242                    "program": "varRedeclaration.ts"
3243                  }
3244                }
3245              },
3246              {
3247                "type": "Identifier",
3248                "name": "b",
3249                "typeAnnotation": {
3250                  "type": "TSTypeLiteral",
3251                  "members": [
3252                    {
3253                      "type": "TSPropertySignature",
3254                      "computed": false,
3255                      "optional": false,
3256                      "readonly": false,
3257                      "key": {
3258                        "type": "Identifier",
3259                        "name": "a",
3260                        "decorators": [],
3261                        "loc": {
3262                          "start": {
3263                            "line": 63,
3264                            "column": 27,
3265                            "program": "varRedeclaration.ts"
3266                          },
3267                          "end": {
3268                            "line": 63,
3269                            "column": 28,
3270                            "program": "varRedeclaration.ts"
3271                          }
3272                        }
3273                      },
3274                      "typeAnnotation": {
3275                        "type": "TSNumberKeyword",
3276                        "loc": {
3277                          "start": {
3278                            "line": 63,
3279                            "column": 30,
3280                            "program": "varRedeclaration.ts"
3281                          },
3282                          "end": {
3283                            "line": 63,
3284                            "column": 36,
3285                            "program": "varRedeclaration.ts"
3286                          }
3287                        }
3288                      },
3289                      "loc": {
3290                        "start": {
3291                          "line": 63,
3292                          "column": 27,
3293                          "program": "varRedeclaration.ts"
3294                        },
3295                        "end": {
3296                          "line": 63,
3297                          "column": 37,
3298                          "program": "varRedeclaration.ts"
3299                        }
3300                      }
3301                    },
3302                    {
3303                      "type": "TSPropertySignature",
3304                      "computed": false,
3305                      "optional": false,
3306                      "readonly": false,
3307                      "key": {
3308                        "type": "Identifier",
3309                        "name": "b",
3310                        "decorators": [],
3311                        "loc": {
3312                          "start": {
3313                            "line": 63,
3314                            "column": 38,
3315                            "program": "varRedeclaration.ts"
3316                          },
3317                          "end": {
3318                            "line": 63,
3319                            "column": 39,
3320                            "program": "varRedeclaration.ts"
3321                          }
3322                        }
3323                      },
3324                      "typeAnnotation": {
3325                        "type": "TSStringKeyword",
3326                        "loc": {
3327                          "start": {
3328                            "line": 63,
3329                            "column": 41,
3330                            "program": "varRedeclaration.ts"
3331                          },
3332                          "end": {
3333                            "line": 63,
3334                            "column": 47,
3335                            "program": "varRedeclaration.ts"
3336                          }
3337                        }
3338                      },
3339                      "loc": {
3340                        "start": {
3341                          "line": 63,
3342                          "column": 38,
3343                          "program": "varRedeclaration.ts"
3344                        },
3345                        "end": {
3346                          "line": 63,
3347                          "column": 49,
3348                          "program": "varRedeclaration.ts"
3349                        }
3350                      }
3351                    }
3352                  ],
3353                  "loc": {
3354                    "start": {
3355                      "line": 63,
3356                      "column": 25,
3357                      "program": "varRedeclaration.ts"
3358                    },
3359                    "end": {
3360                      "line": 63,
3361                      "column": 49,
3362                      "program": "varRedeclaration.ts"
3363                    }
3364                  }
3365                },
3366                "decorators": [],
3367                "loc": {
3368                  "start": {
3369                    "line": 63,
3370                    "column": 22,
3371                    "program": "varRedeclaration.ts"
3372                  },
3373                  "end": {
3374                    "line": 63,
3375                    "column": 23,
3376                    "program": "varRedeclaration.ts"
3377                  }
3378                }
3379              }
3380            ],
3381            "returnType": {
3382              "type": "TSVoidKeyword",
3383              "loc": {
3384                "start": {
3385                  "line": 63,
3386                  "column": 52,
3387                  "program": "varRedeclaration.ts"
3388                },
3389                "end": {
3390                  "line": 63,
3391                  "column": 56,
3392                  "program": "varRedeclaration.ts"
3393                }
3394              }
3395            },
3396            "loc": {
3397              "start": {
3398                "line": 63,
3399                "column": 5,
3400                "program": "varRedeclaration.ts"
3401              },
3402              "end": {
3403                "line": 63,
3404                "column": 57,
3405                "program": "varRedeclaration.ts"
3406              }
3407            }
3408          }
3409        ],
3410        "loc": {
3411          "start": {
3412            "line": 59,
3413            "column": 22,
3414            "program": "varRedeclaration.ts"
3415          },
3416          "end": {
3417            "line": 64,
3418            "column": 2,
3419            "program": "varRedeclaration.ts"
3420          }
3421        }
3422      },
3423      "id": {
3424        "type": "Identifier",
3425        "name": "interface5",
3426        "decorators": [],
3427        "loc": {
3428          "start": {
3429            "line": 59,
3430            "column": 11,
3431            "program": "varRedeclaration.ts"
3432          },
3433          "end": {
3434            "line": 59,
3435            "column": 21,
3436            "program": "varRedeclaration.ts"
3437          }
3438        }
3439      },
3440      "extends": [],
3441      "loc": {
3442        "start": {
3443          "line": 59,
3444          "column": 1,
3445          "program": "varRedeclaration.ts"
3446        },
3447        "end": {
3448          "line": 64,
3449          "column": 2,
3450          "program": "varRedeclaration.ts"
3451        }
3452      }
3453    },
3454    {
3455      "type": "TSInterfaceDeclaration",
3456      "body": {
3457        "type": "TSInterfaceBody",
3458        "body": [
3459          {
3460            "type": "TSCallSignatureDeclaration",
3461            "params": [
3462              {
3463                "type": "Identifier",
3464                "name": "a",
3465                "typeAnnotation": {
3466                  "type": "TSNumberKeyword",
3467                  "loc": {
3468                    "start": {
3469                      "line": 67,
3470                      "column": 9,
3471                      "program": "varRedeclaration.ts"
3472                    },
3473                    "end": {
3474                      "line": 67,
3475                      "column": 15,
3476                      "program": "varRedeclaration.ts"
3477                    }
3478                  }
3479                },
3480                "decorators": [],
3481                "loc": {
3482                  "start": {
3483                    "line": 67,
3484                    "column": 6,
3485                    "program": "varRedeclaration.ts"
3486                  },
3487                  "end": {
3488                    "line": 67,
3489                    "column": 7,
3490                    "program": "varRedeclaration.ts"
3491                  }
3492                }
3493              },
3494              {
3495                "type": "Identifier",
3496                "name": "b",
3497                "typeAnnotation": {
3498                  "type": "TSStringKeyword",
3499                  "loc": {
3500                    "start": {
3501                      "line": 67,
3502                      "column": 20,
3503                      "program": "varRedeclaration.ts"
3504                    },
3505                    "end": {
3506                      "line": 67,
3507                      "column": 26,
3508                      "program": "varRedeclaration.ts"
3509                    }
3510                  }
3511                },
3512                "decorators": [],
3513                "loc": {
3514                  "start": {
3515                    "line": 67,
3516                    "column": 17,
3517                    "program": "varRedeclaration.ts"
3518                  },
3519                  "end": {
3520                    "line": 67,
3521                    "column": 18,
3522                    "program": "varRedeclaration.ts"
3523                  }
3524                }
3525              }
3526            ],
3527            "returnType": {
3528              "type": "TSNumberKeyword",
3529              "loc": {
3530                "start": {
3531                  "line": 67,
3532                  "column": 29,
3533                  "program": "varRedeclaration.ts"
3534                },
3535                "end": {
3536                  "line": 67,
3537                  "column": 35,
3538                  "program": "varRedeclaration.ts"
3539                }
3540              }
3541            },
3542            "loc": {
3543              "start": {
3544                "line": 67,
3545                "column": 5,
3546                "program": "varRedeclaration.ts"
3547              },
3548              "end": {
3549                "line": 67,
3550                "column": 36,
3551                "program": "varRedeclaration.ts"
3552              }
3553            }
3554          },
3555          {
3556            "type": "TSCallSignatureDeclaration",
3557            "params": [
3558              {
3559                "type": "Identifier",
3560                "name": "a",
3561                "typeAnnotation": {
3562                  "type": "TSNumberKeyword",
3563                  "loc": {
3564                    "start": {
3565                      "line": 68,
3566                      "column": 9,
3567                      "program": "varRedeclaration.ts"
3568                    },
3569                    "end": {
3570                      "line": 68,
3571                      "column": 15,
3572                      "program": "varRedeclaration.ts"
3573                    }
3574                  }
3575                },
3576                "decorators": [],
3577                "loc": {
3578                  "start": {
3579                    "line": 68,
3580                    "column": 6,
3581                    "program": "varRedeclaration.ts"
3582                  },
3583                  "end": {
3584                    "line": 68,
3585                    "column": 7,
3586                    "program": "varRedeclaration.ts"
3587                  }
3588                }
3589              },
3590              {
3591                "type": "Identifier",
3592                "name": "b",
3593                "typeAnnotation": {
3594                  "type": "TSStringKeyword",
3595                  "loc": {
3596                    "start": {
3597                      "line": 68,
3598                      "column": 20,
3599                      "program": "varRedeclaration.ts"
3600                    },
3601                    "end": {
3602                      "line": 68,
3603                      "column": 26,
3604                      "program": "varRedeclaration.ts"
3605                    }
3606                  }
3607                },
3608                "decorators": [],
3609                "loc": {
3610                  "start": {
3611                    "line": 68,
3612                    "column": 17,
3613                    "program": "varRedeclaration.ts"
3614                  },
3615                  "end": {
3616                    "line": 68,
3617                    "column": 18,
3618                    "program": "varRedeclaration.ts"
3619                  }
3620                }
3621              }
3622            ],
3623            "returnType": {
3624              "type": "TSStringKeyword",
3625              "loc": {
3626                "start": {
3627                  "line": 68,
3628                  "column": 29,
3629                  "program": "varRedeclaration.ts"
3630                },
3631                "end": {
3632                  "line": 68,
3633                  "column": 35,
3634                  "program": "varRedeclaration.ts"
3635                }
3636              }
3637            },
3638            "loc": {
3639              "start": {
3640                "line": 68,
3641                "column": 5,
3642                "program": "varRedeclaration.ts"
3643              },
3644              "end": {
3645                "line": 68,
3646                "column": 36,
3647                "program": "varRedeclaration.ts"
3648              }
3649            }
3650          },
3651          {
3652            "type": "TSConstructSignatureDeclaration",
3653            "params": [
3654              {
3655                "type": "Identifier",
3656                "name": "a",
3657                "typeAnnotation": {
3658                  "type": "TSArrayType",
3659                  "elementType": {
3660                    "type": "TSNumberKeyword",
3661                    "loc": {
3662                      "start": {
3663                        "line": 69,
3664                        "column": 12,
3665                        "program": "varRedeclaration.ts"
3666                      },
3667                      "end": {
3668                        "line": 69,
3669                        "column": 18,
3670                        "program": "varRedeclaration.ts"
3671                      }
3672                    }
3673                  },
3674                  "annotations": [],
3675                  "loc": {
3676                    "start": {
3677                      "line": 69,
3678                      "column": 12,
3679                      "program": "varRedeclaration.ts"
3680                    },
3681                    "end": {
3682                      "line": 69,
3683                      "column": 20,
3684                      "program": "varRedeclaration.ts"
3685                    }
3686                  }
3687                },
3688                "decorators": [],
3689                "loc": {
3690                  "start": {
3691                    "line": 69,
3692                    "column": 9,
3693                    "program": "varRedeclaration.ts"
3694                  },
3695                  "end": {
3696                    "line": 69,
3697                    "column": 10,
3698                    "program": "varRedeclaration.ts"
3699                  }
3700                }
3701              },
3702              {
3703                "type": "Identifier",
3704                "name": "b",
3705                "typeAnnotation": {
3706                  "type": "TSTypeLiteral",
3707                  "members": [
3708                    {
3709                      "type": "TSPropertySignature",
3710                      "computed": false,
3711                      "optional": false,
3712                      "readonly": false,
3713                      "key": {
3714                        "type": "Identifier",
3715                        "name": "a",
3716                        "decorators": [],
3717                        "loc": {
3718                          "start": {
3719                            "line": 69,
3720                            "column": 27,
3721                            "program": "varRedeclaration.ts"
3722                          },
3723                          "end": {
3724                            "line": 69,
3725                            "column": 28,
3726                            "program": "varRedeclaration.ts"
3727                          }
3728                        }
3729                      },
3730                      "typeAnnotation": {
3731                        "type": "TSNumberKeyword",
3732                        "loc": {
3733                          "start": {
3734                            "line": 69,
3735                            "column": 30,
3736                            "program": "varRedeclaration.ts"
3737                          },
3738                          "end": {
3739                            "line": 69,
3740                            "column": 36,
3741                            "program": "varRedeclaration.ts"
3742                          }
3743                        }
3744                      },
3745                      "loc": {
3746                        "start": {
3747                          "line": 69,
3748                          "column": 27,
3749                          "program": "varRedeclaration.ts"
3750                        },
3751                        "end": {
3752                          "line": 69,
3753                          "column": 37,
3754                          "program": "varRedeclaration.ts"
3755                        }
3756                      }
3757                    },
3758                    {
3759                      "type": "TSPropertySignature",
3760                      "computed": false,
3761                      "optional": false,
3762                      "readonly": false,
3763                      "key": {
3764                        "type": "Identifier",
3765                        "name": "b",
3766                        "decorators": [],
3767                        "loc": {
3768                          "start": {
3769                            "line": 69,
3770                            "column": 38,
3771                            "program": "varRedeclaration.ts"
3772                          },
3773                          "end": {
3774                            "line": 69,
3775                            "column": 39,
3776                            "program": "varRedeclaration.ts"
3777                          }
3778                        }
3779                      },
3780                      "typeAnnotation": {
3781                        "type": "TSStringKeyword",
3782                        "loc": {
3783                          "start": {
3784                            "line": 69,
3785                            "column": 41,
3786                            "program": "varRedeclaration.ts"
3787                          },
3788                          "end": {
3789                            "line": 69,
3790                            "column": 47,
3791                            "program": "varRedeclaration.ts"
3792                          }
3793                        }
3794                      },
3795                      "loc": {
3796                        "start": {
3797                          "line": 69,
3798                          "column": 38,
3799                          "program": "varRedeclaration.ts"
3800                        },
3801                        "end": {
3802                          "line": 69,
3803                          "column": 49,
3804                          "program": "varRedeclaration.ts"
3805                        }
3806                      }
3807                    }
3808                  ],
3809                  "loc": {
3810                    "start": {
3811                      "line": 69,
3812                      "column": 25,
3813                      "program": "varRedeclaration.ts"
3814                    },
3815                    "end": {
3816                      "line": 69,
3817                      "column": 49,
3818                      "program": "varRedeclaration.ts"
3819                    }
3820                  }
3821                },
3822                "decorators": [],
3823                "loc": {
3824                  "start": {
3825                    "line": 69,
3826                    "column": 22,
3827                    "program": "varRedeclaration.ts"
3828                  },
3829                  "end": {
3830                    "line": 69,
3831                    "column": 23,
3832                    "program": "varRedeclaration.ts"
3833                  }
3834                }
3835              }
3836            ],
3837            "returnType": {
3838              "type": "TSVoidKeyword",
3839              "loc": {
3840                "start": {
3841                  "line": 69,
3842                  "column": 52,
3843                  "program": "varRedeclaration.ts"
3844                },
3845                "end": {
3846                  "line": 69,
3847                  "column": 56,
3848                  "program": "varRedeclaration.ts"
3849                }
3850              }
3851            },
3852            "loc": {
3853              "start": {
3854                "line": 69,
3855                "column": 5,
3856                "program": "varRedeclaration.ts"
3857              },
3858              "end": {
3859                "line": 69,
3860                "column": 57,
3861                "program": "varRedeclaration.ts"
3862              }
3863            }
3864          },
3865          {
3866            "type": "TSConstructSignatureDeclaration",
3867            "params": [
3868              {
3869                "type": "Identifier",
3870                "name": "a",
3871                "typeAnnotation": {
3872                  "type": "TSArrayType",
3873                  "elementType": {
3874                    "type": "TSNumberKeyword",
3875                    "loc": {
3876                      "start": {
3877                        "line": 70,
3878                        "column": 12,
3879                        "program": "varRedeclaration.ts"
3880                      },
3881                      "end": {
3882                        "line": 70,
3883                        "column": 18,
3884                        "program": "varRedeclaration.ts"
3885                      }
3886                    }
3887                  },
3888                  "annotations": [],
3889                  "loc": {
3890                    "start": {
3891                      "line": 70,
3892                      "column": 12,
3893                      "program": "varRedeclaration.ts"
3894                    },
3895                    "end": {
3896                      "line": 70,
3897                      "column": 20,
3898                      "program": "varRedeclaration.ts"
3899                    }
3900                  }
3901                },
3902                "decorators": [],
3903                "loc": {
3904                  "start": {
3905                    "line": 70,
3906                    "column": 9,
3907                    "program": "varRedeclaration.ts"
3908                  },
3909                  "end": {
3910                    "line": 70,
3911                    "column": 10,
3912                    "program": "varRedeclaration.ts"
3913                  }
3914                }
3915              },
3916              {
3917                "type": "Identifier",
3918                "name": "b",
3919                "typeAnnotation": {
3920                  "type": "TSTypeLiteral",
3921                  "members": [
3922                    {
3923                      "type": "TSPropertySignature",
3924                      "computed": false,
3925                      "optional": false,
3926                      "readonly": false,
3927                      "key": {
3928                        "type": "Identifier",
3929                        "name": "a",
3930                        "decorators": [],
3931                        "loc": {
3932                          "start": {
3933                            "line": 70,
3934                            "column": 27,
3935                            "program": "varRedeclaration.ts"
3936                          },
3937                          "end": {
3938                            "line": 70,
3939                            "column": 28,
3940                            "program": "varRedeclaration.ts"
3941                          }
3942                        }
3943                      },
3944                      "typeAnnotation": {
3945                        "type": "TSNumberKeyword",
3946                        "loc": {
3947                          "start": {
3948                            "line": 70,
3949                            "column": 30,
3950                            "program": "varRedeclaration.ts"
3951                          },
3952                          "end": {
3953                            "line": 70,
3954                            "column": 36,
3955                            "program": "varRedeclaration.ts"
3956                          }
3957                        }
3958                      },
3959                      "loc": {
3960                        "start": {
3961                          "line": 70,
3962                          "column": 27,
3963                          "program": "varRedeclaration.ts"
3964                        },
3965                        "end": {
3966                          "line": 70,
3967                          "column": 37,
3968                          "program": "varRedeclaration.ts"
3969                        }
3970                      }
3971                    },
3972                    {
3973                      "type": "TSPropertySignature",
3974                      "computed": false,
3975                      "optional": false,
3976                      "readonly": false,
3977                      "key": {
3978                        "type": "Identifier",
3979                        "name": "b",
3980                        "decorators": [],
3981                        "loc": {
3982                          "start": {
3983                            "line": 70,
3984                            "column": 38,
3985                            "program": "varRedeclaration.ts"
3986                          },
3987                          "end": {
3988                            "line": 70,
3989                            "column": 39,
3990                            "program": "varRedeclaration.ts"
3991                          }
3992                        }
3993                      },
3994                      "typeAnnotation": {
3995                        "type": "TSStringKeyword",
3996                        "loc": {
3997                          "start": {
3998                            "line": 70,
3999                            "column": 41,
4000                            "program": "varRedeclaration.ts"
4001                          },
4002                          "end": {
4003                            "line": 70,
4004                            "column": 47,
4005                            "program": "varRedeclaration.ts"
4006                          }
4007                        }
4008                      },
4009                      "loc": {
4010                        "start": {
4011                          "line": 70,
4012                          "column": 38,
4013                          "program": "varRedeclaration.ts"
4014                        },
4015                        "end": {
4016                          "line": 70,
4017                          "column": 49,
4018                          "program": "varRedeclaration.ts"
4019                        }
4020                      }
4021                    }
4022                  ],
4023                  "loc": {
4024                    "start": {
4025                      "line": 70,
4026                      "column": 25,
4027                      "program": "varRedeclaration.ts"
4028                    },
4029                    "end": {
4030                      "line": 70,
4031                      "column": 49,
4032                      "program": "varRedeclaration.ts"
4033                    }
4034                  }
4035                },
4036                "decorators": [],
4037                "loc": {
4038                  "start": {
4039                    "line": 70,
4040                    "column": 22,
4041                    "program": "varRedeclaration.ts"
4042                  },
4043                  "end": {
4044                    "line": 70,
4045                    "column": 23,
4046                    "program": "varRedeclaration.ts"
4047                  }
4048                }
4049              }
4050            ],
4051            "returnType": {
4052              "type": "TSBooleanKeyword",
4053              "loc": {
4054                "start": {
4055                  "line": 70,
4056                  "column": 52,
4057                  "program": "varRedeclaration.ts"
4058                },
4059                "end": {
4060                  "line": 70,
4061                  "column": 59,
4062                  "program": "varRedeclaration.ts"
4063                }
4064              }
4065            },
4066            "loc": {
4067              "start": {
4068                "line": 70,
4069                "column": 5,
4070                "program": "varRedeclaration.ts"
4071              },
4072              "end": {
4073                "line": 70,
4074                "column": 60,
4075                "program": "varRedeclaration.ts"
4076              }
4077            }
4078          }
4079        ],
4080        "loc": {
4081          "start": {
4082            "line": 66,
4083            "column": 22,
4084            "program": "varRedeclaration.ts"
4085          },
4086          "end": {
4087            "line": 71,
4088            "column": 2,
4089            "program": "varRedeclaration.ts"
4090          }
4091        }
4092      },
4093      "id": {
4094        "type": "Identifier",
4095        "name": "interface6",
4096        "decorators": [],
4097        "loc": {
4098          "start": {
4099            "line": 66,
4100            "column": 11,
4101            "program": "varRedeclaration.ts"
4102          },
4103          "end": {
4104            "line": 66,
4105            "column": 21,
4106            "program": "varRedeclaration.ts"
4107          }
4108        }
4109      },
4110      "extends": [],
4111      "loc": {
4112        "start": {
4113          "line": 66,
4114          "column": 1,
4115          "program": "varRedeclaration.ts"
4116        },
4117        "end": {
4118          "line": 71,
4119          "column": 2,
4120          "program": "varRedeclaration.ts"
4121        }
4122      }
4123    },
4124    {
4125      "type": "VariableDeclaration",
4126      "declarations": [
4127        {
4128          "type": "VariableDeclarator",
4129          "id": {
4130            "type": "Identifier",
4131            "name": "i",
4132            "typeAnnotation": {
4133              "type": "TSTypeReference",
4134              "typeName": {
4135                "type": "Identifier",
4136                "name": "interface5",
4137                "decorators": [],
4138                "loc": {
4139                  "start": {
4140                    "line": 73,
4141                    "column": 8,
4142                    "program": "varRedeclaration.ts"
4143                  },
4144                  "end": {
4145                    "line": 73,
4146                    "column": 18,
4147                    "program": "varRedeclaration.ts"
4148                  }
4149                }
4150              },
4151              "loc": {
4152                "start": {
4153                  "line": 73,
4154                  "column": 8,
4155                  "program": "varRedeclaration.ts"
4156                },
4157                "end": {
4158                  "line": 73,
4159                  "column": 18,
4160                  "program": "varRedeclaration.ts"
4161                }
4162              }
4163            },
4164            "decorators": [],
4165            "loc": {
4166              "start": {
4167                "line": 73,
4168                "column": 5,
4169                "program": "varRedeclaration.ts"
4170              },
4171              "end": {
4172                "line": 73,
4173                "column": 6,
4174                "program": "varRedeclaration.ts"
4175              }
4176            }
4177          },
4178          "init": null,
4179          "loc": {
4180            "start": {
4181              "line": 73,
4182              "column": 5,
4183              "program": "varRedeclaration.ts"
4184            },
4185            "end": {
4186              "line": 73,
4187              "column": 6,
4188              "program": "varRedeclaration.ts"
4189            }
4190          }
4191        }
4192      ],
4193      "kind": "var",
4194      "loc": {
4195        "start": {
4196          "line": 73,
4197          "column": 1,
4198          "program": "varRedeclaration.ts"
4199        },
4200        "end": {
4201          "line": 73,
4202          "column": 19,
4203          "program": "varRedeclaration.ts"
4204        }
4205      }
4206    },
4207    {
4208      "type": "VariableDeclaration",
4209      "declarations": [
4210        {
4211          "type": "VariableDeclarator",
4212          "id": {
4213            "type": "Identifier",
4214            "name": "i",
4215            "typeAnnotation": {
4216              "type": "TSTypeReference",
4217              "typeName": {
4218                "type": "Identifier",
4219                "name": "interface6",
4220                "decorators": [],
4221                "loc": {
4222                  "start": {
4223                    "line": 74,
4224                    "column": 8,
4225                    "program": "varRedeclaration.ts"
4226                  },
4227                  "end": {
4228                    "line": 74,
4229                    "column": 18,
4230                    "program": "varRedeclaration.ts"
4231                  }
4232                }
4233              },
4234              "loc": {
4235                "start": {
4236                  "line": 74,
4237                  "column": 8,
4238                  "program": "varRedeclaration.ts"
4239                },
4240                "end": {
4241                  "line": 74,
4242                  "column": 18,
4243                  "program": "varRedeclaration.ts"
4244                }
4245              }
4246            },
4247            "decorators": [],
4248            "loc": {
4249              "start": {
4250                "line": 74,
4251                "column": 5,
4252                "program": "varRedeclaration.ts"
4253              },
4254              "end": {
4255                "line": 74,
4256                "column": 6,
4257                "program": "varRedeclaration.ts"
4258              }
4259            }
4260          },
4261          "init": null,
4262          "loc": {
4263            "start": {
4264              "line": 74,
4265              "column": 5,
4266              "program": "varRedeclaration.ts"
4267            },
4268            "end": {
4269              "line": 74,
4270              "column": 6,
4271              "program": "varRedeclaration.ts"
4272            }
4273          }
4274        }
4275      ],
4276      "kind": "var",
4277      "loc": {
4278        "start": {
4279          "line": 74,
4280          "column": 1,
4281          "program": "varRedeclaration.ts"
4282        },
4283        "end": {
4284          "line": 74,
4285          "column": 19,
4286          "program": "varRedeclaration.ts"
4287        }
4288      }
4289    },
4290    {
4291      "type": "VariableDeclaration",
4292      "declarations": [
4293        {
4294          "type": "VariableDeclarator",
4295          "id": {
4296            "type": "Identifier",
4297            "name": "j",
4298            "decorators": [],
4299            "loc": {
4300              "start": {
4301                "line": 76,
4302                "column": 5,
4303                "program": "varRedeclaration.ts"
4304              },
4305              "end": {
4306                "line": 76,
4307                "column": 6,
4308                "program": "varRedeclaration.ts"
4309              }
4310            }
4311          },
4312          "init": {
4313            "type": "FunctionExpression",
4314            "function": {
4315              "type": "ScriptFunction",
4316              "id": null,
4317              "generator": false,
4318              "async": false,
4319              "expression": false,
4320              "params": [
4321                {
4322                  "type": "Identifier",
4323                  "name": "a",
4324                  "typeAnnotation": {
4325                    "type": "TSTypeReference",
4326                    "typeName": {
4327                      "type": "Identifier",
4328                      "name": "interface6",
4329                      "decorators": [],
4330                      "loc": {
4331                        "start": {
4332                          "line": 76,
4333                          "column": 22,
4334                          "program": "varRedeclaration.ts"
4335                        },
4336                        "end": {
4337                          "line": 76,
4338                          "column": 32,
4339                          "program": "varRedeclaration.ts"
4340                        }
4341                      }
4342                    },
4343                    "loc": {
4344                      "start": {
4345                        "line": 76,
4346                        "column": 22,
4347                        "program": "varRedeclaration.ts"
4348                      },
4349                      "end": {
4350                        "line": 76,
4351                        "column": 32,
4352                        "program": "varRedeclaration.ts"
4353                      }
4354                    }
4355                  },
4356                  "decorators": [],
4357                  "loc": {
4358                    "start": {
4359                      "line": 76,
4360                      "column": 19,
4361                      "program": "varRedeclaration.ts"
4362                    },
4363                    "end": {
4364                      "line": 76,
4365                      "column": 20,
4366                      "program": "varRedeclaration.ts"
4367                    }
4368                  }
4369                },
4370                {
4371                  "type": "Identifier",
4372                  "name": "b",
4373                  "typeAnnotation": {
4374                    "type": "TSArrayType",
4375                    "elementType": {
4376                      "type": "TSNumberKeyword",
4377                      "loc": {
4378                        "start": {
4379                          "line": 76,
4380                          "column": 37,
4381                          "program": "varRedeclaration.ts"
4382                        },
4383                        "end": {
4384                          "line": 76,
4385                          "column": 43,
4386                          "program": "varRedeclaration.ts"
4387                        }
4388                      }
4389                    },
4390                    "annotations": [],
4391                    "loc": {
4392                      "start": {
4393                        "line": 76,
4394                        "column": 37,
4395                        "program": "varRedeclaration.ts"
4396                      },
4397                      "end": {
4398                        "line": 76,
4399                        "column": 45,
4400                        "program": "varRedeclaration.ts"
4401                      }
4402                    }
4403                  },
4404                  "decorators": [],
4405                  "loc": {
4406                    "start": {
4407                      "line": 76,
4408                      "column": 34,
4409                      "program": "varRedeclaration.ts"
4410                    },
4411                    "end": {
4412                      "line": 76,
4413                      "column": 35,
4414                      "program": "varRedeclaration.ts"
4415                    }
4416                  }
4417                }
4418              ],
4419              "returnType": {
4420                "type": "TSNumberKeyword",
4421                "loc": {
4422                  "start": {
4423                    "line": 76,
4424                    "column": 48,
4425                    "program": "varRedeclaration.ts"
4426                  },
4427                  "end": {
4428                    "line": 76,
4429                    "column": 54,
4430                    "program": "varRedeclaration.ts"
4431                  }
4432                }
4433              },
4434              "body": {
4435                "type": "BlockStatement",
4436                "statements": [
4437                  {
4438                    "type": "ReturnStatement",
4439                    "argument": {
4440                      "type": "NumberLiteral",
4441                      "value": 123,
4442                      "loc": {
4443                        "start": {
4444                          "line": 77,
4445                          "column": 12,
4446                          "program": "varRedeclaration.ts"
4447                        },
4448                        "end": {
4449                          "line": 77,
4450                          "column": 15,
4451                          "program": "varRedeclaration.ts"
4452                        }
4453                      }
4454                    },
4455                    "loc": {
4456                      "start": {
4457                        "line": 77,
4458                        "column": 5,
4459                        "program": "varRedeclaration.ts"
4460                      },
4461                      "end": {
4462                        "line": 77,
4463                        "column": 16,
4464                        "program": "varRedeclaration.ts"
4465                      }
4466                    }
4467                  }
4468                ],
4469                "loc": {
4470                  "start": {
4471                    "line": 76,
4472                    "column": 55,
4473                    "program": "varRedeclaration.ts"
4474                  },
4475                  "end": {
4476                    "line": 78,
4477                    "column": 2,
4478                    "program": "varRedeclaration.ts"
4479                  }
4480                }
4481              },
4482              "loc": {
4483                "start": {
4484                  "line": 76,
4485                  "column": 9,
4486                  "program": "varRedeclaration.ts"
4487                },
4488                "end": {
4489                  "line": 78,
4490                  "column": 2,
4491                  "program": "varRedeclaration.ts"
4492                }
4493              }
4494            },
4495            "loc": {
4496              "start": {
4497                "line": 76,
4498                "column": 9,
4499                "program": "varRedeclaration.ts"
4500              },
4501              "end": {
4502                "line": 78,
4503                "column": 2,
4504                "program": "varRedeclaration.ts"
4505              }
4506            }
4507          },
4508          "loc": {
4509            "start": {
4510              "line": 76,
4511              "column": 5,
4512              "program": "varRedeclaration.ts"
4513            },
4514            "end": {
4515              "line": 78,
4516              "column": 2,
4517              "program": "varRedeclaration.ts"
4518            }
4519          }
4520        }
4521      ],
4522      "kind": "var",
4523      "loc": {
4524        "start": {
4525          "line": 76,
4526          "column": 1,
4527          "program": "varRedeclaration.ts"
4528        },
4529        "end": {
4530          "line": 78,
4531          "column": 2,
4532          "program": "varRedeclaration.ts"
4533        }
4534      }
4535    },
4536    {
4537      "type": "VariableDeclaration",
4538      "declarations": [
4539        {
4540          "type": "VariableDeclarator",
4541          "id": {
4542            "type": "Identifier",
4543            "name": "j",
4544            "typeAnnotation": {
4545              "type": "TSFunctionType",
4546              "params": [
4547                {
4548                  "type": "Identifier",
4549                  "name": "a",
4550                  "typeAnnotation": {
4551                    "type": "TSTypeReference",
4552                    "typeName": {
4553                      "type": "Identifier",
4554                      "name": "interface6",
4555                      "decorators": [],
4556                      "loc": {
4557                        "start": {
4558                          "line": 79,
4559                          "column": 12,
4560                          "program": "varRedeclaration.ts"
4561                        },
4562                        "end": {
4563                          "line": 79,
4564                          "column": 22,
4565                          "program": "varRedeclaration.ts"
4566                        }
4567                      }
4568                    },
4569                    "loc": {
4570                      "start": {
4571                        "line": 79,
4572                        "column": 12,
4573                        "program": "varRedeclaration.ts"
4574                      },
4575                      "end": {
4576                        "line": 79,
4577                        "column": 22,
4578                        "program": "varRedeclaration.ts"
4579                      }
4580                    }
4581                  },
4582                  "decorators": [],
4583                  "loc": {
4584                    "start": {
4585                      "line": 79,
4586                      "column": 9,
4587                      "program": "varRedeclaration.ts"
4588                    },
4589                    "end": {
4590                      "line": 79,
4591                      "column": 10,
4592                      "program": "varRedeclaration.ts"
4593                    }
4594                  }
4595                },
4596                {
4597                  "type": "Identifier",
4598                  "name": "b",
4599                  "typeAnnotation": {
4600                    "type": "TSArrayType",
4601                    "elementType": {
4602                      "type": "TSNumberKeyword",
4603                      "loc": {
4604                        "start": {
4605                          "line": 79,
4606                          "column": 27,
4607                          "program": "varRedeclaration.ts"
4608                        },
4609                        "end": {
4610                          "line": 79,
4611                          "column": 33,
4612                          "program": "varRedeclaration.ts"
4613                        }
4614                      }
4615                    },
4616                    "annotations": [],
4617                    "loc": {
4618                      "start": {
4619                        "line": 79,
4620                        "column": 27,
4621                        "program": "varRedeclaration.ts"
4622                      },
4623                      "end": {
4624                        "line": 79,
4625                        "column": 35,
4626                        "program": "varRedeclaration.ts"
4627                      }
4628                    }
4629                  },
4630                  "decorators": [],
4631                  "loc": {
4632                    "start": {
4633                      "line": 79,
4634                      "column": 24,
4635                      "program": "varRedeclaration.ts"
4636                    },
4637                    "end": {
4638                      "line": 79,
4639                      "column": 25,
4640                      "program": "varRedeclaration.ts"
4641                    }
4642                  }
4643                }
4644              ],
4645              "returnType": {
4646                "type": "TSNumberKeyword",
4647                "loc": {
4648                  "start": {
4649                    "line": 79,
4650                    "column": 40,
4651                    "program": "varRedeclaration.ts"
4652                  },
4653                  "end": {
4654                    "line": 79,
4655                    "column": 46,
4656                    "program": "varRedeclaration.ts"
4657                  }
4658                }
4659              },
4660              "loc": {
4661                "start": {
4662                  "line": 79,
4663                  "column": 8,
4664                  "program": "varRedeclaration.ts"
4665                },
4666                "end": {
4667                  "line": 79,
4668                  "column": 46,
4669                  "program": "varRedeclaration.ts"
4670                }
4671              }
4672            },
4673            "decorators": [],
4674            "loc": {
4675              "start": {
4676                "line": 79,
4677                "column": 5,
4678                "program": "varRedeclaration.ts"
4679              },
4680              "end": {
4681                "line": 79,
4682                "column": 6,
4683                "program": "varRedeclaration.ts"
4684              }
4685            }
4686          },
4687          "init": null,
4688          "loc": {
4689            "start": {
4690              "line": 79,
4691              "column": 5,
4692              "program": "varRedeclaration.ts"
4693            },
4694            "end": {
4695              "line": 79,
4696              "column": 6,
4697              "program": "varRedeclaration.ts"
4698            }
4699          }
4700        }
4701      ],
4702      "kind": "var",
4703      "loc": {
4704        "start": {
4705          "line": 79,
4706          "column": 1,
4707          "program": "varRedeclaration.ts"
4708        },
4709        "end": {
4710          "line": 79,
4711          "column": 47,
4712          "program": "varRedeclaration.ts"
4713        }
4714      }
4715    },
4716    {
4717      "type": "VariableDeclaration",
4718      "declarations": [
4719        {
4720          "type": "VariableDeclarator",
4721          "id": {
4722            "type": "Identifier",
4723            "name": "obj",
4724            "decorators": [],
4725            "loc": {
4726              "start": {
4727                "line": 81,
4728                "column": 5,
4729                "program": "varRedeclaration.ts"
4730              },
4731              "end": {
4732                "line": 81,
4733                "column": 8,
4734                "program": "varRedeclaration.ts"
4735              }
4736            }
4737          },
4738          "init": {
4739            "type": "ObjectExpression",
4740            "properties": [
4741              {
4742                "type": "Property",
4743                "method": false,
4744                "shorthand": false,
4745                "computed": false,
4746                "key": {
4747                  "type": "Identifier",
4748                  "name": "a",
4749                  "decorators": [],
4750                  "loc": {
4751                    "start": {
4752                      "line": 81,
4753                      "column": 13,
4754                      "program": "varRedeclaration.ts"
4755                    },
4756                    "end": {
4757                      "line": 81,
4758                      "column": 14,
4759                      "program": "varRedeclaration.ts"
4760                    }
4761                  }
4762                },
4763                "value": {
4764                  "type": "NumberLiteral",
4765                  "value": 1,
4766                  "loc": {
4767                    "start": {
4768                      "line": 81,
4769                      "column": 16,
4770                      "program": "varRedeclaration.ts"
4771                    },
4772                    "end": {
4773                      "line": 81,
4774                      "column": 17,
4775                      "program": "varRedeclaration.ts"
4776                    }
4777                  }
4778                },
4779                "kind": "init",
4780                "loc": {
4781                  "start": {
4782                    "line": 81,
4783                    "column": 13,
4784                    "program": "varRedeclaration.ts"
4785                  },
4786                  "end": {
4787                    "line": 81,
4788                    "column": 17,
4789                    "program": "varRedeclaration.ts"
4790                  }
4791                }
4792              },
4793              {
4794                "type": "Property",
4795                "method": false,
4796                "shorthand": false,
4797                "computed": false,
4798                "key": {
4799                  "type": "Identifier",
4800                  "name": "b",
4801                  "decorators": [],
4802                  "loc": {
4803                    "start": {
4804                      "line": 81,
4805                      "column": 19,
4806                      "program": "varRedeclaration.ts"
4807                    },
4808                    "end": {
4809                      "line": 81,
4810                      "column": 20,
4811                      "program": "varRedeclaration.ts"
4812                    }
4813                  }
4814                },
4815                "value": {
4816                  "type": "NumberLiteral",
4817                  "value": 2,
4818                  "loc": {
4819                    "start": {
4820                      "line": 81,
4821                      "column": 22,
4822                      "program": "varRedeclaration.ts"
4823                    },
4824                    "end": {
4825                      "line": 81,
4826                      "column": 23,
4827                      "program": "varRedeclaration.ts"
4828                    }
4829                  }
4830                },
4831                "kind": "init",
4832                "loc": {
4833                  "start": {
4834                    "line": 81,
4835                    "column": 19,
4836                    "program": "varRedeclaration.ts"
4837                  },
4838                  "end": {
4839                    "line": 81,
4840                    "column": 23,
4841                    "program": "varRedeclaration.ts"
4842                  }
4843                }
4844              },
4845              {
4846                "type": "Property",
4847                "method": false,
4848                "shorthand": false,
4849                "computed": false,
4850                "key": {
4851                  "type": "Identifier",
4852                  "name": "c",
4853                  "decorators": [],
4854                  "loc": {
4855                    "start": {
4856                      "line": 81,
4857                      "column": 25,
4858                      "program": "varRedeclaration.ts"
4859                    },
4860                    "end": {
4861                      "line": 81,
4862                      "column": 26,
4863                      "program": "varRedeclaration.ts"
4864                    }
4865                  }
4866                },
4867                "value": {
4868                  "type": "NumberLiteral",
4869                  "value": 3,
4870                  "loc": {
4871                    "start": {
4872                      "line": 81,
4873                      "column": 28,
4874                      "program": "varRedeclaration.ts"
4875                    },
4876                    "end": {
4877                      "line": 81,
4878                      "column": 29,
4879                      "program": "varRedeclaration.ts"
4880                    }
4881                  }
4882                },
4883                "kind": "init",
4884                "loc": {
4885                  "start": {
4886                    "line": 81,
4887                    "column": 25,
4888                    "program": "varRedeclaration.ts"
4889                  },
4890                  "end": {
4891                    "line": 81,
4892                    "column": 29,
4893                    "program": "varRedeclaration.ts"
4894                  }
4895                }
4896              }
4897            ],
4898            "loc": {
4899              "start": {
4900                "line": 81,
4901                "column": 11,
4902                "program": "varRedeclaration.ts"
4903              },
4904              "end": {
4905                "line": 81,
4906                "column": 31,
4907                "program": "varRedeclaration.ts"
4908              }
4909            }
4910          },
4911          "loc": {
4912            "start": {
4913              "line": 81,
4914              "column": 5,
4915              "program": "varRedeclaration.ts"
4916            },
4917            "end": {
4918              "line": 81,
4919              "column": 31,
4920              "program": "varRedeclaration.ts"
4921            }
4922          }
4923        }
4924      ],
4925      "kind": "var",
4926      "loc": {
4927        "start": {
4928          "line": 81,
4929          "column": 1,
4930          "program": "varRedeclaration.ts"
4931        },
4932        "end": {
4933          "line": 81,
4934          "column": 32,
4935          "program": "varRedeclaration.ts"
4936        }
4937      }
4938    },
4939    {
4940      "type": "VariableDeclaration",
4941      "declarations": [
4942        {
4943          "type": "VariableDeclarator",
4944          "id": {
4945            "type": "Identifier",
4946            "name": "k",
4947            "decorators": [],
4948            "loc": {
4949              "start": {
4950                "line": 82,
4951                "column": 5,
4952                "program": "varRedeclaration.ts"
4953              },
4954              "end": {
4955                "line": 82,
4956                "column": 6,
4957                "program": "varRedeclaration.ts"
4958              }
4959            }
4960          },
4961          "init": {
4962            "type": "ObjectExpression",
4963            "properties": [
4964              {
4965                "type": "Property",
4966                "method": false,
4967                "shorthand": false,
4968                "computed": false,
4969                "key": {
4970                  "type": "Identifier",
4971                  "name": "d",
4972                  "decorators": [],
4973                  "loc": {
4974                    "start": {
4975                      "line": 82,
4976                      "column": 11,
4977                      "program": "varRedeclaration.ts"
4978                    },
4979                    "end": {
4980                      "line": 82,
4981                      "column": 12,
4982                      "program": "varRedeclaration.ts"
4983                    }
4984                  }
4985                },
4986                "value": {
4987                  "type": "StringLiteral",
4988                  "value": "foo",
4989                  "loc": {
4990                    "start": {
4991                      "line": 82,
4992                      "column": 14,
4993                      "program": "varRedeclaration.ts"
4994                    },
4995                    "end": {
4996                      "line": 82,
4997                      "column": 19,
4998                      "program": "varRedeclaration.ts"
4999                    }
5000                  }
5001                },
5002                "kind": "init",
5003                "loc": {
5004                  "start": {
5005                    "line": 82,
5006                    "column": 11,
5007                    "program": "varRedeclaration.ts"
5008                  },
5009                  "end": {
5010                    "line": 82,
5011                    "column": 19,
5012                    "program": "varRedeclaration.ts"
5013                  }
5014                }
5015              },
5016              {
5017                "type": "Property",
5018                "method": false,
5019                "shorthand": false,
5020                "computed": false,
5021                "key": {
5022                  "type": "Identifier",
5023                  "name": "e",
5024                  "decorators": [],
5025                  "loc": {
5026                    "start": {
5027                      "line": 82,
5028                      "column": 21,
5029                      "program": "varRedeclaration.ts"
5030                    },
5031                    "end": {
5032                      "line": 82,
5033                      "column": 22,
5034                      "program": "varRedeclaration.ts"
5035                    }
5036                  }
5037                },
5038                "value": {
5039                  "type": "StringLiteral",
5040                  "value": "bar",
5041                  "loc": {
5042                    "start": {
5043                      "line": 82,
5044                      "column": 24,
5045                      "program": "varRedeclaration.ts"
5046                    },
5047                    "end": {
5048                      "line": 82,
5049                      "column": 29,
5050                      "program": "varRedeclaration.ts"
5051                    }
5052                  }
5053                },
5054                "kind": "init",
5055                "loc": {
5056                  "start": {
5057                    "line": 82,
5058                    "column": 21,
5059                    "program": "varRedeclaration.ts"
5060                  },
5061                  "end": {
5062                    "line": 82,
5063                    "column": 29,
5064                    "program": "varRedeclaration.ts"
5065                  }
5066                }
5067              },
5068              {
5069                "type": "SpreadElement",
5070                "argument": {
5071                  "type": "Identifier",
5072                  "name": "obj",
5073                  "decorators": [],
5074                  "loc": {
5075                    "start": {
5076                      "line": 82,
5077                      "column": 34,
5078                      "program": "varRedeclaration.ts"
5079                    },
5080                    "end": {
5081                      "line": 82,
5082                      "column": 37,
5083                      "program": "varRedeclaration.ts"
5084                    }
5085                  }
5086                },
5087                "loc": {
5088                  "start": {
5089                    "line": 82,
5090                    "column": 31,
5091                    "program": "varRedeclaration.ts"
5092                  },
5093                  "end": {
5094                    "line": 82,
5095                    "column": 37,
5096                    "program": "varRedeclaration.ts"
5097                  }
5098                }
5099              }
5100            ],
5101            "loc": {
5102              "start": {
5103                "line": 82,
5104                "column": 9,
5105                "program": "varRedeclaration.ts"
5106              },
5107              "end": {
5108                "line": 82,
5109                "column": 39,
5110                "program": "varRedeclaration.ts"
5111              }
5112            }
5113          },
5114          "loc": {
5115            "start": {
5116              "line": 82,
5117              "column": 5,
5118              "program": "varRedeclaration.ts"
5119            },
5120            "end": {
5121              "line": 82,
5122              "column": 39,
5123              "program": "varRedeclaration.ts"
5124            }
5125          }
5126        }
5127      ],
5128      "kind": "var",
5129      "loc": {
5130        "start": {
5131          "line": 82,
5132          "column": 1,
5133          "program": "varRedeclaration.ts"
5134        },
5135        "end": {
5136          "line": 82,
5137          "column": 40,
5138          "program": "varRedeclaration.ts"
5139        }
5140      }
5141    },
5142    {
5143      "type": "VariableDeclaration",
5144      "declarations": [
5145        {
5146          "type": "VariableDeclarator",
5147          "id": {
5148            "type": "Identifier",
5149            "name": "k",
5150            "typeAnnotation": {
5151              "type": "TSTypeLiteral",
5152              "members": [
5153                {
5154                  "type": "TSPropertySignature",
5155                  "computed": false,
5156                  "optional": false,
5157                  "readonly": false,
5158                  "key": {
5159                    "type": "Identifier",
5160                    "name": "a",
5161                    "decorators": [],
5162                    "loc": {
5163                      "start": {
5164                        "line": 83,
5165                        "column": 10,
5166                        "program": "varRedeclaration.ts"
5167                      },
5168                      "end": {
5169                        "line": 83,
5170                        "column": 11,
5171                        "program": "varRedeclaration.ts"
5172                      }
5173                    }
5174                  },
5175                  "typeAnnotation": {
5176                    "type": "TSNumberKeyword",
5177                    "loc": {
5178                      "start": {
5179                        "line": 83,
5180                        "column": 13,
5181                        "program": "varRedeclaration.ts"
5182                      },
5183                      "end": {
5184                        "line": 83,
5185                        "column": 19,
5186                        "program": "varRedeclaration.ts"
5187                      }
5188                    }
5189                  },
5190                  "loc": {
5191                    "start": {
5192                      "line": 83,
5193                      "column": 10,
5194                      "program": "varRedeclaration.ts"
5195                    },
5196                    "end": {
5197                      "line": 83,
5198                      "column": 20,
5199                      "program": "varRedeclaration.ts"
5200                    }
5201                  }
5202                },
5203                {
5204                  "type": "TSPropertySignature",
5205                  "computed": false,
5206                  "optional": false,
5207                  "readonly": false,
5208                  "key": {
5209                    "type": "Identifier",
5210                    "name": "b",
5211                    "decorators": [],
5212                    "loc": {
5213                      "start": {
5214                        "line": 83,
5215                        "column": 21,
5216                        "program": "varRedeclaration.ts"
5217                      },
5218                      "end": {
5219                        "line": 83,
5220                        "column": 22,
5221                        "program": "varRedeclaration.ts"
5222                      }
5223                    }
5224                  },
5225                  "typeAnnotation": {
5226                    "type": "TSNumberKeyword",
5227                    "loc": {
5228                      "start": {
5229                        "line": 83,
5230                        "column": 24,
5231                        "program": "varRedeclaration.ts"
5232                      },
5233                      "end": {
5234                        "line": 83,
5235                        "column": 30,
5236                        "program": "varRedeclaration.ts"
5237                      }
5238                    }
5239                  },
5240                  "loc": {
5241                    "start": {
5242                      "line": 83,
5243                      "column": 21,
5244                      "program": "varRedeclaration.ts"
5245                    },
5246                    "end": {
5247                      "line": 83,
5248                      "column": 31,
5249                      "program": "varRedeclaration.ts"
5250                    }
5251                  }
5252                },
5253                {
5254                  "type": "TSPropertySignature",
5255                  "computed": false,
5256                  "optional": false,
5257                  "readonly": false,
5258                  "key": {
5259                    "type": "Identifier",
5260                    "name": "c",
5261                    "decorators": [],
5262                    "loc": {
5263                      "start": {
5264                        "line": 83,
5265                        "column": 32,
5266                        "program": "varRedeclaration.ts"
5267                      },
5268                      "end": {
5269                        "line": 83,
5270                        "column": 33,
5271                        "program": "varRedeclaration.ts"
5272                      }
5273                    }
5274                  },
5275                  "typeAnnotation": {
5276                    "type": "TSNumberKeyword",
5277                    "loc": {
5278                      "start": {
5279                        "line": 83,
5280                        "column": 35,
5281                        "program": "varRedeclaration.ts"
5282                      },
5283                      "end": {
5284                        "line": 83,
5285                        "column": 41,
5286                        "program": "varRedeclaration.ts"
5287                      }
5288                    }
5289                  },
5290                  "loc": {
5291                    "start": {
5292                      "line": 83,
5293                      "column": 32,
5294                      "program": "varRedeclaration.ts"
5295                    },
5296                    "end": {
5297                      "line": 83,
5298                      "column": 42,
5299                      "program": "varRedeclaration.ts"
5300                    }
5301                  }
5302                },
5303                {
5304                  "type": "TSPropertySignature",
5305                  "computed": false,
5306                  "optional": false,
5307                  "readonly": false,
5308                  "key": {
5309                    "type": "Identifier",
5310                    "name": "d",
5311                    "decorators": [],
5312                    "loc": {
5313                      "start": {
5314                        "line": 83,
5315                        "column": 43,
5316                        "program": "varRedeclaration.ts"
5317                      },
5318                      "end": {
5319                        "line": 83,
5320                        "column": 44,
5321                        "program": "varRedeclaration.ts"
5322                      }
5323                    }
5324                  },
5325                  "typeAnnotation": {
5326                    "type": "TSStringKeyword",
5327                    "loc": {
5328                      "start": {
5329                        "line": 83,
5330                        "column": 46,
5331                        "program": "varRedeclaration.ts"
5332                      },
5333                      "end": {
5334                        "line": 83,
5335                        "column": 52,
5336                        "program": "varRedeclaration.ts"
5337                      }
5338                    }
5339                  },
5340                  "loc": {
5341                    "start": {
5342                      "line": 83,
5343                      "column": 43,
5344                      "program": "varRedeclaration.ts"
5345                    },
5346                    "end": {
5347                      "line": 83,
5348                      "column": 53,
5349                      "program": "varRedeclaration.ts"
5350                    }
5351                  }
5352                },
5353                {
5354                  "type": "TSPropertySignature",
5355                  "computed": false,
5356                  "optional": false,
5357                  "readonly": false,
5358                  "key": {
5359                    "type": "Identifier",
5360                    "name": "e",
5361                    "decorators": [],
5362                    "loc": {
5363                      "start": {
5364                        "line": 83,
5365                        "column": 54,
5366                        "program": "varRedeclaration.ts"
5367                      },
5368                      "end": {
5369                        "line": 83,
5370                        "column": 55,
5371                        "program": "varRedeclaration.ts"
5372                      }
5373                    }
5374                  },
5375                  "typeAnnotation": {
5376                    "type": "TSStringKeyword",
5377                    "loc": {
5378                      "start": {
5379                        "line": 83,
5380                        "column": 57,
5381                        "program": "varRedeclaration.ts"
5382                      },
5383                      "end": {
5384                        "line": 83,
5385                        "column": 63,
5386                        "program": "varRedeclaration.ts"
5387                      }
5388                    }
5389                  },
5390                  "loc": {
5391                    "start": {
5392                      "line": 83,
5393                      "column": 54,
5394                      "program": "varRedeclaration.ts"
5395                    },
5396                    "end": {
5397                      "line": 83,
5398                      "column": 65,
5399                      "program": "varRedeclaration.ts"
5400                    }
5401                  }
5402                }
5403              ],
5404              "loc": {
5405                "start": {
5406                  "line": 83,
5407                  "column": 8,
5408                  "program": "varRedeclaration.ts"
5409                },
5410                "end": {
5411                  "line": 83,
5412                  "column": 65,
5413                  "program": "varRedeclaration.ts"
5414                }
5415              }
5416            },
5417            "decorators": [],
5418            "loc": {
5419              "start": {
5420                "line": 83,
5421                "column": 5,
5422                "program": "varRedeclaration.ts"
5423              },
5424              "end": {
5425                "line": 83,
5426                "column": 6,
5427                "program": "varRedeclaration.ts"
5428              }
5429            }
5430          },
5431          "init": null,
5432          "loc": {
5433            "start": {
5434              "line": 83,
5435              "column": 5,
5436              "program": "varRedeclaration.ts"
5437            },
5438            "end": {
5439              "line": 83,
5440              "column": 6,
5441              "program": "varRedeclaration.ts"
5442            }
5443          }
5444        }
5445      ],
5446      "kind": "var",
5447      "loc": {
5448        "start": {
5449          "line": 83,
5450          "column": 1,
5451          "program": "varRedeclaration.ts"
5452        },
5453        "end": {
5454          "line": 83,
5455          "column": 66,
5456          "program": "varRedeclaration.ts"
5457        }
5458      }
5459    },
5460    {
5461      "type": "FunctionDeclaration",
5462      "function": {
5463        "type": "ScriptFunction",
5464        "id": {
5465          "type": "Identifier",
5466          "name": "func1",
5467          "decorators": [],
5468          "loc": {
5469            "start": {
5470              "line": 85,
5471              "column": 10,
5472              "program": "varRedeclaration.ts"
5473            },
5474            "end": {
5475              "line": 85,
5476              "column": 15,
5477              "program": "varRedeclaration.ts"
5478            }
5479          }
5480        },
5481        "generator": false,
5482        "async": false,
5483        "expression": false,
5484        "params": [
5485          {
5486            "type": "Identifier",
5487            "name": "a",
5488            "typeAnnotation": {
5489              "type": "TSNumberKeyword",
5490              "loc": {
5491                "start": {
5492                  "line": 85,
5493                  "column": 19,
5494                  "program": "varRedeclaration.ts"
5495                },
5496                "end": {
5497                  "line": 85,
5498                  "column": 25,
5499                  "program": "varRedeclaration.ts"
5500                }
5501              }
5502            },
5503            "decorators": [],
5504            "loc": {
5505              "start": {
5506                "line": 85,
5507                "column": 16,
5508                "program": "varRedeclaration.ts"
5509              },
5510              "end": {
5511                "line": 85,
5512                "column": 17,
5513                "program": "varRedeclaration.ts"
5514              }
5515            }
5516          },
5517          {
5518            "type": "Identifier",
5519            "name": "b",
5520            "typeAnnotation": {
5521              "type": "TSStringKeyword",
5522              "loc": {
5523                "start": {
5524                  "line": 85,
5525                  "column": 30,
5526                  "program": "varRedeclaration.ts"
5527                },
5528                "end": {
5529                  "line": 85,
5530                  "column": 36,
5531                  "program": "varRedeclaration.ts"
5532                }
5533              }
5534            },
5535            "decorators": [],
5536            "loc": {
5537              "start": {
5538                "line": 85,
5539                "column": 27,
5540                "program": "varRedeclaration.ts"
5541              },
5542              "end": {
5543                "line": 85,
5544                "column": 28,
5545                "program": "varRedeclaration.ts"
5546              }
5547            }
5548          }
5549        ],
5550        "returnType": {
5551          "type": "TSLiteralType",
5552          "literal": {
5553            "type": "StringLiteral",
5554            "value": "foo",
5555            "loc": {
5556              "start": {
5557                "line": 85,
5558                "column": 39,
5559                "program": "varRedeclaration.ts"
5560              },
5561              "end": {
5562                "line": 85,
5563                "column": 44,
5564                "program": "varRedeclaration.ts"
5565              }
5566            }
5567          },
5568          "loc": {
5569            "start": {
5570              "line": 85,
5571              "column": 39,
5572              "program": "varRedeclaration.ts"
5573            },
5574            "end": {
5575              "line": 85,
5576              "column": 44,
5577              "program": "varRedeclaration.ts"
5578            }
5579          }
5580        },
5581        "body": {
5582          "type": "BlockStatement",
5583          "statements": [
5584            {
5585              "type": "ReturnStatement",
5586              "argument": {
5587                "type": "StringLiteral",
5588                "value": "foo",
5589                "loc": {
5590                  "start": {
5591                    "line": 86,
5592                    "column": 12,
5593                    "program": "varRedeclaration.ts"
5594                  },
5595                  "end": {
5596                    "line": 86,
5597                    "column": 17,
5598                    "program": "varRedeclaration.ts"
5599                  }
5600                }
5601              },
5602              "loc": {
5603                "start": {
5604                  "line": 86,
5605                  "column": 5,
5606                  "program": "varRedeclaration.ts"
5607                },
5608                "end": {
5609                  "line": 86,
5610                  "column": 18,
5611                  "program": "varRedeclaration.ts"
5612                }
5613              }
5614            }
5615          ],
5616          "loc": {
5617            "start": {
5618              "line": 85,
5619              "column": 45,
5620              "program": "varRedeclaration.ts"
5621            },
5622            "end": {
5623              "line": 87,
5624              "column": 2,
5625              "program": "varRedeclaration.ts"
5626            }
5627          }
5628        },
5629        "loc": {
5630          "start": {
5631            "line": 85,
5632            "column": 1,
5633            "program": "varRedeclaration.ts"
5634          },
5635          "end": {
5636            "line": 87,
5637            "column": 2,
5638            "program": "varRedeclaration.ts"
5639          }
5640        }
5641      },
5642      "loc": {
5643        "start": {
5644          "line": 85,
5645          "column": 1,
5646          "program": "varRedeclaration.ts"
5647        },
5648        "end": {
5649          "line": 87,
5650          "column": 2,
5651          "program": "varRedeclaration.ts"
5652        }
5653      }
5654    },
5655    {
5656      "type": "FunctionDeclaration",
5657      "function": {
5658        "type": "ScriptFunction",
5659        "id": {
5660          "type": "Identifier",
5661          "name": "func2",
5662          "decorators": [],
5663          "loc": {
5664            "start": {
5665              "line": 88,
5666              "column": 10,
5667              "program": "varRedeclaration.ts"
5668            },
5669            "end": {
5670              "line": 88,
5671              "column": 15,
5672              "program": "varRedeclaration.ts"
5673            }
5674          }
5675        },
5676        "generator": false,
5677        "async": false,
5678        "expression": false,
5679        "params": [
5680          {
5681            "type": "Identifier",
5682            "name": "a",
5683            "typeAnnotation": {
5684              "type": "TSStringKeyword",
5685              "loc": {
5686                "start": {
5687                  "line": 88,
5688                  "column": 19,
5689                  "program": "varRedeclaration.ts"
5690                },
5691                "end": {
5692                  "line": 88,
5693                  "column": 25,
5694                  "program": "varRedeclaration.ts"
5695                }
5696              }
5697            },
5698            "decorators": [],
5699            "loc": {
5700              "start": {
5701                "line": 88,
5702                "column": 16,
5703                "program": "varRedeclaration.ts"
5704              },
5705              "end": {
5706                "line": 88,
5707                "column": 17,
5708                "program": "varRedeclaration.ts"
5709              }
5710            }
5711          },
5712          {
5713            "type": "Identifier",
5714            "name": "b",
5715            "typeAnnotation": {
5716              "type": "TSNumberKeyword",
5717              "loc": {
5718                "start": {
5719                  "line": 88,
5720                  "column": 30,
5721                  "program": "varRedeclaration.ts"
5722                },
5723                "end": {
5724                  "line": 88,
5725                  "column": 36,
5726                  "program": "varRedeclaration.ts"
5727                }
5728              }
5729            },
5730            "decorators": [],
5731            "loc": {
5732              "start": {
5733                "line": 88,
5734                "column": 27,
5735                "program": "varRedeclaration.ts"
5736              },
5737              "end": {
5738                "line": 88,
5739                "column": 28,
5740                "program": "varRedeclaration.ts"
5741              }
5742            }
5743          }
5744        ],
5745        "returnType": {
5746          "type": "TSLiteralType",
5747          "literal": {
5748            "type": "BooleanLiteral",
5749            "value": true,
5750            "loc": {
5751              "start": {
5752                "line": 88,
5753                "column": 39,
5754                "program": "varRedeclaration.ts"
5755              },
5756              "end": {
5757                "line": 88,
5758                "column": 43,
5759                "program": "varRedeclaration.ts"
5760              }
5761            }
5762          },
5763          "loc": {
5764            "start": {
5765              "line": 88,
5766              "column": 39,
5767              "program": "varRedeclaration.ts"
5768            },
5769            "end": {
5770              "line": 88,
5771              "column": 43,
5772              "program": "varRedeclaration.ts"
5773            }
5774          }
5775        },
5776        "body": {
5777          "type": "BlockStatement",
5778          "statements": [
5779            {
5780              "type": "ReturnStatement",
5781              "argument": {
5782                "type": "BooleanLiteral",
5783                "value": true,
5784                "loc": {
5785                  "start": {
5786                    "line": 89,
5787                    "column": 12,
5788                    "program": "varRedeclaration.ts"
5789                  },
5790                  "end": {
5791                    "line": 89,
5792                    "column": 16,
5793                    "program": "varRedeclaration.ts"
5794                  }
5795                }
5796              },
5797              "loc": {
5798                "start": {
5799                  "line": 89,
5800                  "column": 5,
5801                  "program": "varRedeclaration.ts"
5802                },
5803                "end": {
5804                  "line": 89,
5805                  "column": 17,
5806                  "program": "varRedeclaration.ts"
5807                }
5808              }
5809            }
5810          ],
5811          "loc": {
5812            "start": {
5813              "line": 88,
5814              "column": 44,
5815              "program": "varRedeclaration.ts"
5816            },
5817            "end": {
5818              "line": 90,
5819              "column": 2,
5820              "program": "varRedeclaration.ts"
5821            }
5822          }
5823        },
5824        "loc": {
5825          "start": {
5826            "line": 88,
5827            "column": 1,
5828            "program": "varRedeclaration.ts"
5829          },
5830          "end": {
5831            "line": 90,
5832            "column": 2,
5833            "program": "varRedeclaration.ts"
5834          }
5835        }
5836      },
5837      "loc": {
5838        "start": {
5839          "line": 88,
5840          "column": 1,
5841          "program": "varRedeclaration.ts"
5842        },
5843        "end": {
5844          "line": 90,
5845          "column": 2,
5846          "program": "varRedeclaration.ts"
5847        }
5848      }
5849    },
5850    {
5851      "type": "VariableDeclaration",
5852      "declarations": [
5853        {
5854          "type": "VariableDeclarator",
5855          "id": {
5856            "type": "Identifier",
5857            "name": "l",
5858            "typeAnnotation": {
5859              "type": "TSUnionType",
5860              "types": [
5861                {
5862                  "type": "TSTypeQuery",
5863                  "exprName": {
5864                    "type": "Identifier",
5865                    "name": "func1",
5866                    "decorators": [],
5867                    "loc": {
5868                      "start": {
5869                        "line": 91,
5870                        "column": 15,
5871                        "program": "varRedeclaration.ts"
5872                      },
5873                      "end": {
5874                        "line": 91,
5875                        "column": 20,
5876                        "program": "varRedeclaration.ts"
5877                      }
5878                    }
5879                  },
5880                  "loc": {
5881                    "start": {
5882                      "line": 91,
5883                      "column": 8,
5884                      "program": "varRedeclaration.ts"
5885                    },
5886                    "end": {
5887                      "line": 91,
5888                      "column": 20,
5889                      "program": "varRedeclaration.ts"
5890                    }
5891                  }
5892                },
5893                {
5894                  "type": "TSTypeQuery",
5895                  "exprName": {
5896                    "type": "Identifier",
5897                    "name": "func2",
5898                    "decorators": [],
5899                    "loc": {
5900                      "start": {
5901                        "line": 91,
5902                        "column": 30,
5903                        "program": "varRedeclaration.ts"
5904                      },
5905                      "end": {
5906                        "line": 91,
5907                        "column": 35,
5908                        "program": "varRedeclaration.ts"
5909                      }
5910                    }
5911                  },
5912                  "loc": {
5913                    "start": {
5914                      "line": 91,
5915                      "column": 23,
5916                      "program": "varRedeclaration.ts"
5917                    },
5918                    "end": {
5919                      "line": 91,
5920                      "column": 35,
5921                      "program": "varRedeclaration.ts"
5922                    }
5923                  }
5924                }
5925              ],
5926              "loc": {
5927                "start": {
5928                  "line": 91,
5929                  "column": 8,
5930                  "program": "varRedeclaration.ts"
5931                },
5932                "end": {
5933                  "line": 91,
5934                  "column": 35,
5935                  "program": "varRedeclaration.ts"
5936                }
5937              }
5938            },
5939            "decorators": [],
5940            "loc": {
5941              "start": {
5942                "line": 91,
5943                "column": 5,
5944                "program": "varRedeclaration.ts"
5945              },
5946              "end": {
5947                "line": 91,
5948                "column": 6,
5949                "program": "varRedeclaration.ts"
5950              }
5951            }
5952          },
5953          "init": null,
5954          "loc": {
5955            "start": {
5956              "line": 91,
5957              "column": 5,
5958              "program": "varRedeclaration.ts"
5959            },
5960            "end": {
5961              "line": 91,
5962              "column": 6,
5963              "program": "varRedeclaration.ts"
5964            }
5965          }
5966        }
5967      ],
5968      "kind": "var",
5969      "loc": {
5970        "start": {
5971          "line": 91,
5972          "column": 1,
5973          "program": "varRedeclaration.ts"
5974        },
5975        "end": {
5976          "line": 91,
5977          "column": 36,
5978          "program": "varRedeclaration.ts"
5979        }
5980      }
5981    },
5982    {
5983      "type": "VariableDeclaration",
5984      "declarations": [
5985        {
5986          "type": "VariableDeclarator",
5987          "id": {
5988            "type": "Identifier",
5989            "name": "l",
5990            "typeAnnotation": {
5991              "type": "TSUnionType",
5992              "types": [
5993                {
5994                  "type": "TSParenthesizedType",
5995                  "typeAnnotation": {
5996                    "type": "TSFunctionType",
5997                    "params": [
5998                      {
5999                        "type": "Identifier",
6000                        "name": "a",
6001                        "typeAnnotation": {
6002                          "type": "TSNumberKeyword",
6003                          "loc": {
6004                            "start": {
6005                              "line": 92,
6006                              "column": 13,
6007                              "program": "varRedeclaration.ts"
6008                            },
6009                            "end": {
6010                              "line": 92,
6011                              "column": 19,
6012                              "program": "varRedeclaration.ts"
6013                            }
6014                          }
6015                        },
6016                        "decorators": [],
6017                        "loc": {
6018                          "start": {
6019                            "line": 92,
6020                            "column": 10,
6021                            "program": "varRedeclaration.ts"
6022                          },
6023                          "end": {
6024                            "line": 92,
6025                            "column": 11,
6026                            "program": "varRedeclaration.ts"
6027                          }
6028                        }
6029                      },
6030                      {
6031                        "type": "Identifier",
6032                        "name": "b",
6033                        "typeAnnotation": {
6034                          "type": "TSStringKeyword",
6035                          "loc": {
6036                            "start": {
6037                              "line": 92,
6038                              "column": 24,
6039                              "program": "varRedeclaration.ts"
6040                            },
6041                            "end": {
6042                              "line": 92,
6043                              "column": 30,
6044                              "program": "varRedeclaration.ts"
6045                            }
6046                          }
6047                        },
6048                        "decorators": [],
6049                        "loc": {
6050                          "start": {
6051                            "line": 92,
6052                            "column": 21,
6053                            "program": "varRedeclaration.ts"
6054                          },
6055                          "end": {
6056                            "line": 92,
6057                            "column": 22,
6058                            "program": "varRedeclaration.ts"
6059                          }
6060                        }
6061                      }
6062                    ],
6063                    "returnType": {
6064                      "type": "TSLiteralType",
6065                      "literal": {
6066                        "type": "StringLiteral",
6067                        "value": "foo",
6068                        "loc": {
6069                          "start": {
6070                            "line": 92,
6071                            "column": 35,
6072                            "program": "varRedeclaration.ts"
6073                          },
6074                          "end": {
6075                            "line": 92,
6076                            "column": 40,
6077                            "program": "varRedeclaration.ts"
6078                          }
6079                        }
6080                      },
6081                      "loc": {
6082                        "start": {
6083                          "line": 92,
6084                          "column": 35,
6085                          "program": "varRedeclaration.ts"
6086                        },
6087                        "end": {
6088                          "line": 92,
6089                          "column": 40,
6090                          "program": "varRedeclaration.ts"
6091                        }
6092                      }
6093                    },
6094                    "loc": {
6095                      "start": {
6096                        "line": 92,
6097                        "column": 9,
6098                        "program": "varRedeclaration.ts"
6099                      },
6100                      "end": {
6101                        "line": 92,
6102                        "column": 40,
6103                        "program": "varRedeclaration.ts"
6104                      }
6105                    }
6106                  },
6107                  "loc": {
6108                    "start": {
6109                      "line": 92,
6110                      "column": 8,
6111                      "program": "varRedeclaration.ts"
6112                    },
6113                    "end": {
6114                      "line": 92,
6115                      "column": 41,
6116                      "program": "varRedeclaration.ts"
6117                    }
6118                  }
6119                },
6120                {
6121                  "type": "TSParenthesizedType",
6122                  "typeAnnotation": {
6123                    "type": "TSFunctionType",
6124                    "params": [
6125                      {
6126                        "type": "Identifier",
6127                        "name": "a",
6128                        "typeAnnotation": {
6129                          "type": "TSStringKeyword",
6130                          "loc": {
6131                            "start": {
6132                              "line": 92,
6133                              "column": 49,
6134                              "program": "varRedeclaration.ts"
6135                            },
6136                            "end": {
6137                              "line": 92,
6138                              "column": 55,
6139                              "program": "varRedeclaration.ts"
6140                            }
6141                          }
6142                        },
6143                        "decorators": [],
6144                        "loc": {
6145                          "start": {
6146                            "line": 92,
6147                            "column": 46,
6148                            "program": "varRedeclaration.ts"
6149                          },
6150                          "end": {
6151                            "line": 92,
6152                            "column": 47,
6153                            "program": "varRedeclaration.ts"
6154                          }
6155                        }
6156                      },
6157                      {
6158                        "type": "Identifier",
6159                        "name": "b",
6160                        "typeAnnotation": {
6161                          "type": "TSNumberKeyword",
6162                          "loc": {
6163                            "start": {
6164                              "line": 92,
6165                              "column": 60,
6166                              "program": "varRedeclaration.ts"
6167                            },
6168                            "end": {
6169                              "line": 92,
6170                              "column": 66,
6171                              "program": "varRedeclaration.ts"
6172                            }
6173                          }
6174                        },
6175                        "decorators": [],
6176                        "loc": {
6177                          "start": {
6178                            "line": 92,
6179                            "column": 57,
6180                            "program": "varRedeclaration.ts"
6181                          },
6182                          "end": {
6183                            "line": 92,
6184                            "column": 58,
6185                            "program": "varRedeclaration.ts"
6186                          }
6187                        }
6188                      }
6189                    ],
6190                    "returnType": {
6191                      "type": "TSLiteralType",
6192                      "literal": {
6193                        "type": "BooleanLiteral",
6194                        "value": true,
6195                        "loc": {
6196                          "start": {
6197                            "line": 92,
6198                            "column": 71,
6199                            "program": "varRedeclaration.ts"
6200                          },
6201                          "end": {
6202                            "line": 92,
6203                            "column": 75,
6204                            "program": "varRedeclaration.ts"
6205                          }
6206                        }
6207                      },
6208                      "loc": {
6209                        "start": {
6210                          "line": 92,
6211                          "column": 71,
6212                          "program": "varRedeclaration.ts"
6213                        },
6214                        "end": {
6215                          "line": 92,
6216                          "column": 75,
6217                          "program": "varRedeclaration.ts"
6218                        }
6219                      }
6220                    },
6221                    "loc": {
6222                      "start": {
6223                        "line": 92,
6224                        "column": 45,
6225                        "program": "varRedeclaration.ts"
6226                      },
6227                      "end": {
6228                        "line": 92,
6229                        "column": 75,
6230                        "program": "varRedeclaration.ts"
6231                      }
6232                    }
6233                  },
6234                  "loc": {
6235                    "start": {
6236                      "line": 92,
6237                      "column": 44,
6238                      "program": "varRedeclaration.ts"
6239                    },
6240                    "end": {
6241                      "line": 92,
6242                      "column": 76,
6243                      "program": "varRedeclaration.ts"
6244                    }
6245                  }
6246                }
6247              ],
6248              "loc": {
6249                "start": {
6250                  "line": 92,
6251                  "column": 8,
6252                  "program": "varRedeclaration.ts"
6253                },
6254                "end": {
6255                  "line": 92,
6256                  "column": 76,
6257                  "program": "varRedeclaration.ts"
6258                }
6259              }
6260            },
6261            "decorators": [],
6262            "loc": {
6263              "start": {
6264                "line": 92,
6265                "column": 5,
6266                "program": "varRedeclaration.ts"
6267              },
6268              "end": {
6269                "line": 92,
6270                "column": 6,
6271                "program": "varRedeclaration.ts"
6272              }
6273            }
6274          },
6275          "init": null,
6276          "loc": {
6277            "start": {
6278              "line": 92,
6279              "column": 5,
6280              "program": "varRedeclaration.ts"
6281            },
6282            "end": {
6283              "line": 92,
6284              "column": 6,
6285              "program": "varRedeclaration.ts"
6286            }
6287          }
6288        }
6289      ],
6290      "kind": "var",
6291      "loc": {
6292        "start": {
6293          "line": 92,
6294          "column": 1,
6295          "program": "varRedeclaration.ts"
6296        },
6297        "end": {
6298          "line": 92,
6299          "column": 6,
6300          "program": "varRedeclaration.ts"
6301        }
6302      }
6303    },
6304    {
6305      "type": "VariableDeclaration",
6306      "declarations": [
6307        {
6308          "type": "VariableDeclarator",
6309          "id": {
6310            "type": "Identifier",
6311            "name": "m",
6312            "typeAnnotation": {
6313              "type": "TSTupleType",
6314              "elementTypes": [
6315                {
6316                  "type": "TSNamedTupleMember",
6317                  "elementType": {
6318                    "type": "TSNumberKeyword",
6319                    "loc": {
6320                      "start": {
6321                        "line": 94,
6322                        "column": 12,
6323                        "program": "varRedeclaration.ts"
6324                      },
6325                      "end": {
6326                        "line": 94,
6327                        "column": 18,
6328                        "program": "varRedeclaration.ts"
6329                      }
6330                    }
6331                  },
6332                  "label": {
6333                    "type": "Identifier",
6334                    "name": "a",
6335                    "decorators": [],
6336                    "loc": {
6337                      "start": {
6338                        "line": 94,
6339                        "column": 9,
6340                        "program": "varRedeclaration.ts"
6341                      },
6342                      "end": {
6343                        "line": 94,
6344                        "column": 10,
6345                        "program": "varRedeclaration.ts"
6346                      }
6347                    }
6348                  },
6349                  "loc": {
6350                    "start": {
6351                      "line": 94,
6352                      "column": 9,
6353                      "program": "varRedeclaration.ts"
6354                    },
6355                    "end": {
6356                      "line": 94,
6357                      "column": 19,
6358                      "program": "varRedeclaration.ts"
6359                    }
6360                  }
6361                },
6362                {
6363                  "type": "TSNamedTupleMember",
6364                  "elementType": {
6365                    "type": "TSStringKeyword",
6366                    "loc": {
6367                      "start": {
6368                        "line": 94,
6369                        "column": 23,
6370                        "program": "varRedeclaration.ts"
6371                      },
6372                      "end": {
6373                        "line": 94,
6374                        "column": 29,
6375                        "program": "varRedeclaration.ts"
6376                      }
6377                    }
6378                  },
6379                  "label": {
6380                    "type": "Identifier",
6381                    "name": "b",
6382                    "decorators": [],
6383                    "loc": {
6384                      "start": {
6385                        "line": 94,
6386                        "column": 20,
6387                        "program": "varRedeclaration.ts"
6388                      },
6389                      "end": {
6390                        "line": 94,
6391                        "column": 21,
6392                        "program": "varRedeclaration.ts"
6393                      }
6394                    }
6395                  },
6396                  "loc": {
6397                    "start": {
6398                      "line": 94,
6399                      "column": 20,
6400                      "program": "varRedeclaration.ts"
6401                    },
6402                    "end": {
6403                      "line": 94,
6404                      "column": 30,
6405                      "program": "varRedeclaration.ts"
6406                    }
6407                  }
6408                },
6409                {
6410                  "type": "TSNamedTupleMember",
6411                  "elementType": {
6412                    "type": "TSBooleanKeyword",
6413                    "loc": {
6414                      "start": {
6415                        "line": 94,
6416                        "column": 34,
6417                        "program": "varRedeclaration.ts"
6418                      },
6419                      "end": {
6420                        "line": 94,
6421                        "column": 41,
6422                        "program": "varRedeclaration.ts"
6423                      }
6424                    }
6425                  },
6426                  "label": {
6427                    "type": "Identifier",
6428                    "name": "c",
6429                    "decorators": [],
6430                    "loc": {
6431                      "start": {
6432                        "line": 94,
6433                        "column": 31,
6434                        "program": "varRedeclaration.ts"
6435                      },
6436                      "end": {
6437                        "line": 94,
6438                        "column": 32,
6439                        "program": "varRedeclaration.ts"
6440                      }
6441                    }
6442                  },
6443                  "loc": {
6444                    "start": {
6445                      "line": 94,
6446                      "column": 31,
6447                      "program": "varRedeclaration.ts"
6448                    },
6449                    "end": {
6450                      "line": 94,
6451                      "column": 42,
6452                      "program": "varRedeclaration.ts"
6453                    }
6454                  }
6455                }
6456              ],
6457              "loc": {
6458                "start": {
6459                  "line": 94,
6460                  "column": 8,
6461                  "program": "varRedeclaration.ts"
6462                },
6463                "end": {
6464                  "line": 94,
6465                  "column": 42,
6466                  "program": "varRedeclaration.ts"
6467                }
6468              }
6469            },
6470            "decorators": [],
6471            "loc": {
6472              "start": {
6473                "line": 94,
6474                "column": 5,
6475                "program": "varRedeclaration.ts"
6476              },
6477              "end": {
6478                "line": 94,
6479                "column": 6,
6480                "program": "varRedeclaration.ts"
6481              }
6482            }
6483          },
6484          "init": null,
6485          "loc": {
6486            "start": {
6487              "line": 94,
6488              "column": 5,
6489              "program": "varRedeclaration.ts"
6490            },
6491            "end": {
6492              "line": 94,
6493              "column": 6,
6494              "program": "varRedeclaration.ts"
6495            }
6496          }
6497        }
6498      ],
6499      "kind": "var",
6500      "loc": {
6501        "start": {
6502          "line": 94,
6503          "column": 1,
6504          "program": "varRedeclaration.ts"
6505        },
6506        "end": {
6507          "line": 94,
6508          "column": 43,
6509          "program": "varRedeclaration.ts"
6510        }
6511      }
6512    },
6513    {
6514      "type": "VariableDeclaration",
6515      "declarations": [
6516        {
6517          "type": "VariableDeclarator",
6518          "id": {
6519            "type": "Identifier",
6520            "name": "m",
6521            "typeAnnotation": {
6522              "type": "TSTupleType",
6523              "elementTypes": [
6524                {
6525                  "type": "TSNumberKeyword",
6526                  "loc": {
6527                    "start": {
6528                      "line": 95,
6529                      "column": 9,
6530                      "program": "varRedeclaration.ts"
6531                    },
6532                    "end": {
6533                      "line": 95,
6534                      "column": 16,
6535                      "program": "varRedeclaration.ts"
6536                    }
6537                  }
6538                },
6539                {
6540                  "type": "TSStringKeyword",
6541                  "loc": {
6542                    "start": {
6543                      "line": 95,
6544                      "column": 17,
6545                      "program": "varRedeclaration.ts"
6546                    },
6547                    "end": {
6548                      "line": 95,
6549                      "column": 24,
6550                      "program": "varRedeclaration.ts"
6551                    }
6552                  }
6553                },
6554                {
6555                  "type": "TSBooleanKeyword",
6556                  "loc": {
6557                    "start": {
6558                      "line": 95,
6559                      "column": 25,
6560                      "program": "varRedeclaration.ts"
6561                    },
6562                    "end": {
6563                      "line": 95,
6564                      "column": 33,
6565                      "program": "varRedeclaration.ts"
6566                    }
6567                  }
6568                }
6569              ],
6570              "loc": {
6571                "start": {
6572                  "line": 95,
6573                  "column": 8,
6574                  "program": "varRedeclaration.ts"
6575                },
6576                "end": {
6577                  "line": 95,
6578                  "column": 33,
6579                  "program": "varRedeclaration.ts"
6580                }
6581              }
6582            },
6583            "decorators": [],
6584            "loc": {
6585              "start": {
6586                "line": 95,
6587                "column": 5,
6588                "program": "varRedeclaration.ts"
6589              },
6590              "end": {
6591                "line": 95,
6592                "column": 6,
6593                "program": "varRedeclaration.ts"
6594              }
6595            }
6596          },
6597          "init": null,
6598          "loc": {
6599            "start": {
6600              "line": 95,
6601              "column": 5,
6602              "program": "varRedeclaration.ts"
6603            },
6604            "end": {
6605              "line": 95,
6606              "column": 6,
6607              "program": "varRedeclaration.ts"
6608            }
6609          }
6610        }
6611      ],
6612      "kind": "var",
6613      "loc": {
6614        "start": {
6615          "line": 95,
6616          "column": 1,
6617          "program": "varRedeclaration.ts"
6618        },
6619        "end": {
6620          "line": 95,
6621          "column": 34,
6622          "program": "varRedeclaration.ts"
6623        }
6624      }
6625    },
6626    {
6627      "type": "VariableDeclaration",
6628      "declarations": [
6629        {
6630          "type": "VariableDeclarator",
6631          "id": {
6632            "type": "Identifier",
6633            "name": "n",
6634            "typeAnnotation": {
6635              "type": "TSUnionType",
6636              "types": [
6637                {
6638                  "type": "TSArrayType",
6639                  "elementType": {
6640                    "type": "TSNumberKeyword",
6641                    "loc": {
6642                      "start": {
6643                        "line": 97,
6644                        "column": 8,
6645                        "program": "varRedeclaration.ts"
6646                      },
6647                      "end": {
6648                        "line": 97,
6649                        "column": 14,
6650                        "program": "varRedeclaration.ts"
6651                      }
6652                    }
6653                  },
6654                  "annotations": [],
6655                  "loc": {
6656                    "start": {
6657                      "line": 97,
6658                      "column": 8,
6659                      "program": "varRedeclaration.ts"
6660                    },
6661                    "end": {
6662                      "line": 97,
6663                      "column": 16,
6664                      "program": "varRedeclaration.ts"
6665                    }
6666                  }
6667                },
6668                {
6669                  "type": "TSTupleType",
6670                  "elementTypes": [
6671                    {
6672                      "type": "TSLiteralType",
6673                      "literal": {
6674                        "type": "NumberLiteral",
6675                        "value": 1,
6676                        "loc": {
6677                          "start": {
6678                            "line": 97,
6679                            "column": 20,
6680                            "program": "varRedeclaration.ts"
6681                          },
6682                          "end": {
6683                            "line": 97,
6684                            "column": 21,
6685                            "program": "varRedeclaration.ts"
6686                          }
6687                        }
6688                      },
6689                      "loc": {
6690                        "start": {
6691                          "line": 97,
6692                          "column": 20,
6693                          "program": "varRedeclaration.ts"
6694                        },
6695                        "end": {
6696                          "line": 97,
6697                          "column": 22,
6698                          "program": "varRedeclaration.ts"
6699                        }
6700                      }
6701                    },
6702                    {
6703                      "type": "TSLiteralType",
6704                      "literal": {
6705                        "type": "NumberLiteral",
6706                        "value": 2,
6707                        "loc": {
6708                          "start": {
6709                            "line": 97,
6710                            "column": 23,
6711                            "program": "varRedeclaration.ts"
6712                          },
6713                          "end": {
6714                            "line": 97,
6715                            "column": 24,
6716                            "program": "varRedeclaration.ts"
6717                          }
6718                        }
6719                      },
6720                      "loc": {
6721                        "start": {
6722                          "line": 97,
6723                          "column": 23,
6724                          "program": "varRedeclaration.ts"
6725                        },
6726                        "end": {
6727                          "line": 97,
6728                          "column": 25,
6729                          "program": "varRedeclaration.ts"
6730                        }
6731                      }
6732                    },
6733                    {
6734                      "type": "TSLiteralType",
6735                      "literal": {
6736                        "type": "NumberLiteral",
6737                        "value": 3,
6738                        "loc": {
6739                          "start": {
6740                            "line": 97,
6741                            "column": 26,
6742                            "program": "varRedeclaration.ts"
6743                          },
6744                          "end": {
6745                            "line": 97,
6746                            "column": 27,
6747                            "program": "varRedeclaration.ts"
6748                          }
6749                        }
6750                      },
6751                      "loc": {
6752                        "start": {
6753                          "line": 97,
6754                          "column": 26,
6755                          "program": "varRedeclaration.ts"
6756                        },
6757                        "end": {
6758                          "line": 97,
6759                          "column": 28,
6760                          "program": "varRedeclaration.ts"
6761                        }
6762                      }
6763                    }
6764                  ],
6765                  "loc": {
6766                    "start": {
6767                      "line": 97,
6768                      "column": 19,
6769                      "program": "varRedeclaration.ts"
6770                    },
6771                    "end": {
6772                      "line": 97,
6773                      "column": 28,
6774                      "program": "varRedeclaration.ts"
6775                    }
6776                  }
6777                }
6778              ],
6779              "loc": {
6780                "start": {
6781                  "line": 97,
6782                  "column": 8,
6783                  "program": "varRedeclaration.ts"
6784                },
6785                "end": {
6786                  "line": 97,
6787                  "column": 28,
6788                  "program": "varRedeclaration.ts"
6789                }
6790              }
6791            },
6792            "decorators": [],
6793            "loc": {
6794              "start": {
6795                "line": 97,
6796                "column": 5,
6797                "program": "varRedeclaration.ts"
6798              },
6799              "end": {
6800                "line": 97,
6801                "column": 6,
6802                "program": "varRedeclaration.ts"
6803              }
6804            }
6805          },
6806          "init": null,
6807          "loc": {
6808            "start": {
6809              "line": 97,
6810              "column": 5,
6811              "program": "varRedeclaration.ts"
6812            },
6813            "end": {
6814              "line": 97,
6815              "column": 6,
6816              "program": "varRedeclaration.ts"
6817            }
6818          }
6819        }
6820      ],
6821      "kind": "var",
6822      "loc": {
6823        "start": {
6824          "line": 97,
6825          "column": 1,
6826          "program": "varRedeclaration.ts"
6827        },
6828        "end": {
6829          "line": 97,
6830          "column": 29,
6831          "program": "varRedeclaration.ts"
6832        }
6833      }
6834    },
6835    {
6836      "type": "VariableDeclaration",
6837      "declarations": [
6838        {
6839          "type": "VariableDeclarator",
6840          "id": {
6841            "type": "Identifier",
6842            "name": "n",
6843            "typeAnnotation": {
6844              "type": "TSUnionType",
6845              "types": [
6846                {
6847                  "type": "TSTupleType",
6848                  "elementTypes": [
6849                    {
6850                      "type": "TSLiteralType",
6851                      "literal": {
6852                        "type": "NumberLiteral",
6853                        "value": 1,
6854                        "loc": {
6855                          "start": {
6856                            "line": 98,
6857                            "column": 9,
6858                            "program": "varRedeclaration.ts"
6859                          },
6860                          "end": {
6861                            "line": 98,
6862                            "column": 10,
6863                            "program": "varRedeclaration.ts"
6864                          }
6865                        }
6866                      },
6867                      "loc": {
6868                        "start": {
6869                          "line": 98,
6870                          "column": 9,
6871                          "program": "varRedeclaration.ts"
6872                        },
6873                        "end": {
6874                          "line": 98,
6875                          "column": 11,
6876                          "program": "varRedeclaration.ts"
6877                        }
6878                      }
6879                    },
6880                    {
6881                      "type": "TSLiteralType",
6882                      "literal": {
6883                        "type": "NumberLiteral",
6884                        "value": 2,
6885                        "loc": {
6886                          "start": {
6887                            "line": 98,
6888                            "column": 12,
6889                            "program": "varRedeclaration.ts"
6890                          },
6891                          "end": {
6892                            "line": 98,
6893                            "column": 13,
6894                            "program": "varRedeclaration.ts"
6895                          }
6896                        }
6897                      },
6898                      "loc": {
6899                        "start": {
6900                          "line": 98,
6901                          "column": 12,
6902                          "program": "varRedeclaration.ts"
6903                        },
6904                        "end": {
6905                          "line": 98,
6906                          "column": 14,
6907                          "program": "varRedeclaration.ts"
6908                        }
6909                      }
6910                    },
6911                    {
6912                      "type": "TSLiteralType",
6913                      "literal": {
6914                        "type": "NumberLiteral",
6915                        "value": 3,
6916                        "loc": {
6917                          "start": {
6918                            "line": 98,
6919                            "column": 15,
6920                            "program": "varRedeclaration.ts"
6921                          },
6922                          "end": {
6923                            "line": 98,
6924                            "column": 16,
6925                            "program": "varRedeclaration.ts"
6926                          }
6927                        }
6928                      },
6929                      "loc": {
6930                        "start": {
6931                          "line": 98,
6932                          "column": 15,
6933                          "program": "varRedeclaration.ts"
6934                        },
6935                        "end": {
6936                          "line": 98,
6937                          "column": 17,
6938                          "program": "varRedeclaration.ts"
6939                        }
6940                      }
6941                    }
6942                  ],
6943                  "loc": {
6944                    "start": {
6945                      "line": 98,
6946                      "column": 8,
6947                      "program": "varRedeclaration.ts"
6948                    },
6949                    "end": {
6950                      "line": 98,
6951                      "column": 17,
6952                      "program": "varRedeclaration.ts"
6953                    }
6954                  }
6955                },
6956                {
6957                  "type": "TSArrayType",
6958                  "elementType": {
6959                    "type": "TSNumberKeyword",
6960                    "loc": {
6961                      "start": {
6962                        "line": 98,
6963                        "column": 20,
6964                        "program": "varRedeclaration.ts"
6965                      },
6966                      "end": {
6967                        "line": 98,
6968                        "column": 26,
6969                        "program": "varRedeclaration.ts"
6970                      }
6971                    }
6972                  },
6973                  "annotations": [],
6974                  "loc": {
6975                    "start": {
6976                      "line": 98,
6977                      "column": 20,
6978                      "program": "varRedeclaration.ts"
6979                    },
6980                    "end": {
6981                      "line": 98,
6982                      "column": 28,
6983                      "program": "varRedeclaration.ts"
6984                    }
6985                  }
6986                }
6987              ],
6988              "loc": {
6989                "start": {
6990                  "line": 98,
6991                  "column": 8,
6992                  "program": "varRedeclaration.ts"
6993                },
6994                "end": {
6995                  "line": 98,
6996                  "column": 28,
6997                  "program": "varRedeclaration.ts"
6998                }
6999              }
7000            },
7001            "decorators": [],
7002            "loc": {
7003              "start": {
7004                "line": 98,
7005                "column": 5,
7006                "program": "varRedeclaration.ts"
7007              },
7008              "end": {
7009                "line": 98,
7010                "column": 6,
7011                "program": "varRedeclaration.ts"
7012              }
7013            }
7014          },
7015          "init": null,
7016          "loc": {
7017            "start": {
7018              "line": 98,
7019              "column": 5,
7020              "program": "varRedeclaration.ts"
7021            },
7022            "end": {
7023              "line": 98,
7024              "column": 6,
7025              "program": "varRedeclaration.ts"
7026            }
7027          }
7028        }
7029      ],
7030      "kind": "var",
7031      "loc": {
7032        "start": {
7033          "line": 98,
7034          "column": 1,
7035          "program": "varRedeclaration.ts"
7036        },
7037        "end": {
7038          "line": 98,
7039          "column": 29,
7040          "program": "varRedeclaration.ts"
7041        }
7042      }
7043    },
7044    {
7045      "type": "TSInterfaceDeclaration",
7046      "body": {
7047        "type": "TSInterfaceBody",
7048        "body": [
7049          {
7050            "type": "TSPropertySignature",
7051            "computed": false,
7052            "optional": false,
7053            "readonly": false,
7054            "key": {
7055              "type": "Identifier",
7056              "name": "a",
7057              "decorators": [],
7058              "loc": {
7059                "start": {
7060                  "line": 101,
7061                  "column": 5,
7062                  "program": "varRedeclaration.ts"
7063                },
7064                "end": {
7065                  "line": 101,
7066                  "column": 6,
7067                  "program": "varRedeclaration.ts"
7068                }
7069              }
7070            },
7071            "typeAnnotation": {
7072              "type": "TSNumberKeyword",
7073              "loc": {
7074                "start": {
7075                  "line": 101,
7076                  "column": 8,
7077                  "program": "varRedeclaration.ts"
7078                },
7079                "end": {
7080                  "line": 101,
7081                  "column": 14,
7082                  "program": "varRedeclaration.ts"
7083                }
7084              }
7085            },
7086            "loc": {
7087              "start": {
7088                "line": 101,
7089                "column": 5,
7090                "program": "varRedeclaration.ts"
7091              },
7092              "end": {
7093                "line": 101,
7094                "column": 15,
7095                "program": "varRedeclaration.ts"
7096              }
7097            }
7098          }
7099        ],
7100        "loc": {
7101          "start": {
7102            "line": 100,
7103            "column": 22,
7104            "program": "varRedeclaration.ts"
7105          },
7106          "end": {
7107            "line": 102,
7108            "column": 2,
7109            "program": "varRedeclaration.ts"
7110          }
7111        }
7112      },
7113      "id": {
7114        "type": "Identifier",
7115        "name": "interface7",
7116        "decorators": [],
7117        "loc": {
7118          "start": {
7119            "line": 100,
7120            "column": 11,
7121            "program": "varRedeclaration.ts"
7122          },
7123          "end": {
7124            "line": 100,
7125            "column": 21,
7126            "program": "varRedeclaration.ts"
7127          }
7128        }
7129      },
7130      "extends": [],
7131      "loc": {
7132        "start": {
7133          "line": 100,
7134          "column": 1,
7135          "program": "varRedeclaration.ts"
7136        },
7137        "end": {
7138          "line": 102,
7139          "column": 2,
7140          "program": "varRedeclaration.ts"
7141        }
7142      }
7143    },
7144    {
7145      "type": "TSInterfaceDeclaration",
7146      "body": {
7147        "type": "TSInterfaceBody",
7148        "body": [
7149          {
7150            "type": "TSPropertySignature",
7151            "computed": false,
7152            "optional": false,
7153            "readonly": false,
7154            "key": {
7155              "type": "Identifier",
7156              "name": "a",
7157              "decorators": [],
7158              "loc": {
7159                "start": {
7160                  "line": 105,
7161                  "column": 5,
7162                  "program": "varRedeclaration.ts"
7163                },
7164                "end": {
7165                  "line": 105,
7166                  "column": 6,
7167                  "program": "varRedeclaration.ts"
7168                }
7169              }
7170            },
7171            "typeAnnotation": {
7172              "type": "TSNumberKeyword",
7173              "loc": {
7174                "start": {
7175                  "line": 105,
7176                  "column": 8,
7177                  "program": "varRedeclaration.ts"
7178                },
7179                "end": {
7180                  "line": 105,
7181                  "column": 14,
7182                  "program": "varRedeclaration.ts"
7183                }
7184              }
7185            },
7186            "loc": {
7187              "start": {
7188                "line": 105,
7189                "column": 5,
7190                "program": "varRedeclaration.ts"
7191              },
7192              "end": {
7193                "line": 105,
7194                "column": 15,
7195                "program": "varRedeclaration.ts"
7196              }
7197            }
7198          }
7199        ],
7200        "loc": {
7201          "start": {
7202            "line": 104,
7203            "column": 41,
7204            "program": "varRedeclaration.ts"
7205          },
7206          "end": {
7207            "line": 106,
7208            "column": 2,
7209            "program": "varRedeclaration.ts"
7210          }
7211        }
7212      },
7213      "id": {
7214        "type": "Identifier",
7215        "name": "interface8",
7216        "decorators": [],
7217        "loc": {
7218          "start": {
7219            "line": 104,
7220            "column": 11,
7221            "program": "varRedeclaration.ts"
7222          },
7223          "end": {
7224            "line": 104,
7225            "column": 21,
7226            "program": "varRedeclaration.ts"
7227          }
7228        }
7229      },
7230      "extends": [
7231        {
7232          "type": "TSInterfaceHeritage",
7233          "expression": {
7234            "type": "TSTypeReference",
7235            "typeName": {
7236              "type": "Identifier",
7237              "name": "interface7",
7238              "decorators": [],
7239              "loc": {
7240                "start": {
7241                  "line": 104,
7242                  "column": 30,
7243                  "program": "varRedeclaration.ts"
7244                },
7245                "end": {
7246                  "line": 104,
7247                  "column": 40,
7248                  "program": "varRedeclaration.ts"
7249                }
7250              }
7251            },
7252            "loc": {
7253              "start": {
7254                "line": 104,
7255                "column": 41,
7256                "program": "varRedeclaration.ts"
7257              },
7258              "end": {
7259                "line": 104,
7260                "column": 40,
7261                "program": "varRedeclaration.ts"
7262              }
7263            }
7264          },
7265          "loc": {
7266            "start": {
7267              "line": 104,
7268              "column": 41,
7269              "program": "varRedeclaration.ts"
7270            },
7271            "end": {
7272              "line": 104,
7273              "column": 40,
7274              "program": "varRedeclaration.ts"
7275            }
7276          }
7277        }
7278      ],
7279      "loc": {
7280        "start": {
7281          "line": 104,
7282          "column": 1,
7283          "program": "varRedeclaration.ts"
7284        },
7285        "end": {
7286          "line": 106,
7287          "column": 2,
7288          "program": "varRedeclaration.ts"
7289        }
7290      }
7291    },
7292    {
7293      "type": "TSInterfaceDeclaration",
7294      "body": {
7295        "type": "TSInterfaceBody",
7296        "body": [
7297          {
7298            "type": "TSPropertySignature",
7299            "computed": false,
7300            "optional": false,
7301            "readonly": false,
7302            "key": {
7303              "type": "Identifier",
7304              "name": "a",
7305              "decorators": [],
7306              "loc": {
7307                "start": {
7308                  "line": 109,
7309                  "column": 5,
7310                  "program": "varRedeclaration.ts"
7311                },
7312                "end": {
7313                  "line": 109,
7314                  "column": 6,
7315                  "program": "varRedeclaration.ts"
7316                }
7317              }
7318            },
7319            "typeAnnotation": {
7320              "type": "TSNumberKeyword",
7321              "loc": {
7322                "start": {
7323                  "line": 109,
7324                  "column": 8,
7325                  "program": "varRedeclaration.ts"
7326                },
7327                "end": {
7328                  "line": 109,
7329                  "column": 14,
7330                  "program": "varRedeclaration.ts"
7331                }
7332              }
7333            },
7334            "loc": {
7335              "start": {
7336                "line": 109,
7337                "column": 5,
7338                "program": "varRedeclaration.ts"
7339              },
7340              "end": {
7341                "line": 109,
7342                "column": 15,
7343                "program": "varRedeclaration.ts"
7344              }
7345            }
7346          }
7347        ],
7348        "loc": {
7349          "start": {
7350            "line": 108,
7351            "column": 22,
7352            "program": "varRedeclaration.ts"
7353          },
7354          "end": {
7355            "line": 110,
7356            "column": 2,
7357            "program": "varRedeclaration.ts"
7358          }
7359        }
7360      },
7361      "id": {
7362        "type": "Identifier",
7363        "name": "interface9",
7364        "decorators": [],
7365        "loc": {
7366          "start": {
7367            "line": 108,
7368            "column": 11,
7369            "program": "varRedeclaration.ts"
7370          },
7371          "end": {
7372            "line": 108,
7373            "column": 21,
7374            "program": "varRedeclaration.ts"
7375          }
7376        }
7377      },
7378      "extends": [],
7379      "loc": {
7380        "start": {
7381          "line": 108,
7382          "column": 1,
7383          "program": "varRedeclaration.ts"
7384        },
7385        "end": {
7386          "line": 110,
7387          "column": 2,
7388          "program": "varRedeclaration.ts"
7389        }
7390      }
7391    },
7392    {
7393      "type": "VariableDeclaration",
7394      "declarations": [
7395        {
7396          "type": "VariableDeclarator",
7397          "id": {
7398            "type": "Identifier",
7399            "name": "o",
7400            "typeAnnotation": {
7401              "type": "TSTypeReference",
7402              "typeName": {
7403                "type": "Identifier",
7404                "name": "interface9",
7405                "decorators": [],
7406                "loc": {
7407                  "start": {
7408                    "line": 112,
7409                    "column": 8,
7410                    "program": "varRedeclaration.ts"
7411                  },
7412                  "end": {
7413                    "line": 112,
7414                    "column": 18,
7415                    "program": "varRedeclaration.ts"
7416                  }
7417                }
7418              },
7419              "loc": {
7420                "start": {
7421                  "line": 112,
7422                  "column": 8,
7423                  "program": "varRedeclaration.ts"
7424                },
7425                "end": {
7426                  "line": 112,
7427                  "column": 18,
7428                  "program": "varRedeclaration.ts"
7429                }
7430              }
7431            },
7432            "decorators": [],
7433            "loc": {
7434              "start": {
7435                "line": 112,
7436                "column": 5,
7437                "program": "varRedeclaration.ts"
7438              },
7439              "end": {
7440                "line": 112,
7441                "column": 6,
7442                "program": "varRedeclaration.ts"
7443              }
7444            }
7445          },
7446          "init": null,
7447          "loc": {
7448            "start": {
7449              "line": 112,
7450              "column": 5,
7451              "program": "varRedeclaration.ts"
7452            },
7453            "end": {
7454              "line": 112,
7455              "column": 6,
7456              "program": "varRedeclaration.ts"
7457            }
7458          }
7459        }
7460      ],
7461      "kind": "var",
7462      "loc": {
7463        "start": {
7464          "line": 112,
7465          "column": 1,
7466          "program": "varRedeclaration.ts"
7467        },
7468        "end": {
7469          "line": 112,
7470          "column": 19,
7471          "program": "varRedeclaration.ts"
7472        }
7473      }
7474    },
7475    {
7476      "type": "VariableDeclaration",
7477      "declarations": [
7478        {
7479          "type": "VariableDeclarator",
7480          "id": {
7481            "type": "Identifier",
7482            "name": "o",
7483            "typeAnnotation": {
7484              "type": "TSTypeReference",
7485              "typeName": {
7486                "type": "Identifier",
7487                "name": "interface8",
7488                "decorators": [],
7489                "loc": {
7490                  "start": {
7491                    "line": 113,
7492                    "column": 8,
7493                    "program": "varRedeclaration.ts"
7494                  },
7495                  "end": {
7496                    "line": 113,
7497                    "column": 18,
7498                    "program": "varRedeclaration.ts"
7499                  }
7500                }
7501              },
7502              "loc": {
7503                "start": {
7504                  "line": 113,
7505                  "column": 8,
7506                  "program": "varRedeclaration.ts"
7507                },
7508                "end": {
7509                  "line": 113,
7510                  "column": 18,
7511                  "program": "varRedeclaration.ts"
7512                }
7513              }
7514            },
7515            "decorators": [],
7516            "loc": {
7517              "start": {
7518                "line": 113,
7519                "column": 5,
7520                "program": "varRedeclaration.ts"
7521              },
7522              "end": {
7523                "line": 113,
7524                "column": 6,
7525                "program": "varRedeclaration.ts"
7526              }
7527            }
7528          },
7529          "init": null,
7530          "loc": {
7531            "start": {
7532              "line": 113,
7533              "column": 5,
7534              "program": "varRedeclaration.ts"
7535            },
7536            "end": {
7537              "line": 113,
7538              "column": 6,
7539              "program": "varRedeclaration.ts"
7540            }
7541          }
7542        }
7543      ],
7544      "kind": "var",
7545      "loc": {
7546        "start": {
7547          "line": 113,
7548          "column": 1,
7549          "program": "varRedeclaration.ts"
7550        },
7551        "end": {
7552          "line": 113,
7553          "column": 19,
7554          "program": "varRedeclaration.ts"
7555        }
7556      }
7557    },
7558    {
7559      "type": "VariableDeclaration",
7560      "declarations": [
7561        {
7562          "type": "VariableDeclarator",
7563          "id": {
7564            "type": "Identifier",
7565            "name": "p",
7566            "typeAnnotation": {
7567              "type": "TSTypeLiteral",
7568              "members": [
7569                {
7570                  "type": "TSPropertySignature",
7571                  "computed": false,
7572                  "optional": false,
7573                  "readonly": false,
7574                  "key": {
7575                    "type": "Identifier",
7576                    "name": "a",
7577                    "decorators": [],
7578                    "loc": {
7579                      "start": {
7580                        "line": 115,
7581                        "column": 10,
7582                        "program": "varRedeclaration.ts"
7583                      },
7584                      "end": {
7585                        "line": 115,
7586                        "column": 11,
7587                        "program": "varRedeclaration.ts"
7588                      }
7589                    }
7590                  },
7591                  "typeAnnotation": {
7592                    "type": "TSNumberKeyword",
7593                    "loc": {
7594                      "start": {
7595                        "line": 115,
7596                        "column": 13,
7597                        "program": "varRedeclaration.ts"
7598                      },
7599                      "end": {
7600                        "line": 115,
7601                        "column": 19,
7602                        "program": "varRedeclaration.ts"
7603                      }
7604                    }
7605                  },
7606                  "loc": {
7607                    "start": {
7608                      "line": 115,
7609                      "column": 10,
7610                      "program": "varRedeclaration.ts"
7611                    },
7612                    "end": {
7613                      "line": 115,
7614                      "column": 20,
7615                      "program": "varRedeclaration.ts"
7616                    }
7617                  }
7618                },
7619                {
7620                  "type": "TSPropertySignature",
7621                  "computed": false,
7622                  "optional": false,
7623                  "readonly": false,
7624                  "key": {
7625                    "type": "Identifier",
7626                    "name": "b",
7627                    "decorators": [],
7628                    "loc": {
7629                      "start": {
7630                        "line": 115,
7631                        "column": 21,
7632                        "program": "varRedeclaration.ts"
7633                      },
7634                      "end": {
7635                        "line": 115,
7636                        "column": 22,
7637                        "program": "varRedeclaration.ts"
7638                      }
7639                    }
7640                  },
7641                  "typeAnnotation": {
7642                    "type": "TSStringKeyword",
7643                    "loc": {
7644                      "start": {
7645                        "line": 115,
7646                        "column": 24,
7647                        "program": "varRedeclaration.ts"
7648                      },
7649                      "end": {
7650                        "line": 115,
7651                        "column": 30,
7652                        "program": "varRedeclaration.ts"
7653                      }
7654                    }
7655                  },
7656                  "loc": {
7657                    "start": {
7658                      "line": 115,
7659                      "column": 21,
7660                      "program": "varRedeclaration.ts"
7661                    },
7662                    "end": {
7663                      "line": 115,
7664                      "column": 32,
7665                      "program": "varRedeclaration.ts"
7666                    }
7667                  }
7668                }
7669              ],
7670              "loc": {
7671                "start": {
7672                  "line": 115,
7673                  "column": 8,
7674                  "program": "varRedeclaration.ts"
7675                },
7676                "end": {
7677                  "line": 115,
7678                  "column": 32,
7679                  "program": "varRedeclaration.ts"
7680                }
7681              }
7682            },
7683            "decorators": [],
7684            "loc": {
7685              "start": {
7686                "line": 115,
7687                "column": 5,
7688                "program": "varRedeclaration.ts"
7689              },
7690              "end": {
7691                "line": 115,
7692                "column": 6,
7693                "program": "varRedeclaration.ts"
7694              }
7695            }
7696          },
7697          "init": null,
7698          "loc": {
7699            "start": {
7700              "line": 115,
7701              "column": 5,
7702              "program": "varRedeclaration.ts"
7703            },
7704            "end": {
7705              "line": 115,
7706              "column": 6,
7707              "program": "varRedeclaration.ts"
7708            }
7709          }
7710        }
7711      ],
7712      "kind": "var",
7713      "loc": {
7714        "start": {
7715          "line": 115,
7716          "column": 1,
7717          "program": "varRedeclaration.ts"
7718        },
7719        "end": {
7720          "line": 115,
7721          "column": 33,
7722          "program": "varRedeclaration.ts"
7723        }
7724      }
7725    },
7726    {
7727      "type": "VariableDeclaration",
7728      "declarations": [
7729        {
7730          "type": "VariableDeclarator",
7731          "id": {
7732            "type": "Identifier",
7733            "name": "p",
7734            "typeAnnotation": {
7735              "type": "TSTypeQuery",
7736              "exprName": {
7737                "type": "Identifier",
7738                "name": "p",
7739                "decorators": [],
7740                "loc": {
7741                  "start": {
7742                    "line": 116,
7743                    "column": 15,
7744                    "program": "varRedeclaration.ts"
7745                  },
7746                  "end": {
7747                    "line": 116,
7748                    "column": 16,
7749                    "program": "varRedeclaration.ts"
7750                  }
7751                }
7752              },
7753              "loc": {
7754                "start": {
7755                  "line": 116,
7756                  "column": 8,
7757                  "program": "varRedeclaration.ts"
7758                },
7759                "end": {
7760                  "line": 116,
7761                  "column": 16,
7762                  "program": "varRedeclaration.ts"
7763                }
7764              }
7765            },
7766            "decorators": [],
7767            "loc": {
7768              "start": {
7769                "line": 116,
7770                "column": 5,
7771                "program": "varRedeclaration.ts"
7772              },
7773              "end": {
7774                "line": 116,
7775                "column": 6,
7776                "program": "varRedeclaration.ts"
7777              }
7778            }
7779          },
7780          "init": null,
7781          "loc": {
7782            "start": {
7783              "line": 116,
7784              "column": 5,
7785              "program": "varRedeclaration.ts"
7786            },
7787            "end": {
7788              "line": 116,
7789              "column": 6,
7790              "program": "varRedeclaration.ts"
7791            }
7792          }
7793        }
7794      ],
7795      "kind": "var",
7796      "loc": {
7797        "start": {
7798          "line": 116,
7799          "column": 1,
7800          "program": "varRedeclaration.ts"
7801        },
7802        "end": {
7803          "line": 116,
7804          "column": 17,
7805          "program": "varRedeclaration.ts"
7806        }
7807      }
7808    }
7809  ],
7810  "loc": {
7811    "start": {
7812      "line": 1,
7813      "column": 1,
7814      "program": "varRedeclaration.ts"
7815    },
7816    "end": {
7817      "line": 117,
7818      "column": 1,
7819      "program": "varRedeclaration.ts"
7820    }
7821  }
7822}
7823