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