• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1{
2  "type": "Program",
3  "statements": [
4    {
5      "type": "ClassDeclaration",
6      "definition": {
7        "id": {
8          "type": "Identifier",
9          "name": "A",
10          "decorators": [],
11          "loc": {
12            "start": {
13              "line": 16,
14              "column": 7,
15              "program": "generic_function_call_4.ets"
16            },
17            "end": {
18              "line": 16,
19              "column": 8,
20              "program": "generic_function_call_4.ets"
21            }
22          }
23        },
24        "superClass": null,
25        "implements": [],
26        "body": [
27          {
28            "type": "MethodDefinition",
29            "key": {
30              "type": "Identifier",
31              "name": "constructor",
32              "decorators": [],
33              "loc": {
34                "start": {
35                  "line": 16,
36                  "column": 10,
37                  "program": "generic_function_call_4.ets"
38                },
39                "end": {
40                  "line": 16,
41                  "column": 10,
42                  "program": "generic_function_call_4.ets"
43                }
44              }
45            },
46            "kind": "constructor",
47            "static": false,
48            "optional": false,
49            "computed": false,
50            "value": {
51              "type": "FunctionExpression",
52              "function": {
53                "type": "ScriptFunction",
54                "id": {
55                  "type": "Identifier",
56                  "name": "constructor",
57                  "decorators": [],
58                  "loc": {
59                    "start": {
60                      "line": 16,
61                      "column": 10,
62                      "program": "generic_function_call_4.ets"
63                    },
64                    "end": {
65                      "line": 16,
66                      "column": 10,
67                      "program": "generic_function_call_4.ets"
68                    }
69                  }
70                },
71                "generator": false,
72                "async": false,
73                "expression": false,
74                "params": [],
75                "body": {
76                  "type": "BlockStatement",
77                  "statements": [],
78                  "loc": {
79                    "start": {
80                      "line": 16,
81                      "column": 10,
82                      "program": "generic_function_call_4.ets"
83                    },
84                    "end": {
85                      "line": 16,
86                      "column": 10,
87                      "program": "generic_function_call_4.ets"
88                    }
89                  }
90                },
91                "loc": {
92                  "start": {
93                    "line": 16,
94                    "column": 10,
95                    "program": "generic_function_call_4.ets"
96                  },
97                  "end": {
98                    "line": 16,
99                    "column": 10,
100                    "program": "generic_function_call_4.ets"
101                  }
102                }
103              },
104              "loc": {
105                "start": {
106                  "line": 16,
107                  "column": 10,
108                  "program": "generic_function_call_4.ets"
109                },
110                "end": {
111                  "line": 16,
112                  "column": 10,
113                  "program": "generic_function_call_4.ets"
114                }
115              }
116            },
117            "overloads": [],
118            "decorators": [],
119            "loc": {
120              "start": {
121                "line": 1,
122                "column": 1,
123                "program": null
124              },
125              "end": {
126                "line": 1,
127                "column": 1,
128                "program": null
129              }
130            }
131          }
132        ],
133        "loc": {
134          "start": {
135            "line": 16,
136            "column": 9,
137            "program": "generic_function_call_4.ets"
138          },
139          "end": {
140            "line": 17,
141            "column": 6,
142            "program": "generic_function_call_4.ets"
143          }
144        }
145      },
146      "loc": {
147        "start": {
148          "line": 16,
149          "column": 1,
150          "program": "generic_function_call_4.ets"
151        },
152        "end": {
153          "line": 17,
154          "column": 6,
155          "program": "generic_function_call_4.ets"
156        }
157      }
158    },
159    {
160      "type": "ClassDeclaration",
161      "definition": {
162        "id": {
163          "type": "Identifier",
164          "name": "B",
165          "decorators": [],
166          "loc": {
167            "start": {
168              "line": 17,
169              "column": 7,
170              "program": "generic_function_call_4.ets"
171            },
172            "end": {
173              "line": 17,
174              "column": 8,
175              "program": "generic_function_call_4.ets"
176            }
177          }
178        },
179        "typeParameters": {
180          "type": "TSTypeParameterDeclaration",
181          "params": [
182            {
183              "type": "TSTypeParameter",
184              "name": {
185                "type": "Identifier",
186                "name": "T",
187                "decorators": [],
188                "loc": {
189                  "start": {
190                    "line": 17,
191                    "column": 9,
192                    "program": "generic_function_call_4.ets"
193                  },
194                  "end": {
195                    "line": 17,
196                    "column": 10,
197                    "program": "generic_function_call_4.ets"
198                  }
199                }
200              },
201              "loc": {
202                "start": {
203                  "line": 17,
204                  "column": 9,
205                  "program": "generic_function_call_4.ets"
206                },
207                "end": {
208                  "line": 17,
209                  "column": 11,
210                  "program": "generic_function_call_4.ets"
211                }
212              }
213            }
214          ],
215          "loc": {
216            "start": {
217              "line": 17,
218              "column": 8,
219              "program": "generic_function_call_4.ets"
220            },
221            "end": {
222              "line": 17,
223              "column": 11,
224              "program": "generic_function_call_4.ets"
225            }
226          }
227        },
228        "superClass": null,
229        "implements": [],
230        "body": [
231          {
232            "type": "MethodDefinition",
233            "key": {
234              "type": "Identifier",
235              "name": "constructor",
236              "decorators": [],
237              "loc": {
238                "start": {
239                  "line": 17,
240                  "column": 13,
241                  "program": "generic_function_call_4.ets"
242                },
243                "end": {
244                  "line": 17,
245                  "column": 13,
246                  "program": "generic_function_call_4.ets"
247                }
248              }
249            },
250            "kind": "constructor",
251            "static": false,
252            "optional": false,
253            "computed": false,
254            "value": {
255              "type": "FunctionExpression",
256              "function": {
257                "type": "ScriptFunction",
258                "id": {
259                  "type": "Identifier",
260                  "name": "constructor",
261                  "decorators": [],
262                  "loc": {
263                    "start": {
264                      "line": 17,
265                      "column": 13,
266                      "program": "generic_function_call_4.ets"
267                    },
268                    "end": {
269                      "line": 17,
270                      "column": 13,
271                      "program": "generic_function_call_4.ets"
272                    }
273                  }
274                },
275                "generator": false,
276                "async": false,
277                "expression": false,
278                "params": [],
279                "body": {
280                  "type": "BlockStatement",
281                  "statements": [],
282                  "loc": {
283                    "start": {
284                      "line": 17,
285                      "column": 13,
286                      "program": "generic_function_call_4.ets"
287                    },
288                    "end": {
289                      "line": 17,
290                      "column": 13,
291                      "program": "generic_function_call_4.ets"
292                    }
293                  }
294                },
295                "loc": {
296                  "start": {
297                    "line": 17,
298                    "column": 13,
299                    "program": "generic_function_call_4.ets"
300                  },
301                  "end": {
302                    "line": 17,
303                    "column": 13,
304                    "program": "generic_function_call_4.ets"
305                  }
306                }
307              },
308              "loc": {
309                "start": {
310                  "line": 17,
311                  "column": 13,
312                  "program": "generic_function_call_4.ets"
313                },
314                "end": {
315                  "line": 17,
316                  "column": 13,
317                  "program": "generic_function_call_4.ets"
318                }
319              }
320            },
321            "overloads": [],
322            "decorators": [],
323            "loc": {
324              "start": {
325                "line": 1,
326                "column": 1,
327                "program": null
328              },
329              "end": {
330                "line": 1,
331                "column": 1,
332                "program": null
333              }
334            }
335          }
336        ],
337        "loc": {
338          "start": {
339            "line": 17,
340            "column": 12,
341            "program": "generic_function_call_4.ets"
342          },
343          "end": {
344            "line": 19,
345            "column": 9,
346            "program": "generic_function_call_4.ets"
347          }
348        }
349      },
350      "loc": {
351        "start": {
352          "line": 17,
353          "column": 1,
354          "program": "generic_function_call_4.ets"
355        },
356        "end": {
357          "line": 19,
358          "column": 9,
359          "program": "generic_function_call_4.ets"
360        }
361      }
362    },
363    {
364      "type": "ClassDeclaration",
365      "definition": {
366        "id": {
367          "type": "Identifier",
368          "name": "ETSGLOBAL",
369          "decorators": [],
370          "loc": {
371            "start": {
372              "line": 1,
373              "column": 1,
374              "program": "generic_function_call_4.ets"
375            },
376            "end": {
377              "line": 1,
378              "column": 1,
379              "program": "generic_function_call_4.ets"
380            }
381          }
382        },
383        "superClass": null,
384        "implements": [],
385        "body": [
386          {
387            "type": "MethodDefinition",
388            "key": {
389              "type": "Identifier",
390              "name": "_$init$_",
391              "decorators": [],
392              "loc": {
393                "start": {
394                  "line": 1,
395                  "column": 1,
396                  "program": null
397                },
398                "end": {
399                  "line": 1,
400                  "column": 1,
401                  "program": null
402                }
403              }
404            },
405            "kind": "method",
406            "accessibility": "public",
407            "static": true,
408            "optional": false,
409            "computed": false,
410            "value": {
411              "type": "FunctionExpression",
412              "function": {
413                "type": "ScriptFunction",
414                "id": {
415                  "type": "Identifier",
416                  "name": "_$init$_",
417                  "decorators": [],
418                  "loc": {
419                    "start": {
420                      "line": 1,
421                      "column": 1,
422                      "program": null
423                    },
424                    "end": {
425                      "line": 1,
426                      "column": 1,
427                      "program": null
428                    }
429                  }
430                },
431                "generator": false,
432                "async": false,
433                "expression": false,
434                "params": [],
435                "body": {
436                  "type": "BlockStatement",
437                  "statements": [],
438                  "loc": {
439                    "start": {
440                      "line": 1,
441                      "column": 1,
442                      "program": null
443                    },
444                    "end": {
445                      "line": 1,
446                      "column": 1,
447                      "program": null
448                    }
449                  }
450                },
451                "loc": {
452                  "start": {
453                    "line": 1,
454                    "column": 1,
455                    "program": null
456                  },
457                  "end": {
458                    "line": 1,
459                    "column": 1,
460                    "program": null
461                  }
462                }
463              },
464              "loc": {
465                "start": {
466                  "line": 1,
467                  "column": 1,
468                  "program": null
469                },
470                "end": {
471                  "line": 1,
472                  "column": 1,
473                  "program": null
474                }
475              }
476            },
477            "overloads": [],
478            "decorators": [],
479            "loc": {
480              "start": {
481                "line": 1,
482                "column": 1,
483                "program": "generic_function_call_4.ets"
484              },
485              "end": {
486                "line": 1,
487                "column": 1,
488                "program": "generic_function_call_4.ets"
489              }
490            }
491          },
492          {
493            "type": "MethodDefinition",
494            "key": {
495              "type": "Identifier",
496              "name": "test2",
497              "decorators": [],
498              "loc": {
499                "start": {
500                  "line": 19,
501                  "column": 10,
502                  "program": "generic_function_call_4.ets"
503                },
504                "end": {
505                  "line": 19,
506                  "column": 15,
507                  "program": "generic_function_call_4.ets"
508                }
509              }
510            },
511            "kind": "method",
512            "accessibility": "public",
513            "static": true,
514            "optional": false,
515            "computed": false,
516            "value": {
517              "type": "FunctionExpression",
518              "function": {
519                "type": "ScriptFunction",
520                "id": {
521                  "type": "Identifier",
522                  "name": "test2",
523                  "decorators": [],
524                  "loc": {
525                    "start": {
526                      "line": 19,
527                      "column": 10,
528                      "program": "generic_function_call_4.ets"
529                    },
530                    "end": {
531                      "line": 19,
532                      "column": 15,
533                      "program": "generic_function_call_4.ets"
534                    }
535                  }
536                },
537                "generator": false,
538                "async": false,
539                "expression": false,
540                "params": [],
541                "returnType": {
542                  "type": "ETSTypeReference",
543                  "part": {
544                    "type": "ETSTypeReferencePart",
545                    "name": {
546                      "type": "Identifier",
547                      "name": "B",
548                      "decorators": [],
549                      "loc": {
550                        "start": {
551                          "line": 19,
552                          "column": 22,
553                          "program": "generic_function_call_4.ets"
554                        },
555                        "end": {
556                          "line": 19,
557                          "column": 23,
558                          "program": "generic_function_call_4.ets"
559                        }
560                      }
561                    },
562                    "typeParams": {
563                      "type": "TSTypeParameterInstantiation",
564                      "params": [
565                        {
566                          "type": "ETSTypeReference",
567                          "part": {
568                            "type": "ETSTypeReferencePart",
569                            "name": {
570                              "type": "Identifier",
571                              "name": "T",
572                              "decorators": [],
573                              "loc": {
574                                "start": {
575                                  "line": 19,
576                                  "column": 24,
577                                  "program": "generic_function_call_4.ets"
578                                },
579                                "end": {
580                                  "line": 19,
581                                  "column": 25,
582                                  "program": "generic_function_call_4.ets"
583                                }
584                              }
585                            },
586                            "loc": {
587                              "start": {
588                                "line": 19,
589                                "column": 24,
590                                "program": "generic_function_call_4.ets"
591                              },
592                              "end": {
593                                "line": 19,
594                                "column": 26,
595                                "program": "generic_function_call_4.ets"
596                              }
597                            }
598                          },
599                          "loc": {
600                            "start": {
601                              "line": 19,
602                              "column": 24,
603                              "program": "generic_function_call_4.ets"
604                            },
605                            "end": {
606                              "line": 19,
607                              "column": 26,
608                              "program": "generic_function_call_4.ets"
609                            }
610                          }
611                        }
612                      ],
613                      "loc": {
614                        "start": {
615                          "line": 19,
616                          "column": 23,
617                          "program": "generic_function_call_4.ets"
618                        },
619                        "end": {
620                          "line": 19,
621                          "column": 26,
622                          "program": "generic_function_call_4.ets"
623                        }
624                      }
625                    },
626                    "loc": {
627                      "start": {
628                        "line": 19,
629                        "column": 22,
630                        "program": "generic_function_call_4.ets"
631                      },
632                      "end": {
633                        "line": 19,
634                        "column": 28,
635                        "program": "generic_function_call_4.ets"
636                      }
637                    }
638                  },
639                  "loc": {
640                    "start": {
641                      "line": 19,
642                      "column": 22,
643                      "program": "generic_function_call_4.ets"
644                    },
645                    "end": {
646                      "line": 19,
647                      "column": 28,
648                      "program": "generic_function_call_4.ets"
649                    }
650                  }
651                },
652                "typeParameters": {
653                  "type": "TSTypeParameterDeclaration",
654                  "params": [
655                    {
656                      "type": "TSTypeParameter",
657                      "name": {
658                        "type": "Identifier",
659                        "name": "T",
660                        "decorators": [],
661                        "loc": {
662                          "start": {
663                            "line": 19,
664                            "column": 16,
665                            "program": "generic_function_call_4.ets"
666                          },
667                          "end": {
668                            "line": 19,
669                            "column": 17,
670                            "program": "generic_function_call_4.ets"
671                          }
672                        }
673                      },
674                      "loc": {
675                        "start": {
676                          "line": 19,
677                          "column": 16,
678                          "program": "generic_function_call_4.ets"
679                        },
680                        "end": {
681                          "line": 19,
682                          "column": 18,
683                          "program": "generic_function_call_4.ets"
684                        }
685                      }
686                    }
687                  ],
688                  "loc": {
689                    "start": {
690                      "line": 19,
691                      "column": 15,
692                      "program": "generic_function_call_4.ets"
693                    },
694                    "end": {
695                      "line": 19,
696                      "column": 18,
697                      "program": "generic_function_call_4.ets"
698                    }
699                  }
700                },
701                "body": {
702                  "type": "BlockStatement",
703                  "statements": [
704                    {
705                      "type": "VariableDeclaration",
706                      "declarations": [
707                        {
708                          "type": "VariableDeclarator",
709                          "id": {
710                            "type": "Identifier",
711                            "name": "tmp",
712                            "typeAnnotation": {
713                              "type": "ETSTypeReference",
714                              "part": {
715                                "type": "ETSTypeReferencePart",
716                                "name": {
717                                  "type": "Identifier",
718                                  "name": "B",
719                                  "decorators": [],
720                                  "loc": {
721                                    "start": {
722                                      "line": 20,
723                                      "column": 12,
724                                      "program": "generic_function_call_4.ets"
725                                    },
726                                    "end": {
727                                      "line": 20,
728                                      "column": 13,
729                                      "program": "generic_function_call_4.ets"
730                                    }
731                                  }
732                                },
733                                "typeParams": {
734                                  "type": "TSTypeParameterInstantiation",
735                                  "params": [
736                                    {
737                                      "type": "ETSTypeReference",
738                                      "part": {
739                                        "type": "ETSTypeReferencePart",
740                                        "name": {
741                                          "type": "Identifier",
742                                          "name": "T",
743                                          "decorators": [],
744                                          "loc": {
745                                            "start": {
746                                              "line": 20,
747                                              "column": 14,
748                                              "program": "generic_function_call_4.ets"
749                                            },
750                                            "end": {
751                                              "line": 20,
752                                              "column": 15,
753                                              "program": "generic_function_call_4.ets"
754                                            }
755                                          }
756                                        },
757                                        "loc": {
758                                          "start": {
759                                            "line": 20,
760                                            "column": 14,
761                                            "program": "generic_function_call_4.ets"
762                                          },
763                                          "end": {
764                                            "line": 20,
765                                            "column": 16,
766                                            "program": "generic_function_call_4.ets"
767                                          }
768                                        }
769                                      },
770                                      "loc": {
771                                        "start": {
772                                          "line": 20,
773                                          "column": 14,
774                                          "program": "generic_function_call_4.ets"
775                                        },
776                                        "end": {
777                                          "line": 20,
778                                          "column": 16,
779                                          "program": "generic_function_call_4.ets"
780                                        }
781                                      }
782                                    }
783                                  ],
784                                  "loc": {
785                                    "start": {
786                                      "line": 20,
787                                      "column": 13,
788                                      "program": "generic_function_call_4.ets"
789                                    },
790                                    "end": {
791                                      "line": 20,
792                                      "column": 16,
793                                      "program": "generic_function_call_4.ets"
794                                    }
795                                  }
796                                },
797                                "loc": {
798                                  "start": {
799                                    "line": 20,
800                                    "column": 12,
801                                    "program": "generic_function_call_4.ets"
802                                  },
803                                  "end": {
804                                    "line": 20,
805                                    "column": 18,
806                                    "program": "generic_function_call_4.ets"
807                                  }
808                                }
809                              },
810                              "loc": {
811                                "start": {
812                                  "line": 20,
813                                  "column": 12,
814                                  "program": "generic_function_call_4.ets"
815                                },
816                                "end": {
817                                  "line": 20,
818                                  "column": 18,
819                                  "program": "generic_function_call_4.ets"
820                                }
821                              }
822                            },
823                            "decorators": [],
824                            "loc": {
825                              "start": {
826                                "line": 20,
827                                "column": 7,
828                                "program": "generic_function_call_4.ets"
829                              },
830                              "end": {
831                                "line": 20,
832                                "column": 10,
833                                "program": "generic_function_call_4.ets"
834                              }
835                            }
836                          },
837                          "init": {
838                            "type": "ETSNewClassInstanceExpression",
839                            "typeReference": {
840                              "type": "ETSTypeReference",
841                              "part": {
842                                "type": "ETSTypeReferencePart",
843                                "name": {
844                                  "type": "Identifier",
845                                  "name": "B",
846                                  "decorators": [],
847                                  "loc": {
848                                    "start": {
849                                      "line": 20,
850                                      "column": 23,
851                                      "program": "generic_function_call_4.ets"
852                                    },
853                                    "end": {
854                                      "line": 20,
855                                      "column": 24,
856                                      "program": "generic_function_call_4.ets"
857                                    }
858                                  }
859                                },
860                                "typeParams": {
861                                  "type": "TSTypeParameterInstantiation",
862                                  "params": [
863                                    {
864                                      "type": "ETSTypeReference",
865                                      "part": {
866                                        "type": "ETSTypeReferencePart",
867                                        "name": {
868                                          "type": "Identifier",
869                                          "name": "T",
870                                          "decorators": [],
871                                          "loc": {
872                                            "start": {
873                                              "line": 20,
874                                              "column": 25,
875                                              "program": "generic_function_call_4.ets"
876                                            },
877                                            "end": {
878                                              "line": 20,
879                                              "column": 26,
880                                              "program": "generic_function_call_4.ets"
881                                            }
882                                          }
883                                        },
884                                        "loc": {
885                                          "start": {
886                                            "line": 20,
887                                            "column": 25,
888                                            "program": "generic_function_call_4.ets"
889                                          },
890                                          "end": {
891                                            "line": 20,
892                                            "column": 27,
893                                            "program": "generic_function_call_4.ets"
894                                          }
895                                        }
896                                      },
897                                      "loc": {
898                                        "start": {
899                                          "line": 20,
900                                          "column": 25,
901                                          "program": "generic_function_call_4.ets"
902                                        },
903                                        "end": {
904                                          "line": 20,
905                                          "column": 27,
906                                          "program": "generic_function_call_4.ets"
907                                        }
908                                      }
909                                    }
910                                  ],
911                                  "loc": {
912                                    "start": {
913                                      "line": 20,
914                                      "column": 24,
915                                      "program": "generic_function_call_4.ets"
916                                    },
917                                    "end": {
918                                      "line": 20,
919                                      "column": 27,
920                                      "program": "generic_function_call_4.ets"
921                                    }
922                                  }
923                                },
924                                "loc": {
925                                  "start": {
926                                    "line": 20,
927                                    "column": 23,
928                                    "program": "generic_function_call_4.ets"
929                                  },
930                                  "end": {
931                                    "line": 20,
932                                    "column": 28,
933                                    "program": "generic_function_call_4.ets"
934                                  }
935                                }
936                              },
937                              "loc": {
938                                "start": {
939                                  "line": 20,
940                                  "column": 23,
941                                  "program": "generic_function_call_4.ets"
942                                },
943                                "end": {
944                                  "line": 20,
945                                  "column": 28,
946                                  "program": "generic_function_call_4.ets"
947                                }
948                              }
949                            },
950                            "arguments": [],
951                            "loc": {
952                              "start": {
953                                "line": 20,
954                                "column": 19,
955                                "program": "generic_function_call_4.ets"
956                              },
957                              "end": {
958                                "line": 20,
959                                "column": 30,
960                                "program": "generic_function_call_4.ets"
961                              }
962                            }
963                          },
964                          "loc": {
965                            "start": {
966                              "line": 20,
967                              "column": 7,
968                              "program": "generic_function_call_4.ets"
969                            },
970                            "end": {
971                              "line": 20,
972                              "column": 30,
973                              "program": "generic_function_call_4.ets"
974                            }
975                          }
976                        }
977                      ],
978                      "kind": "let",
979                      "loc": {
980                        "start": {
981                          "line": 20,
982                          "column": 3,
983                          "program": "generic_function_call_4.ets"
984                        },
985                        "end": {
986                          "line": 20,
987                          "column": 30,
988                          "program": "generic_function_call_4.ets"
989                        }
990                      }
991                    },
992                    {
993                      "type": "ReturnStatement",
994                      "argument": {
995                        "type": "Identifier",
996                        "name": "tmp",
997                        "decorators": [],
998                        "loc": {
999                          "start": {
1000                            "line": 21,
1001                            "column": 10,
1002                            "program": "generic_function_call_4.ets"
1003                          },
1004                          "end": {
1005                            "line": 21,
1006                            "column": 13,
1007                            "program": "generic_function_call_4.ets"
1008                          }
1009                        }
1010                      },
1011                      "loc": {
1012                        "start": {
1013                          "line": 21,
1014                          "column": 3,
1015                          "program": "generic_function_call_4.ets"
1016                        },
1017                        "end": {
1018                          "line": 21,
1019                          "column": 14,
1020                          "program": "generic_function_call_4.ets"
1021                        }
1022                      }
1023                    }
1024                  ],
1025                  "loc": {
1026                    "start": {
1027                      "line": 19,
1028                      "column": 27,
1029                      "program": "generic_function_call_4.ets"
1030                    },
1031                    "end": {
1032                      "line": 22,
1033                      "column": 2,
1034                      "program": "generic_function_call_4.ets"
1035                    }
1036                  }
1037                },
1038                "loc": {
1039                  "start": {
1040                    "line": 19,
1041                    "column": 10,
1042                    "program": "generic_function_call_4.ets"
1043                  },
1044                  "end": {
1045                    "line": 22,
1046                    "column": 2,
1047                    "program": "generic_function_call_4.ets"
1048                  }
1049                }
1050              },
1051              "loc": {
1052                "start": {
1053                  "line": 19,
1054                  "column": 10,
1055                  "program": "generic_function_call_4.ets"
1056                },
1057                "end": {
1058                  "line": 22,
1059                  "column": 2,
1060                  "program": "generic_function_call_4.ets"
1061                }
1062              }
1063            },
1064            "overloads": [],
1065            "decorators": [],
1066            "loc": {
1067              "start": {
1068                "line": 19,
1069                "column": 1,
1070                "program": "generic_function_call_4.ets"
1071              },
1072              "end": {
1073                "line": 22,
1074                "column": 2,
1075                "program": "generic_function_call_4.ets"
1076              }
1077            }
1078          },
1079          {
1080            "type": "MethodDefinition",
1081            "key": {
1082              "type": "Identifier",
1083              "name": "test3",
1084              "decorators": [],
1085              "loc": {
1086                "start": {
1087                  "line": 24,
1088                  "column": 10,
1089                  "program": "generic_function_call_4.ets"
1090                },
1091                "end": {
1092                  "line": 24,
1093                  "column": 15,
1094                  "program": "generic_function_call_4.ets"
1095                }
1096              }
1097            },
1098            "kind": "method",
1099            "accessibility": "public",
1100            "static": true,
1101            "optional": false,
1102            "computed": false,
1103            "value": {
1104              "type": "FunctionExpression",
1105              "function": {
1106                "type": "ScriptFunction",
1107                "id": {
1108                  "type": "Identifier",
1109                  "name": "test3",
1110                  "decorators": [],
1111                  "loc": {
1112                    "start": {
1113                      "line": 24,
1114                      "column": 10,
1115                      "program": "generic_function_call_4.ets"
1116                    },
1117                    "end": {
1118                      "line": 24,
1119                      "column": 15,
1120                      "program": "generic_function_call_4.ets"
1121                    }
1122                  }
1123                },
1124                "generator": false,
1125                "async": false,
1126                "expression": false,
1127                "params": [],
1128                "returnType": {
1129                  "type": "ETSTypeReference",
1130                  "part": {
1131                    "type": "ETSTypeReferencePart",
1132                    "name": {
1133                      "type": "Identifier",
1134                      "name": "B",
1135                      "decorators": [],
1136                      "loc": {
1137                        "start": {
1138                          "line": 24,
1139                          "column": 22,
1140                          "program": "generic_function_call_4.ets"
1141                        },
1142                        "end": {
1143                          "line": 24,
1144                          "column": 23,
1145                          "program": "generic_function_call_4.ets"
1146                        }
1147                      }
1148                    },
1149                    "typeParams": {
1150                      "type": "TSTypeParameterInstantiation",
1151                      "params": [
1152                        {
1153                          "type": "ETSTypeReference",
1154                          "part": {
1155                            "type": "ETSTypeReferencePart",
1156                            "name": {
1157                              "type": "Identifier",
1158                              "name": "B",
1159                              "decorators": [],
1160                              "loc": {
1161                                "start": {
1162                                  "line": 24,
1163                                  "column": 24,
1164                                  "program": "generic_function_call_4.ets"
1165                                },
1166                                "end": {
1167                                  "line": 24,
1168                                  "column": 25,
1169                                  "program": "generic_function_call_4.ets"
1170                                }
1171                              }
1172                            },
1173                            "typeParams": {
1174                              "type": "TSTypeParameterInstantiation",
1175                              "params": [
1176                                {
1177                                  "type": "ETSTypeReference",
1178                                  "part": {
1179                                    "type": "ETSTypeReferencePart",
1180                                    "name": {
1181                                      "type": "Identifier",
1182                                      "name": "T",
1183                                      "decorators": [],
1184                                      "loc": {
1185                                        "start": {
1186                                          "line": 24,
1187                                          "column": 26,
1188                                          "program": "generic_function_call_4.ets"
1189                                        },
1190                                        "end": {
1191                                          "line": 24,
1192                                          "column": 27,
1193                                          "program": "generic_function_call_4.ets"
1194                                        }
1195                                      }
1196                                    },
1197                                    "loc": {
1198                                      "start": {
1199                                        "line": 24,
1200                                        "column": 26,
1201                                        "program": "generic_function_call_4.ets"
1202                                      },
1203                                      "end": {
1204                                        "line": 24,
1205                                        "column": 29,
1206                                        "program": "generic_function_call_4.ets"
1207                                      }
1208                                    }
1209                                  },
1210                                  "loc": {
1211                                    "start": {
1212                                      "line": 24,
1213                                      "column": 26,
1214                                      "program": "generic_function_call_4.ets"
1215                                    },
1216                                    "end": {
1217                                      "line": 24,
1218                                      "column": 29,
1219                                      "program": "generic_function_call_4.ets"
1220                                    }
1221                                  }
1222                                }
1223                              ],
1224                              "loc": {
1225                                "start": {
1226                                  "line": 24,
1227                                  "column": 25,
1228                                  "program": "generic_function_call_4.ets"
1229                                },
1230                                "end": {
1231                                  "line": 24,
1232                                  "column": 29,
1233                                  "program": "generic_function_call_4.ets"
1234                                }
1235                              }
1236                            },
1237                            "loc": {
1238                              "start": {
1239                                "line": 24,
1240                                "column": 24,
1241                                "program": "generic_function_call_4.ets"
1242                              },
1243                              "end": {
1244                                "line": 24,
1245                                "column": 29,
1246                                "program": "generic_function_call_4.ets"
1247                              }
1248                            }
1249                          },
1250                          "loc": {
1251                            "start": {
1252                              "line": 24,
1253                              "column": 24,
1254                              "program": "generic_function_call_4.ets"
1255                            },
1256                            "end": {
1257                              "line": 24,
1258                              "column": 29,
1259                              "program": "generic_function_call_4.ets"
1260                            }
1261                          }
1262                        }
1263                      ],
1264                      "loc": {
1265                        "start": {
1266                          "line": 24,
1267                          "column": 23,
1268                          "program": "generic_function_call_4.ets"
1269                        },
1270                        "end": {
1271                          "line": 24,
1272                          "column": 29,
1273                          "program": "generic_function_call_4.ets"
1274                        }
1275                      }
1276                    },
1277                    "loc": {
1278                      "start": {
1279                        "line": 24,
1280                        "column": 22,
1281                        "program": "generic_function_call_4.ets"
1282                      },
1283                      "end": {
1284                        "line": 24,
1285                        "column": 31,
1286                        "program": "generic_function_call_4.ets"
1287                      }
1288                    }
1289                  },
1290                  "loc": {
1291                    "start": {
1292                      "line": 24,
1293                      "column": 22,
1294                      "program": "generic_function_call_4.ets"
1295                    },
1296                    "end": {
1297                      "line": 24,
1298                      "column": 31,
1299                      "program": "generic_function_call_4.ets"
1300                    }
1301                  }
1302                },
1303                "typeParameters": {
1304                  "type": "TSTypeParameterDeclaration",
1305                  "params": [
1306                    {
1307                      "type": "TSTypeParameter",
1308                      "name": {
1309                        "type": "Identifier",
1310                        "name": "T",
1311                        "decorators": [],
1312                        "loc": {
1313                          "start": {
1314                            "line": 24,
1315                            "column": 16,
1316                            "program": "generic_function_call_4.ets"
1317                          },
1318                          "end": {
1319                            "line": 24,
1320                            "column": 17,
1321                            "program": "generic_function_call_4.ets"
1322                          }
1323                        }
1324                      },
1325                      "loc": {
1326                        "start": {
1327                          "line": 24,
1328                          "column": 16,
1329                          "program": "generic_function_call_4.ets"
1330                        },
1331                        "end": {
1332                          "line": 24,
1333                          "column": 18,
1334                          "program": "generic_function_call_4.ets"
1335                        }
1336                      }
1337                    }
1338                  ],
1339                  "loc": {
1340                    "start": {
1341                      "line": 24,
1342                      "column": 15,
1343                      "program": "generic_function_call_4.ets"
1344                    },
1345                    "end": {
1346                      "line": 24,
1347                      "column": 18,
1348                      "program": "generic_function_call_4.ets"
1349                    }
1350                  }
1351                },
1352                "body": {
1353                  "type": "BlockStatement",
1354                  "statements": [
1355                    {
1356                      "type": "VariableDeclaration",
1357                      "declarations": [
1358                        {
1359                          "type": "VariableDeclarator",
1360                          "id": {
1361                            "type": "Identifier",
1362                            "name": "tmp",
1363                            "typeAnnotation": {
1364                              "type": "ETSTypeReference",
1365                              "part": {
1366                                "type": "ETSTypeReferencePart",
1367                                "name": {
1368                                  "type": "Identifier",
1369                                  "name": "B",
1370                                  "decorators": [],
1371                                  "loc": {
1372                                    "start": {
1373                                      "line": 25,
1374                                      "column": 12,
1375                                      "program": "generic_function_call_4.ets"
1376                                    },
1377                                    "end": {
1378                                      "line": 25,
1379                                      "column": 13,
1380                                      "program": "generic_function_call_4.ets"
1381                                    }
1382                                  }
1383                                },
1384                                "typeParams": {
1385                                  "type": "TSTypeParameterInstantiation",
1386                                  "params": [
1387                                    {
1388                                      "type": "ETSTypeReference",
1389                                      "part": {
1390                                        "type": "ETSTypeReferencePart",
1391                                        "name": {
1392                                          "type": "Identifier",
1393                                          "name": "B",
1394                                          "decorators": [],
1395                                          "loc": {
1396                                            "start": {
1397                                              "line": 25,
1398                                              "column": 14,
1399                                              "program": "generic_function_call_4.ets"
1400                                            },
1401                                            "end": {
1402                                              "line": 25,
1403                                              "column": 15,
1404                                              "program": "generic_function_call_4.ets"
1405                                            }
1406                                          }
1407                                        },
1408                                        "typeParams": {
1409                                          "type": "TSTypeParameterInstantiation",
1410                                          "params": [
1411                                            {
1412                                              "type": "ETSTypeReference",
1413                                              "part": {
1414                                                "type": "ETSTypeReferencePart",
1415                                                "name": {
1416                                                  "type": "Identifier",
1417                                                  "name": "T",
1418                                                  "decorators": [],
1419                                                  "loc": {
1420                                                    "start": {
1421                                                      "line": 25,
1422                                                      "column": 16,
1423                                                      "program": "generic_function_call_4.ets"
1424                                                    },
1425                                                    "end": {
1426                                                      "line": 25,
1427                                                      "column": 17,
1428                                                      "program": "generic_function_call_4.ets"
1429                                                    }
1430                                                  }
1431                                                },
1432                                                "loc": {
1433                                                  "start": {
1434                                                    "line": 25,
1435                                                    "column": 16,
1436                                                    "program": "generic_function_call_4.ets"
1437                                                  },
1438                                                  "end": {
1439                                                    "line": 25,
1440                                                    "column": 19,
1441                                                    "program": "generic_function_call_4.ets"
1442                                                  }
1443                                                }
1444                                              },
1445                                              "loc": {
1446                                                "start": {
1447                                                  "line": 25,
1448                                                  "column": 16,
1449                                                  "program": "generic_function_call_4.ets"
1450                                                },
1451                                                "end": {
1452                                                  "line": 25,
1453                                                  "column": 19,
1454                                                  "program": "generic_function_call_4.ets"
1455                                                }
1456                                              }
1457                                            }
1458                                          ],
1459                                          "loc": {
1460                                            "start": {
1461                                              "line": 25,
1462                                              "column": 15,
1463                                              "program": "generic_function_call_4.ets"
1464                                            },
1465                                            "end": {
1466                                              "line": 25,
1467                                              "column": 19,
1468                                              "program": "generic_function_call_4.ets"
1469                                            }
1470                                          }
1471                                        },
1472                                        "loc": {
1473                                          "start": {
1474                                            "line": 25,
1475                                            "column": 14,
1476                                            "program": "generic_function_call_4.ets"
1477                                          },
1478                                          "end": {
1479                                            "line": 25,
1480                                            "column": 19,
1481                                            "program": "generic_function_call_4.ets"
1482                                          }
1483                                        }
1484                                      },
1485                                      "loc": {
1486                                        "start": {
1487                                          "line": 25,
1488                                          "column": 14,
1489                                          "program": "generic_function_call_4.ets"
1490                                        },
1491                                        "end": {
1492                                          "line": 25,
1493                                          "column": 19,
1494                                          "program": "generic_function_call_4.ets"
1495                                        }
1496                                      }
1497                                    }
1498                                  ],
1499                                  "loc": {
1500                                    "start": {
1501                                      "line": 25,
1502                                      "column": 13,
1503                                      "program": "generic_function_call_4.ets"
1504                                    },
1505                                    "end": {
1506                                      "line": 25,
1507                                      "column": 19,
1508                                      "program": "generic_function_call_4.ets"
1509                                    }
1510                                  }
1511                                },
1512                                "loc": {
1513                                  "start": {
1514                                    "line": 25,
1515                                    "column": 12,
1516                                    "program": "generic_function_call_4.ets"
1517                                  },
1518                                  "end": {
1519                                    "line": 25,
1520                                    "column": 21,
1521                                    "program": "generic_function_call_4.ets"
1522                                  }
1523                                }
1524                              },
1525                              "loc": {
1526                                "start": {
1527                                  "line": 25,
1528                                  "column": 12,
1529                                  "program": "generic_function_call_4.ets"
1530                                },
1531                                "end": {
1532                                  "line": 25,
1533                                  "column": 21,
1534                                  "program": "generic_function_call_4.ets"
1535                                }
1536                              }
1537                            },
1538                            "decorators": [],
1539                            "loc": {
1540                              "start": {
1541                                "line": 25,
1542                                "column": 7,
1543                                "program": "generic_function_call_4.ets"
1544                              },
1545                              "end": {
1546                                "line": 25,
1547                                "column": 10,
1548                                "program": "generic_function_call_4.ets"
1549                              }
1550                            }
1551                          },
1552                          "init": {
1553                            "type": "ETSNewClassInstanceExpression",
1554                            "typeReference": {
1555                              "type": "ETSTypeReference",
1556                              "part": {
1557                                "type": "ETSTypeReferencePart",
1558                                "name": {
1559                                  "type": "Identifier",
1560                                  "name": "B",
1561                                  "decorators": [],
1562                                  "loc": {
1563                                    "start": {
1564                                      "line": 25,
1565                                      "column": 26,
1566                                      "program": "generic_function_call_4.ets"
1567                                    },
1568                                    "end": {
1569                                      "line": 25,
1570                                      "column": 27,
1571                                      "program": "generic_function_call_4.ets"
1572                                    }
1573                                  }
1574                                },
1575                                "typeParams": {
1576                                  "type": "TSTypeParameterInstantiation",
1577                                  "params": [
1578                                    {
1579                                      "type": "ETSTypeReference",
1580                                      "part": {
1581                                        "type": "ETSTypeReferencePart",
1582                                        "name": {
1583                                          "type": "Identifier",
1584                                          "name": "B",
1585                                          "decorators": [],
1586                                          "loc": {
1587                                            "start": {
1588                                              "line": 25,
1589                                              "column": 28,
1590                                              "program": "generic_function_call_4.ets"
1591                                            },
1592                                            "end": {
1593                                              "line": 25,
1594                                              "column": 29,
1595                                              "program": "generic_function_call_4.ets"
1596                                            }
1597                                          }
1598                                        },
1599                                        "typeParams": {
1600                                          "type": "TSTypeParameterInstantiation",
1601                                          "params": [
1602                                            {
1603                                              "type": "ETSTypeReference",
1604                                              "part": {
1605                                                "type": "ETSTypeReferencePart",
1606                                                "name": {
1607                                                  "type": "Identifier",
1608                                                  "name": "T",
1609                                                  "decorators": [],
1610                                                  "loc": {
1611                                                    "start": {
1612                                                      "line": 25,
1613                                                      "column": 30,
1614                                                      "program": "generic_function_call_4.ets"
1615                                                    },
1616                                                    "end": {
1617                                                      "line": 25,
1618                                                      "column": 31,
1619                                                      "program": "generic_function_call_4.ets"
1620                                                    }
1621                                                  }
1622                                                },
1623                                                "loc": {
1624                                                  "start": {
1625                                                    "line": 25,
1626                                                    "column": 30,
1627                                                    "program": "generic_function_call_4.ets"
1628                                                  },
1629                                                  "end": {
1630                                                    "line": 25,
1631                                                    "column": 33,
1632                                                    "program": "generic_function_call_4.ets"
1633                                                  }
1634                                                }
1635                                              },
1636                                              "loc": {
1637                                                "start": {
1638                                                  "line": 25,
1639                                                  "column": 30,
1640                                                  "program": "generic_function_call_4.ets"
1641                                                },
1642                                                "end": {
1643                                                  "line": 25,
1644                                                  "column": 33,
1645                                                  "program": "generic_function_call_4.ets"
1646                                                }
1647                                              }
1648                                            }
1649                                          ],
1650                                          "loc": {
1651                                            "start": {
1652                                              "line": 25,
1653                                              "column": 29,
1654                                              "program": "generic_function_call_4.ets"
1655                                            },
1656                                            "end": {
1657                                              "line": 25,
1658                                              "column": 33,
1659                                              "program": "generic_function_call_4.ets"
1660                                            }
1661                                          }
1662                                        },
1663                                        "loc": {
1664                                          "start": {
1665                                            "line": 25,
1666                                            "column": 28,
1667                                            "program": "generic_function_call_4.ets"
1668                                          },
1669                                          "end": {
1670                                            "line": 25,
1671                                            "column": 33,
1672                                            "program": "generic_function_call_4.ets"
1673                                          }
1674                                        }
1675                                      },
1676                                      "loc": {
1677                                        "start": {
1678                                          "line": 25,
1679                                          "column": 28,
1680                                          "program": "generic_function_call_4.ets"
1681                                        },
1682                                        "end": {
1683                                          "line": 25,
1684                                          "column": 33,
1685                                          "program": "generic_function_call_4.ets"
1686                                        }
1687                                      }
1688                                    }
1689                                  ],
1690                                  "loc": {
1691                                    "start": {
1692                                      "line": 25,
1693                                      "column": 27,
1694                                      "program": "generic_function_call_4.ets"
1695                                    },
1696                                    "end": {
1697                                      "line": 25,
1698                                      "column": 33,
1699                                      "program": "generic_function_call_4.ets"
1700                                    }
1701                                  }
1702                                },
1703                                "loc": {
1704                                  "start": {
1705                                    "line": 25,
1706                                    "column": 26,
1707                                    "program": "generic_function_call_4.ets"
1708                                  },
1709                                  "end": {
1710                                    "line": 25,
1711                                    "column": 34,
1712                                    "program": "generic_function_call_4.ets"
1713                                  }
1714                                }
1715                              },
1716                              "loc": {
1717                                "start": {
1718                                  "line": 25,
1719                                  "column": 26,
1720                                  "program": "generic_function_call_4.ets"
1721                                },
1722                                "end": {
1723                                  "line": 25,
1724                                  "column": 34,
1725                                  "program": "generic_function_call_4.ets"
1726                                }
1727                              }
1728                            },
1729                            "arguments": [],
1730                            "loc": {
1731                              "start": {
1732                                "line": 25,
1733                                "column": 22,
1734                                "program": "generic_function_call_4.ets"
1735                              },
1736                              "end": {
1737                                "line": 25,
1738                                "column": 36,
1739                                "program": "generic_function_call_4.ets"
1740                              }
1741                            }
1742                          },
1743                          "loc": {
1744                            "start": {
1745                              "line": 25,
1746                              "column": 7,
1747                              "program": "generic_function_call_4.ets"
1748                            },
1749                            "end": {
1750                              "line": 25,
1751                              "column": 36,
1752                              "program": "generic_function_call_4.ets"
1753                            }
1754                          }
1755                        }
1756                      ],
1757                      "kind": "let",
1758                      "loc": {
1759                        "start": {
1760                          "line": 25,
1761                          "column": 3,
1762                          "program": "generic_function_call_4.ets"
1763                        },
1764                        "end": {
1765                          "line": 25,
1766                          "column": 36,
1767                          "program": "generic_function_call_4.ets"
1768                        }
1769                      }
1770                    },
1771                    {
1772                      "type": "ReturnStatement",
1773                      "argument": {
1774                        "type": "Identifier",
1775                        "name": "tmp",
1776                        "decorators": [],
1777                        "loc": {
1778                          "start": {
1779                            "line": 26,
1780                            "column": 10,
1781                            "program": "generic_function_call_4.ets"
1782                          },
1783                          "end": {
1784                            "line": 26,
1785                            "column": 13,
1786                            "program": "generic_function_call_4.ets"
1787                          }
1788                        }
1789                      },
1790                      "loc": {
1791                        "start": {
1792                          "line": 26,
1793                          "column": 3,
1794                          "program": "generic_function_call_4.ets"
1795                        },
1796                        "end": {
1797                          "line": 26,
1798                          "column": 14,
1799                          "program": "generic_function_call_4.ets"
1800                        }
1801                      }
1802                    }
1803                  ],
1804                  "loc": {
1805                    "start": {
1806                      "line": 24,
1807                      "column": 30,
1808                      "program": "generic_function_call_4.ets"
1809                    },
1810                    "end": {
1811                      "line": 27,
1812                      "column": 2,
1813                      "program": "generic_function_call_4.ets"
1814                    }
1815                  }
1816                },
1817                "loc": {
1818                  "start": {
1819                    "line": 24,
1820                    "column": 10,
1821                    "program": "generic_function_call_4.ets"
1822                  },
1823                  "end": {
1824                    "line": 27,
1825                    "column": 2,
1826                    "program": "generic_function_call_4.ets"
1827                  }
1828                }
1829              },
1830              "loc": {
1831                "start": {
1832                  "line": 24,
1833                  "column": 10,
1834                  "program": "generic_function_call_4.ets"
1835                },
1836                "end": {
1837                  "line": 27,
1838                  "column": 2,
1839                  "program": "generic_function_call_4.ets"
1840                }
1841              }
1842            },
1843            "overloads": [],
1844            "decorators": [],
1845            "loc": {
1846              "start": {
1847                "line": 24,
1848                "column": 1,
1849                "program": "generic_function_call_4.ets"
1850              },
1851              "end": {
1852                "line": 27,
1853                "column": 2,
1854                "program": "generic_function_call_4.ets"
1855              }
1856            }
1857          },
1858          {
1859            "type": "MethodDefinition",
1860            "key": {
1861              "type": "Identifier",
1862              "name": "main",
1863              "decorators": [],
1864              "loc": {
1865                "start": {
1866                  "line": 29,
1867                  "column": 10,
1868                  "program": "generic_function_call_4.ets"
1869                },
1870                "end": {
1871                  "line": 29,
1872                  "column": 14,
1873                  "program": "generic_function_call_4.ets"
1874                }
1875              }
1876            },
1877            "kind": "method",
1878            "accessibility": "public",
1879            "static": true,
1880            "optional": false,
1881            "computed": false,
1882            "value": {
1883              "type": "FunctionExpression",
1884              "function": {
1885                "type": "ScriptFunction",
1886                "id": {
1887                  "type": "Identifier",
1888                  "name": "main",
1889                  "decorators": [],
1890                  "loc": {
1891                    "start": {
1892                      "line": 29,
1893                      "column": 10,
1894                      "program": "generic_function_call_4.ets"
1895                    },
1896                    "end": {
1897                      "line": 29,
1898                      "column": 14,
1899                      "program": "generic_function_call_4.ets"
1900                    }
1901                  }
1902                },
1903                "generator": false,
1904                "async": false,
1905                "expression": false,
1906                "params": [],
1907                "returnType": {
1908                  "type": "ETSPrimitiveType",
1909                  "loc": {
1910                    "start": {
1911                      "line": 29,
1912                      "column": 18,
1913                      "program": "generic_function_call_4.ets"
1914                    },
1915                    "end": {
1916                      "line": 29,
1917                      "column": 22,
1918                      "program": "generic_function_call_4.ets"
1919                    }
1920                  }
1921                },
1922                "body": {
1923                  "type": "BlockStatement",
1924                  "statements": [
1925                    {
1926                      "type": "VariableDeclaration",
1927                      "declarations": [
1928                        {
1929                          "type": "VariableDeclarator",
1930                          "id": {
1931                            "type": "Identifier",
1932                            "name": "bClass",
1933                            "typeAnnotation": {
1934                              "type": "ETSTypeReference",
1935                              "part": {
1936                                "type": "ETSTypeReferencePart",
1937                                "name": {
1938                                  "type": "Identifier",
1939                                  "name": "B",
1940                                  "decorators": [],
1941                                  "loc": {
1942                                    "start": {
1943                                      "line": 30,
1944                                      "column": 15,
1945                                      "program": "generic_function_call_4.ets"
1946                                    },
1947                                    "end": {
1948                                      "line": 30,
1949                                      "column": 16,
1950                                      "program": "generic_function_call_4.ets"
1951                                    }
1952                                  }
1953                                },
1954                                "typeParams": {
1955                                  "type": "TSTypeParameterInstantiation",
1956                                  "params": [
1957                                    {
1958                                      "type": "ETSTypeReference",
1959                                      "part": {
1960                                        "type": "ETSTypeReferencePart",
1961                                        "name": {
1962                                          "type": "Identifier",
1963                                          "name": "A",
1964                                          "decorators": [],
1965                                          "loc": {
1966                                            "start": {
1967                                              "line": 30,
1968                                              "column": 17,
1969                                              "program": "generic_function_call_4.ets"
1970                                            },
1971                                            "end": {
1972                                              "line": 30,
1973                                              "column": 18,
1974                                              "program": "generic_function_call_4.ets"
1975                                            }
1976                                          }
1977                                        },
1978                                        "loc": {
1979                                          "start": {
1980                                            "line": 30,
1981                                            "column": 17,
1982                                            "program": "generic_function_call_4.ets"
1983                                          },
1984                                          "end": {
1985                                            "line": 30,
1986                                            "column": 19,
1987                                            "program": "generic_function_call_4.ets"
1988                                          }
1989                                        }
1990                                      },
1991                                      "loc": {
1992                                        "start": {
1993                                          "line": 30,
1994                                          "column": 17,
1995                                          "program": "generic_function_call_4.ets"
1996                                        },
1997                                        "end": {
1998                                          "line": 30,
1999                                          "column": 19,
2000                                          "program": "generic_function_call_4.ets"
2001                                        }
2002                                      }
2003                                    }
2004                                  ],
2005                                  "loc": {
2006                                    "start": {
2007                                      "line": 30,
2008                                      "column": 16,
2009                                      "program": "generic_function_call_4.ets"
2010                                    },
2011                                    "end": {
2012                                      "line": 30,
2013                                      "column": 19,
2014                                      "program": "generic_function_call_4.ets"
2015                                    }
2016                                  }
2017                                },
2018                                "loc": {
2019                                  "start": {
2020                                    "line": 30,
2021                                    "column": 15,
2022                                    "program": "generic_function_call_4.ets"
2023                                  },
2024                                  "end": {
2025                                    "line": 30,
2026                                    "column": 21,
2027                                    "program": "generic_function_call_4.ets"
2028                                  }
2029                                }
2030                              },
2031                              "loc": {
2032                                "start": {
2033                                  "line": 30,
2034                                  "column": 15,
2035                                  "program": "generic_function_call_4.ets"
2036                                },
2037                                "end": {
2038                                  "line": 30,
2039                                  "column": 21,
2040                                  "program": "generic_function_call_4.ets"
2041                                }
2042                              }
2043                            },
2044                            "decorators": [],
2045                            "loc": {
2046                              "start": {
2047                                "line": 30,
2048                                "column": 7,
2049                                "program": "generic_function_call_4.ets"
2050                              },
2051                              "end": {
2052                                "line": 30,
2053                                "column": 13,
2054                                "program": "generic_function_call_4.ets"
2055                              }
2056                            }
2057                          },
2058                          "init": {
2059                            "type": "CallExpression",
2060                            "callee": {
2061                              "type": "Identifier",
2062                              "name": "test2",
2063                              "decorators": [],
2064                              "loc": {
2065                                "start": {
2066                                  "line": 30,
2067                                  "column": 22,
2068                                  "program": "generic_function_call_4.ets"
2069                                },
2070                                "end": {
2071                                  "line": 30,
2072                                  "column": 27,
2073                                  "program": "generic_function_call_4.ets"
2074                                }
2075                              }
2076                            },
2077                            "arguments": [],
2078                            "optional": false,
2079                            "typeParameters": {
2080                              "type": "TSTypeParameterInstantiation",
2081                              "params": [
2082                                {
2083                                  "type": "ETSTypeReference",
2084                                  "part": {
2085                                    "type": "ETSTypeReferencePart",
2086                                    "name": {
2087                                      "type": "Identifier",
2088                                      "name": "A",
2089                                      "decorators": [],
2090                                      "loc": {
2091                                        "start": {
2092                                          "line": 30,
2093                                          "column": 28,
2094                                          "program": "generic_function_call_4.ets"
2095                                        },
2096                                        "end": {
2097                                          "line": 30,
2098                                          "column": 29,
2099                                          "program": "generic_function_call_4.ets"
2100                                        }
2101                                      }
2102                                    },
2103                                    "loc": {
2104                                      "start": {
2105                                        "line": 30,
2106                                        "column": 28,
2107                                        "program": "generic_function_call_4.ets"
2108                                      },
2109                                      "end": {
2110                                        "line": 30,
2111                                        "column": 30,
2112                                        "program": "generic_function_call_4.ets"
2113                                      }
2114                                    }
2115                                  },
2116                                  "loc": {
2117                                    "start": {
2118                                      "line": 30,
2119                                      "column": 28,
2120                                      "program": "generic_function_call_4.ets"
2121                                    },
2122                                    "end": {
2123                                      "line": 30,
2124                                      "column": 30,
2125                                      "program": "generic_function_call_4.ets"
2126                                    }
2127                                  }
2128                                }
2129                              ],
2130                              "loc": {
2131                                "start": {
2132                                  "line": 30,
2133                                  "column": 27,
2134                                  "program": "generic_function_call_4.ets"
2135                                },
2136                                "end": {
2137                                  "line": 30,
2138                                  "column": 30,
2139                                  "program": "generic_function_call_4.ets"
2140                                }
2141                              }
2142                            },
2143                            "loc": {
2144                              "start": {
2145                                "line": 30,
2146                                "column": 22,
2147                                "program": "generic_function_call_4.ets"
2148                              },
2149                              "end": {
2150                                "line": 30,
2151                                "column": 32,
2152                                "program": "generic_function_call_4.ets"
2153                              }
2154                            }
2155                          },
2156                          "loc": {
2157                            "start": {
2158                              "line": 30,
2159                              "column": 7,
2160                              "program": "generic_function_call_4.ets"
2161                            },
2162                            "end": {
2163                              "line": 30,
2164                              "column": 32,
2165                              "program": "generic_function_call_4.ets"
2166                            }
2167                          }
2168                        }
2169                      ],
2170                      "kind": "let",
2171                      "loc": {
2172                        "start": {
2173                          "line": 30,
2174                          "column": 3,
2175                          "program": "generic_function_call_4.ets"
2176                        },
2177                        "end": {
2178                          "line": 30,
2179                          "column": 33,
2180                          "program": "generic_function_call_4.ets"
2181                        }
2182                      }
2183                    },
2184                    {
2185                      "type": "VariableDeclaration",
2186                      "declarations": [
2187                        {
2188                          "type": "VariableDeclarator",
2189                          "id": {
2190                            "type": "Identifier",
2191                            "name": "bClass2",
2192                            "typeAnnotation": {
2193                              "type": "ETSTypeReference",
2194                              "part": {
2195                                "type": "ETSTypeReferencePart",
2196                                "name": {
2197                                  "type": "Identifier",
2198                                  "name": "B",
2199                                  "decorators": [],
2200                                  "loc": {
2201                                    "start": {
2202                                      "line": 31,
2203                                      "column": 16,
2204                                      "program": "generic_function_call_4.ets"
2205                                    },
2206                                    "end": {
2207                                      "line": 31,
2208                                      "column": 17,
2209                                      "program": "generic_function_call_4.ets"
2210                                    }
2211                                  }
2212                                },
2213                                "typeParams": {
2214                                  "type": "TSTypeParameterInstantiation",
2215                                  "params": [
2216                                    {
2217                                      "type": "ETSTypeReference",
2218                                      "part": {
2219                                        "type": "ETSTypeReferencePart",
2220                                        "name": {
2221                                          "type": "Identifier",
2222                                          "name": "B",
2223                                          "decorators": [],
2224                                          "loc": {
2225                                            "start": {
2226                                              "line": 31,
2227                                              "column": 18,
2228                                              "program": "generic_function_call_4.ets"
2229                                            },
2230                                            "end": {
2231                                              "line": 31,
2232                                              "column": 19,
2233                                              "program": "generic_function_call_4.ets"
2234                                            }
2235                                          }
2236                                        },
2237                                        "typeParams": {
2238                                          "type": "TSTypeParameterInstantiation",
2239                                          "params": [
2240                                            {
2241                                              "type": "ETSTypeReference",
2242                                              "part": {
2243                                                "type": "ETSTypeReferencePart",
2244                                                "name": {
2245                                                  "type": "Identifier",
2246                                                  "name": "A",
2247                                                  "decorators": [],
2248                                                  "loc": {
2249                                                    "start": {
2250                                                      "line": 31,
2251                                                      "column": 20,
2252                                                      "program": "generic_function_call_4.ets"
2253                                                    },
2254                                                    "end": {
2255                                                      "line": 31,
2256                                                      "column": 21,
2257                                                      "program": "generic_function_call_4.ets"
2258                                                    }
2259                                                  }
2260                                                },
2261                                                "loc": {
2262                                                  "start": {
2263                                                    "line": 31,
2264                                                    "column": 20,
2265                                                    "program": "generic_function_call_4.ets"
2266                                                  },
2267                                                  "end": {
2268                                                    "line": 31,
2269                                                    "column": 23,
2270                                                    "program": "generic_function_call_4.ets"
2271                                                  }
2272                                                }
2273                                              },
2274                                              "loc": {
2275                                                "start": {
2276                                                  "line": 31,
2277                                                  "column": 20,
2278                                                  "program": "generic_function_call_4.ets"
2279                                                },
2280                                                "end": {
2281                                                  "line": 31,
2282                                                  "column": 23,
2283                                                  "program": "generic_function_call_4.ets"
2284                                                }
2285                                              }
2286                                            }
2287                                          ],
2288                                          "loc": {
2289                                            "start": {
2290                                              "line": 31,
2291                                              "column": 19,
2292                                              "program": "generic_function_call_4.ets"
2293                                            },
2294                                            "end": {
2295                                              "line": 31,
2296                                              "column": 23,
2297                                              "program": "generic_function_call_4.ets"
2298                                            }
2299                                          }
2300                                        },
2301                                        "loc": {
2302                                          "start": {
2303                                            "line": 31,
2304                                            "column": 18,
2305                                            "program": "generic_function_call_4.ets"
2306                                          },
2307                                          "end": {
2308                                            "line": 31,
2309                                            "column": 23,
2310                                            "program": "generic_function_call_4.ets"
2311                                          }
2312                                        }
2313                                      },
2314                                      "loc": {
2315                                        "start": {
2316                                          "line": 31,
2317                                          "column": 18,
2318                                          "program": "generic_function_call_4.ets"
2319                                        },
2320                                        "end": {
2321                                          "line": 31,
2322                                          "column": 23,
2323                                          "program": "generic_function_call_4.ets"
2324                                        }
2325                                      }
2326                                    }
2327                                  ],
2328                                  "loc": {
2329                                    "start": {
2330                                      "line": 31,
2331                                      "column": 17,
2332                                      "program": "generic_function_call_4.ets"
2333                                    },
2334                                    "end": {
2335                                      "line": 31,
2336                                      "column": 23,
2337                                      "program": "generic_function_call_4.ets"
2338                                    }
2339                                  }
2340                                },
2341                                "loc": {
2342                                  "start": {
2343                                    "line": 31,
2344                                    "column": 16,
2345                                    "program": "generic_function_call_4.ets"
2346                                  },
2347                                  "end": {
2348                                    "line": 31,
2349                                    "column": 25,
2350                                    "program": "generic_function_call_4.ets"
2351                                  }
2352                                }
2353                              },
2354                              "loc": {
2355                                "start": {
2356                                  "line": 31,
2357                                  "column": 16,
2358                                  "program": "generic_function_call_4.ets"
2359                                },
2360                                "end": {
2361                                  "line": 31,
2362                                  "column": 25,
2363                                  "program": "generic_function_call_4.ets"
2364                                }
2365                              }
2366                            },
2367                            "decorators": [],
2368                            "loc": {
2369                              "start": {
2370                                "line": 31,
2371                                "column": 7,
2372                                "program": "generic_function_call_4.ets"
2373                              },
2374                              "end": {
2375                                "line": 31,
2376                                "column": 14,
2377                                "program": "generic_function_call_4.ets"
2378                              }
2379                            }
2380                          },
2381                          "init": {
2382                            "type": "CallExpression",
2383                            "callee": {
2384                              "type": "Identifier",
2385                              "name": "test3",
2386                              "decorators": [],
2387                              "loc": {
2388                                "start": {
2389                                  "line": 31,
2390                                  "column": 26,
2391                                  "program": "generic_function_call_4.ets"
2392                                },
2393                                "end": {
2394                                  "line": 31,
2395                                  "column": 31,
2396                                  "program": "generic_function_call_4.ets"
2397                                }
2398                              }
2399                            },
2400                            "arguments": [],
2401                            "optional": false,
2402                            "typeParameters": {
2403                              "type": "TSTypeParameterInstantiation",
2404                              "params": [
2405                                {
2406                                  "type": "ETSTypeReference",
2407                                  "part": {
2408                                    "type": "ETSTypeReferencePart",
2409                                    "name": {
2410                                      "type": "Identifier",
2411                                      "name": "A",
2412                                      "decorators": [],
2413                                      "loc": {
2414                                        "start": {
2415                                          "line": 31,
2416                                          "column": 32,
2417                                          "program": "generic_function_call_4.ets"
2418                                        },
2419                                        "end": {
2420                                          "line": 31,
2421                                          "column": 33,
2422                                          "program": "generic_function_call_4.ets"
2423                                        }
2424                                      }
2425                                    },
2426                                    "loc": {
2427                                      "start": {
2428                                        "line": 31,
2429                                        "column": 32,
2430                                        "program": "generic_function_call_4.ets"
2431                                      },
2432                                      "end": {
2433                                        "line": 31,
2434                                        "column": 34,
2435                                        "program": "generic_function_call_4.ets"
2436                                      }
2437                                    }
2438                                  },
2439                                  "loc": {
2440                                    "start": {
2441                                      "line": 31,
2442                                      "column": 32,
2443                                      "program": "generic_function_call_4.ets"
2444                                    },
2445                                    "end": {
2446                                      "line": 31,
2447                                      "column": 34,
2448                                      "program": "generic_function_call_4.ets"
2449                                    }
2450                                  }
2451                                }
2452                              ],
2453                              "loc": {
2454                                "start": {
2455                                  "line": 31,
2456                                  "column": 31,
2457                                  "program": "generic_function_call_4.ets"
2458                                },
2459                                "end": {
2460                                  "line": 31,
2461                                  "column": 34,
2462                                  "program": "generic_function_call_4.ets"
2463                                }
2464                              }
2465                            },
2466                            "loc": {
2467                              "start": {
2468                                "line": 31,
2469                                "column": 26,
2470                                "program": "generic_function_call_4.ets"
2471                              },
2472                              "end": {
2473                                "line": 31,
2474                                "column": 36,
2475                                "program": "generic_function_call_4.ets"
2476                              }
2477                            }
2478                          },
2479                          "loc": {
2480                            "start": {
2481                              "line": 31,
2482                              "column": 7,
2483                              "program": "generic_function_call_4.ets"
2484                            },
2485                            "end": {
2486                              "line": 31,
2487                              "column": 36,
2488                              "program": "generic_function_call_4.ets"
2489                            }
2490                          }
2491                        }
2492                      ],
2493                      "kind": "let",
2494                      "loc": {
2495                        "start": {
2496                          "line": 31,
2497                          "column": 3,
2498                          "program": "generic_function_call_4.ets"
2499                        },
2500                        "end": {
2501                          "line": 31,
2502                          "column": 37,
2503                          "program": "generic_function_call_4.ets"
2504                        }
2505                      }
2506                    }
2507                  ],
2508                  "loc": {
2509                    "start": {
2510                      "line": 29,
2511                      "column": 23,
2512                      "program": "generic_function_call_4.ets"
2513                    },
2514                    "end": {
2515                      "line": 32,
2516                      "column": 2,
2517                      "program": "generic_function_call_4.ets"
2518                    }
2519                  }
2520                },
2521                "loc": {
2522                  "start": {
2523                    "line": 29,
2524                    "column": 10,
2525                    "program": "generic_function_call_4.ets"
2526                  },
2527                  "end": {
2528                    "line": 32,
2529                    "column": 2,
2530                    "program": "generic_function_call_4.ets"
2531                  }
2532                }
2533              },
2534              "loc": {
2535                "start": {
2536                  "line": 29,
2537                  "column": 10,
2538                  "program": "generic_function_call_4.ets"
2539                },
2540                "end": {
2541                  "line": 32,
2542                  "column": 2,
2543                  "program": "generic_function_call_4.ets"
2544                }
2545              }
2546            },
2547            "overloads": [],
2548            "decorators": [],
2549            "loc": {
2550              "start": {
2551                "line": 29,
2552                "column": 1,
2553                "program": "generic_function_call_4.ets"
2554              },
2555              "end": {
2556                "line": 32,
2557                "column": 2,
2558                "program": "generic_function_call_4.ets"
2559              }
2560            }
2561          }
2562        ],
2563        "loc": {
2564          "start": {
2565            "line": 1,
2566            "column": 1,
2567            "program": "generic_function_call_4.ets"
2568          },
2569          "end": {
2570            "line": 1,
2571            "column": 1,
2572            "program": "generic_function_call_4.ets"
2573          }
2574        }
2575      },
2576      "loc": {
2577        "start": {
2578          "line": 1,
2579          "column": 1,
2580          "program": "generic_function_call_4.ets"
2581        },
2582        "end": {
2583          "line": 1,
2584          "column": 1,
2585          "program": "generic_function_call_4.ets"
2586        }
2587      }
2588    }
2589  ],
2590  "loc": {
2591    "start": {
2592      "line": 1,
2593      "column": 1,
2594      "program": "generic_function_call_4.ets"
2595    },
2596    "end": {
2597      "line": 33,
2598      "column": 1,
2599      "program": "generic_function_call_4.ets"
2600    }
2601  }
2602}
2603