• 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": "Foo",
10          "decorators": [],
11          "loc": {
12            "start": {
13              "line": 16,
14              "column": 7,
15              "program": "generic_resolve.ets"
16            },
17            "end": {
18              "line": 16,
19              "column": 10,
20              "program": "generic_resolve.ets"
21            }
22          }
23        },
24        "typeParameters": {
25          "type": "TSTypeParameterDeclaration",
26          "params": [
27            {
28              "type": "TSTypeParameter",
29              "name": {
30                "type": "Identifier",
31                "name": "T",
32                "decorators": [],
33                "loc": {
34                  "start": {
35                    "line": 16,
36                    "column": 11,
37                    "program": "generic_resolve.ets"
38                  },
39                  "end": {
40                    "line": 16,
41                    "column": 12,
42                    "program": "generic_resolve.ets"
43                  }
44                }
45              },
46              "loc": {
47                "start": {
48                  "line": 16,
49                  "column": 11,
50                  "program": "generic_resolve.ets"
51                },
52                "end": {
53                  "line": 16,
54                  "column": 13,
55                  "program": "generic_resolve.ets"
56                }
57              }
58            }
59          ],
60          "loc": {
61            "start": {
62              "line": 16,
63              "column": 10,
64              "program": "generic_resolve.ets"
65            },
66            "end": {
67              "line": 16,
68              "column": 13,
69              "program": "generic_resolve.ets"
70            }
71          }
72        },
73        "superClass": null,
74        "implements": [],
75        "body": [
76          {
77            "type": "MethodDefinition",
78            "key": {
79              "type": "Identifier",
80              "name": "constructor",
81              "decorators": [],
82              "loc": {
83                "start": {
84                  "line": 1,
85                  "column": 1,
86                  "program": null
87                },
88                "end": {
89                  "line": 1,
90                  "column": 1,
91                  "program": null
92                }
93              }
94            },
95            "kind": "constructor",
96            "accessibility": "private",
97            "static": false,
98            "optional": false,
99            "computed": false,
100            "value": {
101              "type": "FunctionExpression",
102              "function": {
103                "type": "ScriptFunction",
104                "id": {
105                  "type": "Identifier",
106                  "name": "constructor",
107                  "decorators": [],
108                  "loc": {
109                    "start": {
110                      "line": 1,
111                      "column": 1,
112                      "program": null
113                    },
114                    "end": {
115                      "line": 1,
116                      "column": 1,
117                      "program": null
118                    }
119                  }
120                },
121                "generator": false,
122                "async": false,
123                "expression": false,
124                "params": [],
125                "body": {
126                  "type": "BlockStatement",
127                  "statements": [],
128                  "loc": {
129                    "start": {
130                      "line": 17,
131                      "column": 27,
132                      "program": "generic_resolve.ets"
133                    },
134                    "end": {
135                      "line": 18,
136                      "column": 6,
137                      "program": "generic_resolve.ets"
138                    }
139                  }
140                },
141                "loc": {
142                  "start": {
143                    "line": 17,
144                    "column": 24,
145                    "program": "generic_resolve.ets"
146                  },
147                  "end": {
148                    "line": 18,
149                    "column": 6,
150                    "program": "generic_resolve.ets"
151                  }
152                }
153              },
154              "loc": {
155                "start": {
156                  "line": 17,
157                  "column": 24,
158                  "program": "generic_resolve.ets"
159                },
160                "end": {
161                  "line": 18,
162                  "column": 6,
163                  "program": "generic_resolve.ets"
164                }
165              }
166            },
167            "overloads": [],
168            "decorators": [],
169            "loc": {
170              "start": {
171                "line": 17,
172                "column": 5,
173                "program": "generic_resolve.ets"
174              },
175              "end": {
176                "line": 18,
177                "column": 6,
178                "program": "generic_resolve.ets"
179              }
180            }
181          },
182          {
183            "type": "MethodDefinition",
184            "key": {
185              "type": "Identifier",
186              "name": "then",
187              "decorators": [],
188              "loc": {
189                "start": {
190                  "line": 20,
191                  "column": 5,
192                  "program": "generic_resolve.ets"
193                },
194                "end": {
195                  "line": 20,
196                  "column": 9,
197                  "program": "generic_resolve.ets"
198                }
199              }
200            },
201            "kind": "method",
202            "accessibility": "public",
203            "static": false,
204            "optional": false,
205            "computed": false,
206            "value": {
207              "type": "FunctionExpression",
208              "function": {
209                "type": "ScriptFunction",
210                "id": {
211                  "type": "Identifier",
212                  "name": "then",
213                  "decorators": [],
214                  "loc": {
215                    "start": {
216                      "line": 20,
217                      "column": 5,
218                      "program": "generic_resolve.ets"
219                    },
220                    "end": {
221                      "line": 20,
222                      "column": 9,
223                      "program": "generic_resolve.ets"
224                    }
225                  }
226                },
227                "generator": false,
228                "async": false,
229                "expression": false,
230                "params": [
231                  {
232                    "type": "ETSParameterExpression",
233                    "name": {
234                      "type": "Identifier",
235                      "name": "onFulfilled",
236                      "typeAnnotation": {
237                        "type": "ETSFunctionType",
238                        "params": [],
239                        "returnType": {
240                          "type": "ETSTypeReference",
241                          "part": {
242                            "type": "ETSTypeReferencePart",
243                            "name": {
244                              "type": "Identifier",
245                              "name": "U",
246                              "decorators": [],
247                              "loc": {
248                                "start": {
249                                  "line": 20,
250                                  "column": 32,
251                                  "program": "generic_resolve.ets"
252                                },
253                                "end": {
254                                  "line": 20,
255                                  "column": 33,
256                                  "program": "generic_resolve.ets"
257                                }
258                              }
259                            },
260                            "loc": {
261                              "start": {
262                                "line": 20,
263                                "column": 32,
264                                "program": "generic_resolve.ets"
265                              },
266                              "end": {
267                                "line": 20,
268                                "column": 34,
269                                "program": "generic_resolve.ets"
270                              }
271                            }
272                          },
273                          "loc": {
274                            "start": {
275                              "line": 20,
276                              "column": 32,
277                              "program": "generic_resolve.ets"
278                            },
279                            "end": {
280                              "line": 20,
281                              "column": 34,
282                              "program": "generic_resolve.ets"
283                            }
284                          }
285                        },
286                        "loc": {
287                          "start": {
288                            "line": 20,
289                            "column": 26,
290                            "program": "generic_resolve.ets"
291                          },
292                          "end": {
293                            "line": 20,
294                            "column": 34,
295                            "program": "generic_resolve.ets"
296                          }
297                        }
298                      },
299                      "decorators": [],
300                      "loc": {
301                        "start": {
302                          "line": 20,
303                          "column": 13,
304                          "program": "generic_resolve.ets"
305                        },
306                        "end": {
307                          "line": 20,
308                          "column": 34,
309                          "program": "generic_resolve.ets"
310                        }
311                      }
312                    },
313                    "loc": {
314                      "start": {
315                        "line": 20,
316                        "column": 13,
317                        "program": "generic_resolve.ets"
318                      },
319                      "end": {
320                        "line": 20,
321                        "column": 34,
322                        "program": "generic_resolve.ets"
323                      }
324                    }
325                  }
326                ],
327                "returnType": {
328                  "type": "ETSTypeReference",
329                  "part": {
330                    "type": "ETSTypeReferencePart",
331                    "name": {
332                      "type": "Identifier",
333                      "name": "Foo",
334                      "decorators": [],
335                      "loc": {
336                        "start": {
337                          "line": 20,
338                          "column": 36,
339                          "program": "generic_resolve.ets"
340                        },
341                        "end": {
342                          "line": 20,
343                          "column": 39,
344                          "program": "generic_resolve.ets"
345                        }
346                      }
347                    },
348                    "typeParams": {
349                      "type": "TSTypeParameterInstantiation",
350                      "params": [
351                        {
352                          "type": "ETSTypeReference",
353                          "part": {
354                            "type": "ETSTypeReferencePart",
355                            "name": {
356                              "type": "Identifier",
357                              "name": "U",
358                              "decorators": [],
359                              "loc": {
360                                "start": {
361                                  "line": 20,
362                                  "column": 40,
363                                  "program": "generic_resolve.ets"
364                                },
365                                "end": {
366                                  "line": 20,
367                                  "column": 41,
368                                  "program": "generic_resolve.ets"
369                                }
370                              }
371                            },
372                            "loc": {
373                              "start": {
374                                "line": 20,
375                                "column": 40,
376                                "program": "generic_resolve.ets"
377                              },
378                              "end": {
379                                "line": 20,
380                                "column": 42,
381                                "program": "generic_resolve.ets"
382                              }
383                            }
384                          },
385                          "loc": {
386                            "start": {
387                              "line": 20,
388                              "column": 40,
389                              "program": "generic_resolve.ets"
390                            },
391                            "end": {
392                              "line": 20,
393                              "column": 42,
394                              "program": "generic_resolve.ets"
395                            }
396                          }
397                        }
398                      ],
399                      "loc": {
400                        "start": {
401                          "line": 20,
402                          "column": 39,
403                          "program": "generic_resolve.ets"
404                        },
405                        "end": {
406                          "line": 20,
407                          "column": 42,
408                          "program": "generic_resolve.ets"
409                        }
410                      }
411                    },
412                    "loc": {
413                      "start": {
414                        "line": 20,
415                        "column": 36,
416                        "program": "generic_resolve.ets"
417                      },
418                      "end": {
419                        "line": 20,
420                        "column": 44,
421                        "program": "generic_resolve.ets"
422                      }
423                    }
424                  },
425                  "loc": {
426                    "start": {
427                      "line": 20,
428                      "column": 36,
429                      "program": "generic_resolve.ets"
430                    },
431                    "end": {
432                      "line": 20,
433                      "column": 44,
434                      "program": "generic_resolve.ets"
435                    }
436                  }
437                },
438                "typeParameters": {
439                  "type": "TSTypeParameterDeclaration",
440                  "params": [
441                    {
442                      "type": "TSTypeParameter",
443                      "name": {
444                        "type": "Identifier",
445                        "name": "U",
446                        "decorators": [],
447                        "loc": {
448                          "start": {
449                            "line": 20,
450                            "column": 10,
451                            "program": "generic_resolve.ets"
452                          },
453                          "end": {
454                            "line": 20,
455                            "column": 11,
456                            "program": "generic_resolve.ets"
457                          }
458                        }
459                      },
460                      "loc": {
461                        "start": {
462                          "line": 20,
463                          "column": 10,
464                          "program": "generic_resolve.ets"
465                        },
466                        "end": {
467                          "line": 20,
468                          "column": 12,
469                          "program": "generic_resolve.ets"
470                        }
471                      }
472                    }
473                  ],
474                  "loc": {
475                    "start": {
476                      "line": 20,
477                      "column": 9,
478                      "program": "generic_resolve.ets"
479                    },
480                    "end": {
481                      "line": 20,
482                      "column": 12,
483                      "program": "generic_resolve.ets"
484                    }
485                  }
486                },
487                "body": {
488                  "type": "BlockStatement",
489                  "statements": [
490                    {
491                      "type": "VariableDeclaration",
492                      "declarations": [
493                        {
494                          "type": "VariableDeclarator",
495                          "id": {
496                            "type": "Identifier",
497                            "name": "promise",
498                            "decorators": [],
499                            "loc": {
500                              "start": {
501                                "line": 21,
502                                "column": 13,
503                                "program": "generic_resolve.ets"
504                              },
505                              "end": {
506                                "line": 21,
507                                "column": 20,
508                                "program": "generic_resolve.ets"
509                              }
510                            }
511                          },
512                          "init": {
513                            "type": "ETSNewClassInstanceExpression",
514                            "typeReference": {
515                              "type": "ETSTypeReference",
516                              "part": {
517                                "type": "ETSTypeReferencePart",
518                                "name": {
519                                  "type": "Identifier",
520                                  "name": "Foo",
521                                  "decorators": [],
522                                  "loc": {
523                                    "start": {
524                                      "line": 21,
525                                      "column": 27,
526                                      "program": "generic_resolve.ets"
527                                    },
528                                    "end": {
529                                      "line": 21,
530                                      "column": 30,
531                                      "program": "generic_resolve.ets"
532                                    }
533                                  }
534                                },
535                                "typeParams": {
536                                  "type": "TSTypeParameterInstantiation",
537                                  "params": [
538                                    {
539                                      "type": "ETSTypeReference",
540                                      "part": {
541                                        "type": "ETSTypeReferencePart",
542                                        "name": {
543                                          "type": "Identifier",
544                                          "name": "U",
545                                          "decorators": [],
546                                          "loc": {
547                                            "start": {
548                                              "line": 21,
549                                              "column": 31,
550                                              "program": "generic_resolve.ets"
551                                            },
552                                            "end": {
553                                              "line": 21,
554                                              "column": 32,
555                                              "program": "generic_resolve.ets"
556                                            }
557                                          }
558                                        },
559                                        "loc": {
560                                          "start": {
561                                            "line": 21,
562                                            "column": 31,
563                                            "program": "generic_resolve.ets"
564                                          },
565                                          "end": {
566                                            "line": 21,
567                                            "column": 33,
568                                            "program": "generic_resolve.ets"
569                                          }
570                                        }
571                                      },
572                                      "loc": {
573                                        "start": {
574                                          "line": 21,
575                                          "column": 31,
576                                          "program": "generic_resolve.ets"
577                                        },
578                                        "end": {
579                                          "line": 21,
580                                          "column": 33,
581                                          "program": "generic_resolve.ets"
582                                        }
583                                      }
584                                    }
585                                  ],
586                                  "loc": {
587                                    "start": {
588                                      "line": 21,
589                                      "column": 30,
590                                      "program": "generic_resolve.ets"
591                                    },
592                                    "end": {
593                                      "line": 21,
594                                      "column": 33,
595                                      "program": "generic_resolve.ets"
596                                    }
597                                  }
598                                },
599                                "loc": {
600                                  "start": {
601                                    "line": 21,
602                                    "column": 27,
603                                    "program": "generic_resolve.ets"
604                                  },
605                                  "end": {
606                                    "line": 21,
607                                    "column": 34,
608                                    "program": "generic_resolve.ets"
609                                  }
610                                }
611                              },
612                              "loc": {
613                                "start": {
614                                  "line": 21,
615                                  "column": 27,
616                                  "program": "generic_resolve.ets"
617                                },
618                                "end": {
619                                  "line": 21,
620                                  "column": 34,
621                                  "program": "generic_resolve.ets"
622                                }
623                              }
624                            },
625                            "arguments": [],
626                            "loc": {
627                              "start": {
628                                "line": 21,
629                                "column": 23,
630                                "program": "generic_resolve.ets"
631                              },
632                              "end": {
633                                "line": 21,
634                                "column": 36,
635                                "program": "generic_resolve.ets"
636                              }
637                            }
638                          },
639                          "loc": {
640                            "start": {
641                              "line": 21,
642                              "column": 13,
643                              "program": "generic_resolve.ets"
644                            },
645                            "end": {
646                              "line": 21,
647                              "column": 36,
648                              "program": "generic_resolve.ets"
649                            }
650                          }
651                        }
652                      ],
653                      "kind": "let",
654                      "loc": {
655                        "start": {
656                          "line": 21,
657                          "column": 9,
658                          "program": "generic_resolve.ets"
659                        },
660                        "end": {
661                          "line": 21,
662                          "column": 36,
663                          "program": "generic_resolve.ets"
664                        }
665                      }
666                    },
667                    {
668                      "type": "VariableDeclaration",
669                      "declarations": [
670                        {
671                          "type": "VariableDeclarator",
672                          "id": {
673                            "type": "Identifier",
674                            "name": "fn",
675                            "typeAnnotation": {
676                              "type": "ETSFunctionType",
677                              "params": [],
678                              "returnType": {
679                                "type": "ETSPrimitiveType",
680                                "loc": {
681                                  "start": {
682                                    "line": 22,
683                                    "column": 23,
684                                    "program": "generic_resolve.ets"
685                                  },
686                                  "end": {
687                                    "line": 22,
688                                    "column": 27,
689                                    "program": "generic_resolve.ets"
690                                  }
691                                }
692                              },
693                              "loc": {
694                                "start": {
695                                  "line": 22,
696                                  "column": 17,
697                                  "program": "generic_resolve.ets"
698                                },
699                                "end": {
700                                  "line": 22,
701                                  "column": 27,
702                                  "program": "generic_resolve.ets"
703                                }
704                              }
705                            },
706                            "decorators": [],
707                            "loc": {
708                              "start": {
709                                "line": 22,
710                                "column": 13,
711                                "program": "generic_resolve.ets"
712                              },
713                              "end": {
714                                "line": 22,
715                                "column": 15,
716                                "program": "generic_resolve.ets"
717                              }
718                            }
719                          },
720                          "init": {
721                            "type": "ArrowFunctionExpression",
722                            "function": {
723                              "type": "ScriptFunction",
724                              "id": null,
725                              "generator": false,
726                              "async": false,
727                              "expression": false,
728                              "params": [],
729                              "returnType": {
730                                "type": "ETSPrimitiveType",
731                                "loc": {
732                                  "start": {
733                                    "line": 22,
734                                    "column": 34,
735                                    "program": "generic_resolve.ets"
736                                  },
737                                  "end": {
738                                    "line": 22,
739                                    "column": 38,
740                                    "program": "generic_resolve.ets"
741                                  }
742                                }
743                              },
744                              "body": {
745                                "type": "BlockStatement",
746                                "statements": [
747                                  {
748                                    "type": "VariableDeclaration",
749                                    "declarations": [
750                                      {
751                                        "type": "VariableDeclarator",
752                                        "id": {
753                                          "type": "Identifier",
754                                          "name": "res",
755                                          "typeAnnotation": {
756                                            "type": "ETSTypeReference",
757                                            "part": {
758                                              "type": "ETSTypeReferencePart",
759                                              "name": {
760                                                "type": "Identifier",
761                                                "name": "U",
762                                                "decorators": [],
763                                                "loc": {
764                                                  "start": {
765                                                    "line": 23,
766                                                    "column": 22,
767                                                    "program": "generic_resolve.ets"
768                                                  },
769                                                  "end": {
770                                                    "line": 23,
771                                                    "column": 23,
772                                                    "program": "generic_resolve.ets"
773                                                  }
774                                                }
775                                              },
776                                              "loc": {
777                                                "start": {
778                                                  "line": 23,
779                                                  "column": 22,
780                                                  "program": "generic_resolve.ets"
781                                                },
782                                                "end": {
783                                                  "line": 23,
784                                                  "column": 25,
785                                                  "program": "generic_resolve.ets"
786                                                }
787                                              }
788                                            },
789                                            "loc": {
790                                              "start": {
791                                                "line": 23,
792                                                "column": 22,
793                                                "program": "generic_resolve.ets"
794                                              },
795                                              "end": {
796                                                "line": 23,
797                                                "column": 25,
798                                                "program": "generic_resolve.ets"
799                                              }
800                                            }
801                                          },
802                                          "decorators": [],
803                                          "loc": {
804                                            "start": {
805                                              "line": 23,
806                                              "column": 17,
807                                              "program": "generic_resolve.ets"
808                                            },
809                                            "end": {
810                                              "line": 23,
811                                              "column": 20,
812                                              "program": "generic_resolve.ets"
813                                            }
814                                          }
815                                        },
816                                        "init": {
817                                          "type": "CallExpression",
818                                          "callee": {
819                                            "type": "Identifier",
820                                            "name": "onFulfilled",
821                                            "decorators": [],
822                                            "loc": {
823                                              "start": {
824                                                "line": 23,
825                                                "column": 26,
826                                                "program": "generic_resolve.ets"
827                                              },
828                                              "end": {
829                                                "line": 23,
830                                                "column": 37,
831                                                "program": "generic_resolve.ets"
832                                              }
833                                            }
834                                          },
835                                          "arguments": [],
836                                          "optional": false,
837                                          "loc": {
838                                            "start": {
839                                              "line": 23,
840                                              "column": 26,
841                                              "program": "generic_resolve.ets"
842                                            },
843                                            "end": {
844                                              "line": 23,
845                                              "column": 39,
846                                              "program": "generic_resolve.ets"
847                                            }
848                                          }
849                                        },
850                                        "loc": {
851                                          "start": {
852                                            "line": 23,
853                                            "column": 17,
854                                            "program": "generic_resolve.ets"
855                                          },
856                                          "end": {
857                                            "line": 23,
858                                            "column": 39,
859                                            "program": "generic_resolve.ets"
860                                          }
861                                        }
862                                      }
863                                    ],
864                                    "kind": "let",
865                                    "loc": {
866                                      "start": {
867                                        "line": 23,
868                                        "column": 13,
869                                        "program": "generic_resolve.ets"
870                                      },
871                                      "end": {
872                                        "line": 23,
873                                        "column": 40,
874                                        "program": "generic_resolve.ets"
875                                      }
876                                    }
877                                  },
878                                  {
879                                    "type": "ExpressionStatement",
880                                    "expression": {
881                                      "type": "CallExpression",
882                                      "callee": {
883                                        "type": "MemberExpression",
884                                        "object": {
885                                          "type": "Identifier",
886                                          "name": "promise",
887                                          "decorators": [],
888                                          "loc": {
889                                            "start": {
890                                              "line": 24,
891                                              "column": 13,
892                                              "program": "generic_resolve.ets"
893                                            },
894                                            "end": {
895                                              "line": 24,
896                                              "column": 20,
897                                              "program": "generic_resolve.ets"
898                                            }
899                                          }
900                                        },
901                                        "property": {
902                                          "type": "Identifier",
903                                          "name": "resolve",
904                                          "decorators": [],
905                                          "loc": {
906                                            "start": {
907                                              "line": 24,
908                                              "column": 21,
909                                              "program": "generic_resolve.ets"
910                                            },
911                                            "end": {
912                                              "line": 24,
913                                              "column": 28,
914                                              "program": "generic_resolve.ets"
915                                            }
916                                          }
917                                        },
918                                        "computed": false,
919                                        "optional": false,
920                                        "loc": {
921                                          "start": {
922                                            "line": 24,
923                                            "column": 13,
924                                            "program": "generic_resolve.ets"
925                                          },
926                                          "end": {
927                                            "line": 24,
928                                            "column": 28,
929                                            "program": "generic_resolve.ets"
930                                          }
931                                        }
932                                      },
933                                      "arguments": [
934                                        {
935                                          "type": "Identifier",
936                                          "name": "res",
937                                          "decorators": [],
938                                          "loc": {
939                                            "start": {
940                                              "line": 24,
941                                              "column": 29,
942                                              "program": "generic_resolve.ets"
943                                            },
944                                            "end": {
945                                              "line": 24,
946                                              "column": 32,
947                                              "program": "generic_resolve.ets"
948                                            }
949                                          }
950                                        }
951                                      ],
952                                      "optional": false,
953                                      "loc": {
954                                        "start": {
955                                          "line": 24,
956                                          "column": 13,
957                                          "program": "generic_resolve.ets"
958                                        },
959                                        "end": {
960                                          "line": 24,
961                                          "column": 33,
962                                          "program": "generic_resolve.ets"
963                                        }
964                                      }
965                                    },
966                                    "loc": {
967                                      "start": {
968                                        "line": 24,
969                                        "column": 13,
970                                        "program": "generic_resolve.ets"
971                                      },
972                                      "end": {
973                                        "line": 24,
974                                        "column": 34,
975                                        "program": "generic_resolve.ets"
976                                      }
977                                    }
978                                  }
979                                ],
980                                "loc": {
981                                  "start": {
982                                    "line": 22,
983                                    "column": 42,
984                                    "program": "generic_resolve.ets"
985                                  },
986                                  "end": {
987                                    "line": 25,
988                                    "column": 10,
989                                    "program": "generic_resolve.ets"
990                                  }
991                                }
992                              },
993                              "loc": {
994                                "start": {
995                                  "line": 22,
996                                  "column": 30,
997                                  "program": "generic_resolve.ets"
998                                },
999                                "end": {
1000                                  "line": 25,
1001                                  "column": 10,
1002                                  "program": "generic_resolve.ets"
1003                                }
1004                              }
1005                            },
1006                            "loc": {
1007                              "start": {
1008                                "line": 22,
1009                                "column": 30,
1010                                "program": "generic_resolve.ets"
1011                              },
1012                              "end": {
1013                                "line": 25,
1014                                "column": 10,
1015                                "program": "generic_resolve.ets"
1016                              }
1017                            }
1018                          },
1019                          "loc": {
1020                            "start": {
1021                              "line": 22,
1022                              "column": 13,
1023                              "program": "generic_resolve.ets"
1024                            },
1025                            "end": {
1026                              "line": 25,
1027                              "column": 10,
1028                              "program": "generic_resolve.ets"
1029                            }
1030                          }
1031                        }
1032                      ],
1033                      "kind": "let",
1034                      "loc": {
1035                        "start": {
1036                          "line": 22,
1037                          "column": 9,
1038                          "program": "generic_resolve.ets"
1039                        },
1040                        "end": {
1041                          "line": 25,
1042                          "column": 10,
1043                          "program": "generic_resolve.ets"
1044                        }
1045                      }
1046                    },
1047                    {
1048                      "type": "ReturnStatement",
1049                      "argument": {
1050                        "type": "Identifier",
1051                        "name": "promise",
1052                        "decorators": [],
1053                        "loc": {
1054                          "start": {
1055                            "line": 26,
1056                            "column": 16,
1057                            "program": "generic_resolve.ets"
1058                          },
1059                          "end": {
1060                            "line": 26,
1061                            "column": 23,
1062                            "program": "generic_resolve.ets"
1063                          }
1064                        }
1065                      },
1066                      "loc": {
1067                        "start": {
1068                          "line": 26,
1069                          "column": 9,
1070                          "program": "generic_resolve.ets"
1071                        },
1072                        "end": {
1073                          "line": 26,
1074                          "column": 24,
1075                          "program": "generic_resolve.ets"
1076                        }
1077                      }
1078                    }
1079                  ],
1080                  "loc": {
1081                    "start": {
1082                      "line": 20,
1083                      "column": 43,
1084                      "program": "generic_resolve.ets"
1085                    },
1086                    "end": {
1087                      "line": 27,
1088                      "column": 6,
1089                      "program": "generic_resolve.ets"
1090                    }
1091                  }
1092                },
1093                "loc": {
1094                  "start": {
1095                    "line": 20,
1096                    "column": 9,
1097                    "program": "generic_resolve.ets"
1098                  },
1099                  "end": {
1100                    "line": 27,
1101                    "column": 6,
1102                    "program": "generic_resolve.ets"
1103                  }
1104                }
1105              },
1106              "loc": {
1107                "start": {
1108                  "line": 20,
1109                  "column": 9,
1110                  "program": "generic_resolve.ets"
1111                },
1112                "end": {
1113                  "line": 27,
1114                  "column": 6,
1115                  "program": "generic_resolve.ets"
1116                }
1117              }
1118            },
1119            "overloads": [],
1120            "decorators": [],
1121            "loc": {
1122              "start": {
1123                "line": 20,
1124                "column": 5,
1125                "program": "generic_resolve.ets"
1126              },
1127              "end": {
1128                "line": 27,
1129                "column": 6,
1130                "program": "generic_resolve.ets"
1131              }
1132            }
1133          },
1134          {
1135            "type": "MethodDefinition",
1136            "key": {
1137              "type": "Identifier",
1138              "name": "resolve",
1139              "decorators": [],
1140              "loc": {
1141                "start": {
1142                  "line": 29,
1143                  "column": 20,
1144                  "program": "generic_resolve.ets"
1145                },
1146                "end": {
1147                  "line": 29,
1148                  "column": 27,
1149                  "program": "generic_resolve.ets"
1150                }
1151              }
1152            },
1153            "kind": "method",
1154            "accessibility": "private",
1155            "static": false,
1156            "optional": false,
1157            "computed": false,
1158            "value": {
1159              "type": "FunctionExpression",
1160              "function": {
1161                "type": "ScriptFunction",
1162                "id": {
1163                  "type": "Identifier",
1164                  "name": "resolve",
1165                  "decorators": [],
1166                  "loc": {
1167                    "start": {
1168                      "line": 29,
1169                      "column": 20,
1170                      "program": "generic_resolve.ets"
1171                    },
1172                    "end": {
1173                      "line": 29,
1174                      "column": 27,
1175                      "program": "generic_resolve.ets"
1176                    }
1177                  }
1178                },
1179                "generator": false,
1180                "async": false,
1181                "expression": false,
1182                "params": [
1183                  {
1184                    "type": "ETSParameterExpression",
1185                    "name": {
1186                      "type": "Identifier",
1187                      "name": "value",
1188                      "typeAnnotation": {
1189                        "type": "ETSTypeReference",
1190                        "part": {
1191                          "type": "ETSTypeReferencePart",
1192                          "name": {
1193                            "type": "Identifier",
1194                            "name": "T",
1195                            "decorators": [],
1196                            "loc": {
1197                              "start": {
1198                                "line": 29,
1199                                "column": 35,
1200                                "program": "generic_resolve.ets"
1201                              },
1202                              "end": {
1203                                "line": 29,
1204                                "column": 36,
1205                                "program": "generic_resolve.ets"
1206                              }
1207                            }
1208                          },
1209                          "loc": {
1210                            "start": {
1211                              "line": 29,
1212                              "column": 35,
1213                              "program": "generic_resolve.ets"
1214                            },
1215                            "end": {
1216                              "line": 29,
1217                              "column": 37,
1218                              "program": "generic_resolve.ets"
1219                            }
1220                          }
1221                        },
1222                        "loc": {
1223                          "start": {
1224                            "line": 29,
1225                            "column": 35,
1226                            "program": "generic_resolve.ets"
1227                          },
1228                          "end": {
1229                            "line": 29,
1230                            "column": 37,
1231                            "program": "generic_resolve.ets"
1232                          }
1233                        }
1234                      },
1235                      "decorators": [],
1236                      "loc": {
1237                        "start": {
1238                          "line": 29,
1239                          "column": 28,
1240                          "program": "generic_resolve.ets"
1241                        },
1242                        "end": {
1243                          "line": 29,
1244                          "column": 37,
1245                          "program": "generic_resolve.ets"
1246                        }
1247                      }
1248                    },
1249                    "loc": {
1250                      "start": {
1251                        "line": 29,
1252                        "column": 28,
1253                        "program": "generic_resolve.ets"
1254                      },
1255                      "end": {
1256                        "line": 29,
1257                        "column": 37,
1258                        "program": "generic_resolve.ets"
1259                      }
1260                    }
1261                  }
1262                ],
1263                "returnType": {
1264                  "type": "ETSPrimitiveType",
1265                  "loc": {
1266                    "start": {
1267                      "line": 29,
1268                      "column": 39,
1269                      "program": "generic_resolve.ets"
1270                    },
1271                    "end": {
1272                      "line": 29,
1273                      "column": 43,
1274                      "program": "generic_resolve.ets"
1275                    }
1276                  }
1277                },
1278                "loc": {
1279                  "start": {
1280                    "line": 29,
1281                    "column": 27,
1282                    "program": "generic_resolve.ets"
1283                  },
1284                  "end": {
1285                    "line": 29,
1286                    "column": 27,
1287                    "program": "generic_resolve.ets"
1288                  }
1289                }
1290              },
1291              "loc": {
1292                "start": {
1293                  "line": 29,
1294                  "column": 27,
1295                  "program": "generic_resolve.ets"
1296                },
1297                "end": {
1298                  "line": 29,
1299                  "column": 27,
1300                  "program": "generic_resolve.ets"
1301                }
1302              }
1303            },
1304            "overloads": [],
1305            "decorators": [],
1306            "loc": {
1307              "start": {
1308                "line": 29,
1309                "column": 5,
1310                "program": "generic_resolve.ets"
1311              },
1312              "end": {
1313                "line": 29,
1314                "column": 27,
1315                "program": "generic_resolve.ets"
1316              }
1317            }
1318          }
1319        ],
1320        "loc": {
1321          "start": {
1322            "line": 16,
1323            "column": 14,
1324            "program": "generic_resolve.ets"
1325          },
1326          "end": {
1327            "line": 31,
1328            "column": 1,
1329            "program": "generic_resolve.ets"
1330          }
1331        }
1332      },
1333      "loc": {
1334        "start": {
1335          "line": 16,
1336          "column": 1,
1337          "program": "generic_resolve.ets"
1338        },
1339        "end": {
1340          "line": 31,
1341          "column": 1,
1342          "program": "generic_resolve.ets"
1343        }
1344      }
1345    },
1346    {
1347      "type": "ClassDeclaration",
1348      "definition": {
1349        "id": {
1350          "type": "Identifier",
1351          "name": "ETSGLOBAL",
1352          "decorators": [],
1353          "loc": {
1354            "start": {
1355              "line": 1,
1356              "column": 1,
1357              "program": "generic_resolve.ets"
1358            },
1359            "end": {
1360              "line": 1,
1361              "column": 1,
1362              "program": "generic_resolve.ets"
1363            }
1364          }
1365        },
1366        "superClass": null,
1367        "implements": [],
1368        "body": [
1369          {
1370            "type": "MethodDefinition",
1371            "key": {
1372              "type": "Identifier",
1373              "name": "main",
1374              "decorators": [],
1375              "loc": {
1376                "start": {
1377                  "line": 1,
1378                  "column": 1,
1379                  "program": null
1380                },
1381                "end": {
1382                  "line": 1,
1383                  "column": 1,
1384                  "program": null
1385                }
1386              }
1387            },
1388            "kind": "method",
1389            "accessibility": "public",
1390            "static": true,
1391            "optional": false,
1392            "computed": false,
1393            "value": {
1394              "type": "FunctionExpression",
1395              "function": {
1396                "type": "ScriptFunction",
1397                "id": {
1398                  "type": "Identifier",
1399                  "name": "main",
1400                  "decorators": [],
1401                  "loc": {
1402                    "start": {
1403                      "line": 1,
1404                      "column": 1,
1405                      "program": null
1406                    },
1407                    "end": {
1408                      "line": 1,
1409                      "column": 1,
1410                      "program": null
1411                    }
1412                  }
1413                },
1414                "generator": false,
1415                "async": false,
1416                "expression": false,
1417                "params": [],
1418                "body": {
1419                  "type": "BlockStatement",
1420                  "statements": [],
1421                  "loc": {
1422                    "start": {
1423                      "line": 1,
1424                      "column": 1,
1425                      "program": null
1426                    },
1427                    "end": {
1428                      "line": 1,
1429                      "column": 1,
1430                      "program": null
1431                    }
1432                  }
1433                },
1434                "loc": {
1435                  "start": {
1436                    "line": 1,
1437                    "column": 1,
1438                    "program": null
1439                  },
1440                  "end": {
1441                    "line": 1,
1442                    "column": 1,
1443                    "program": null
1444                  }
1445                }
1446              },
1447              "loc": {
1448                "start": {
1449                  "line": 1,
1450                  "column": 1,
1451                  "program": null
1452                },
1453                "end": {
1454                  "line": 1,
1455                  "column": 1,
1456                  "program": null
1457                }
1458              }
1459            },
1460            "overloads": [],
1461            "decorators": [],
1462            "loc": {
1463              "start": {
1464                "line": 1,
1465                "column": 1,
1466                "program": "generic_resolve.ets"
1467              },
1468              "end": {
1469                "line": 1,
1470                "column": 1,
1471                "program": "generic_resolve.ets"
1472              }
1473            }
1474          },
1475          {
1476            "type": "MethodDefinition",
1477            "key": {
1478              "type": "Identifier",
1479              "name": "_$init$_",
1480              "decorators": [],
1481              "loc": {
1482                "start": {
1483                  "line": 1,
1484                  "column": 1,
1485                  "program": null
1486                },
1487                "end": {
1488                  "line": 1,
1489                  "column": 1,
1490                  "program": null
1491                }
1492              }
1493            },
1494            "kind": "method",
1495            "accessibility": "public",
1496            "static": true,
1497            "optional": false,
1498            "computed": false,
1499            "value": {
1500              "type": "FunctionExpression",
1501              "function": {
1502                "type": "ScriptFunction",
1503                "id": {
1504                  "type": "Identifier",
1505                  "name": "_$init$_",
1506                  "decorators": [],
1507                  "loc": {
1508                    "start": {
1509                      "line": 1,
1510                      "column": 1,
1511                      "program": null
1512                    },
1513                    "end": {
1514                      "line": 1,
1515                      "column": 1,
1516                      "program": null
1517                    }
1518                  }
1519                },
1520                "generator": false,
1521                "async": false,
1522                "expression": false,
1523                "params": [],
1524                "body": {
1525                  "type": "BlockStatement",
1526                  "statements": [],
1527                  "loc": {
1528                    "start": {
1529                      "line": 1,
1530                      "column": 1,
1531                      "program": null
1532                    },
1533                    "end": {
1534                      "line": 1,
1535                      "column": 1,
1536                      "program": null
1537                    }
1538                  }
1539                },
1540                "loc": {
1541                  "start": {
1542                    "line": 1,
1543                    "column": 1,
1544                    "program": null
1545                  },
1546                  "end": {
1547                    "line": 1,
1548                    "column": 1,
1549                    "program": null
1550                  }
1551                }
1552              },
1553              "loc": {
1554                "start": {
1555                  "line": 1,
1556                  "column": 1,
1557                  "program": null
1558                },
1559                "end": {
1560                  "line": 1,
1561                  "column": 1,
1562                  "program": null
1563                }
1564              }
1565            },
1566            "overloads": [],
1567            "decorators": [],
1568            "loc": {
1569              "start": {
1570                "line": 1,
1571                "column": 1,
1572                "program": "generic_resolve.ets"
1573              },
1574              "end": {
1575                "line": 1,
1576                "column": 1,
1577                "program": "generic_resolve.ets"
1578              }
1579            }
1580          }
1581        ],
1582        "loc": {
1583          "start": {
1584            "line": 1,
1585            "column": 1,
1586            "program": "generic_resolve.ets"
1587          },
1588          "end": {
1589            "line": 1,
1590            "column": 1,
1591            "program": "generic_resolve.ets"
1592          }
1593        }
1594      },
1595      "loc": {
1596        "start": {
1597          "line": 1,
1598          "column": 1,
1599          "program": "generic_resolve.ets"
1600        },
1601        "end": {
1602          "line": 1,
1603          "column": 1,
1604          "program": "generic_resolve.ets"
1605        }
1606      }
1607    }
1608  ],
1609  "loc": {
1610    "start": {
1611      "line": 1,
1612      "column": 1,
1613      "program": "generic_resolve.ets"
1614    },
1615    "end": {
1616      "line": 31,
1617      "column": 1,
1618      "program": "generic_resolve.ets"
1619    }
1620  }
1621}
1622