swc/crates/swc_ecma_parser/tests/tsc/subtypingWithCallSignatures3.json

10890 lines
388 KiB
JSON

{
"type": "Script",
"span": {
"start": 161,
"end": 4768,
"ctxt": 0
},
"body": [
{
"type": "TsModuleDeclaration",
"span": {
"start": 161,
"end": 4312,
"ctxt": 0
},
"declare": false,
"global": false,
"id": {
"type": "Identifier",
"span": {
"start": 168,
"end": 174,
"ctxt": 0
},
"value": "Errors",
"optional": false
},
"body": {
"type": "TsModuleBlock",
"span": {
"start": 175,
"end": 4312,
"ctxt": 0
},
"body": [
{
"type": "ClassDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 187,
"end": 191,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"declare": false,
"span": {
"start": 181,
"end": 208,
"ctxt": 0
},
"decorators": [],
"body": [
{
"type": "ClassProperty",
"span": {
"start": 194,
"end": 206,
"ctxt": 0
},
"key": {
"type": "Identifier",
"span": {
"start": 194,
"end": 197,
"ctxt": 0
},
"value": "foo",
"optional": false
},
"value": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 197,
"end": 205,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 199,
"end": 205,
"ctxt": 0
},
"kind": "string"
}
},
"isStatic": false,
"decorators": [],
"accessibility": null,
"isAbstract": false,
"isOptional": false,
"isOverride": false,
"readonly": false,
"declare": false,
"definite": false
}
],
"superClass": null,
"isAbstract": false,
"typeParams": null,
"superTypeParams": null,
"implements": []
},
{
"type": "ClassDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 219,
"end": 226,
"ctxt": 0
},
"value": "Derived",
"optional": false
},
"declare": false,
"span": {
"start": 213,
"end": 256,
"ctxt": 0
},
"decorators": [],
"body": [
{
"type": "ClassProperty",
"span": {
"start": 242,
"end": 254,
"ctxt": 0
},
"key": {
"type": "Identifier",
"span": {
"start": 242,
"end": 245,
"ctxt": 0
},
"value": "bar",
"optional": false
},
"value": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 245,
"end": 253,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 247,
"end": 253,
"ctxt": 0
},
"kind": "string"
}
},
"isStatic": false,
"decorators": [],
"accessibility": null,
"isAbstract": false,
"isOptional": false,
"isOverride": false,
"readonly": false,
"declare": false,
"definite": false
}
],
"superClass": {
"type": "Identifier",
"span": {
"start": 235,
"end": 239,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"isAbstract": false,
"typeParams": null,
"superTypeParams": null,
"implements": []
},
{
"type": "ClassDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 267,
"end": 275,
"ctxt": 0
},
"value": "Derived2",
"optional": false
},
"declare": false,
"span": {
"start": 261,
"end": 308,
"ctxt": 0
},
"decorators": [],
"body": [
{
"type": "ClassProperty",
"span": {
"start": 294,
"end": 306,
"ctxt": 0
},
"key": {
"type": "Identifier",
"span": {
"start": 294,
"end": 297,
"ctxt": 0
},
"value": "baz",
"optional": false
},
"value": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 297,
"end": 305,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 299,
"end": 305,
"ctxt": 0
},
"kind": "string"
}
},
"isStatic": false,
"decorators": [],
"accessibility": null,
"isAbstract": false,
"isOptional": false,
"isOverride": false,
"readonly": false,
"declare": false,
"definite": false
}
],
"superClass": {
"type": "Identifier",
"span": {
"start": 284,
"end": 291,
"ctxt": 0
},
"value": "Derived",
"optional": false
},
"isAbstract": false,
"typeParams": null,
"superTypeParams": null,
"implements": []
},
{
"type": "ClassDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 319,
"end": 331,
"ctxt": 0
},
"value": "OtherDerived",
"optional": false
},
"declare": false,
"span": {
"start": 313,
"end": 362,
"ctxt": 0
},
"decorators": [],
"body": [
{
"type": "ClassProperty",
"span": {
"start": 347,
"end": 360,
"ctxt": 0
},
"key": {
"type": "Identifier",
"span": {
"start": 347,
"end": 351,
"ctxt": 0
},
"value": "bing",
"optional": false
},
"value": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 351,
"end": 359,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 353,
"end": 359,
"ctxt": 0
},
"kind": "string"
}
},
"isStatic": false,
"decorators": [],
"accessibility": null,
"isAbstract": false,
"isOptional": false,
"isOverride": false,
"readonly": false,
"declare": false,
"definite": false
}
],
"superClass": {
"type": "Identifier",
"span": {
"start": 340,
"end": 344,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"isAbstract": false,
"typeParams": null,
"superTypeParams": null,
"implements": []
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 385,
"end": 389,
"ctxt": 0
},
"value": "foo2",
"optional": false
},
"declare": true,
"params": [
{
"type": "Parameter",
"span": {
"start": 390,
"end": 417,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 390,
"end": 417,
"ctxt": 0
},
"value": "a2",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 392,
"end": 417,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 394,
"end": 417,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 395,
"end": 404,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 396,
"end": 404,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 398,
"end": 404,
"ctxt": 0
},
"kind": "number"
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 406,
"end": 417,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsArrayType",
"span": {
"start": 409,
"end": 417,
"ctxt": 0
},
"elemType": {
"type": "TsKeywordType",
"span": {
"start": 409,
"end": 415,
"ctxt": 0
},
"kind": "string"
}
}
}
}
}
}
}
],
"decorators": [],
"span": {
"start": 368,
"end": 430,
"ctxt": 0
},
"body": null,
"generator": false,
"async": false,
"typeParameters": null,
"returnType": {
"type": "TsTypeAnnotation",
"span": {
"start": 418,
"end": 429,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeQuery",
"span": {
"start": 420,
"end": 429,
"ctxt": 0
},
"exprName": {
"type": "Identifier",
"span": {
"start": 427,
"end": 429,
"ctxt": 0
},
"value": "a2",
"optional": false
},
"typeArguments": null
}
}
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 452,
"end": 456,
"ctxt": 0
},
"value": "foo2",
"optional": false
},
"declare": true,
"params": [
{
"type": "Parameter",
"span": {
"start": 457,
"end": 464,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 457,
"end": 464,
"ctxt": 0
},
"value": "a2",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 459,
"end": 464,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 461,
"end": 464,
"ctxt": 0
},
"kind": "any"
}
}
}
}
],
"decorators": [],
"span": {
"start": 435,
"end": 471,
"ctxt": 0
},
"body": null,
"generator": false,
"async": false,
"typeParameters": null,
"returnType": {
"type": "TsTypeAnnotation",
"span": {
"start": 465,
"end": 470,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 467,
"end": 470,
"ctxt": 0
},
"kind": "any"
}
}
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 494,
"end": 498,
"ctxt": 0
},
"value": "foo7",
"optional": false
},
"declare": true,
"params": [
{
"type": "Parameter",
"span": {
"start": 499,
"end": 555,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 499,
"end": 555,
"ctxt": 0
},
"value": "a2",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 501,
"end": 555,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 503,
"end": 555,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 504,
"end": 529,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 505,
"end": 529,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 507,
"end": 529,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 508,
"end": 517,
"ctxt": 0
},
"value": "arg",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 511,
"end": 517,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 513,
"end": 517,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 513,
"end": 517,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 519,
"end": 529,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 522,
"end": 529,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 522,
"end": 529,
"ctxt": 0
},
"value": "Derived",
"optional": false
},
"typeParams": null
}
}
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 531,
"end": 555,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 534,
"end": 555,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 535,
"end": 542,
"ctxt": 0
},
"value": "r",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 536,
"end": 542,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 538,
"end": 542,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 538,
"end": 542,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 544,
"end": 555,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 547,
"end": 555,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 547,
"end": 555,
"ctxt": 0
},
"value": "Derived2",
"optional": false
},
"typeParams": null
}
}
}
}
}
}
}
}
],
"decorators": [],
"span": {
"start": 477,
"end": 568,
"ctxt": 0
},
"body": null,
"generator": false,
"async": false,
"typeParameters": null,
"returnType": {
"type": "TsTypeAnnotation",
"span": {
"start": 556,
"end": 567,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeQuery",
"span": {
"start": 558,
"end": 567,
"ctxt": 0
},
"exprName": {
"type": "Identifier",
"span": {
"start": 565,
"end": 567,
"ctxt": 0
},
"value": "a2",
"optional": false
},
"typeArguments": null
}
}
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 590,
"end": 594,
"ctxt": 0
},
"value": "foo7",
"optional": false
},
"declare": true,
"params": [
{
"type": "Parameter",
"span": {
"start": 595,
"end": 602,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 595,
"end": 602,
"ctxt": 0
},
"value": "a2",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 597,
"end": 602,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 599,
"end": 602,
"ctxt": 0
},
"kind": "any"
}
}
}
}
],
"decorators": [],
"span": {
"start": 573,
"end": 609,
"ctxt": 0
},
"body": null,
"generator": false,
"async": false,
"typeParameters": null,
"returnType": {
"type": "TsTypeAnnotation",
"span": {
"start": 603,
"end": 608,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 605,
"end": 608,
"ctxt": 0
},
"kind": "any"
}
}
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 632,
"end": 636,
"ctxt": 0
},
"value": "foo8",
"optional": false
},
"declare": true,
"params": [
{
"type": "Parameter",
"span": {
"start": 637,
"end": 720,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 637,
"end": 720,
"ctxt": 0
},
"value": "a2",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 639,
"end": 720,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 641,
"end": 720,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 642,
"end": 667,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 643,
"end": 667,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 645,
"end": 667,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 646,
"end": 655,
"ctxt": 0
},
"value": "arg",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 649,
"end": 655,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 651,
"end": 655,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 651,
"end": 655,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 657,
"end": 667,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 660,
"end": 667,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 660,
"end": 667,
"ctxt": 0
},
"value": "Derived",
"optional": false
},
"typeParams": null
}
}
}
}
},
{
"type": "Identifier",
"span": {
"start": 669,
"end": 695,
"ctxt": 0
},
"value": "y",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 670,
"end": 695,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 672,
"end": 695,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 673,
"end": 683,
"ctxt": 0
},
"value": "arg2",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 677,
"end": 683,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 679,
"end": 683,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 679,
"end": 683,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 685,
"end": 695,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 688,
"end": 695,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 688,
"end": 695,
"ctxt": 0
},
"value": "Derived",
"optional": false
},
"typeParams": null
}
}
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 697,
"end": 720,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 700,
"end": 720,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 701,
"end": 708,
"ctxt": 0
},
"value": "r",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 702,
"end": 708,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 704,
"end": 708,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 704,
"end": 708,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 710,
"end": 720,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 713,
"end": 720,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 713,
"end": 720,
"ctxt": 0
},
"value": "Derived",
"optional": false
},
"typeParams": null
}
}
}
}
}
}
}
}
],
"decorators": [],
"span": {
"start": 615,
"end": 733,
"ctxt": 0
},
"body": null,
"generator": false,
"async": false,
"typeParameters": null,
"returnType": {
"type": "TsTypeAnnotation",
"span": {
"start": 721,
"end": 732,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeQuery",
"span": {
"start": 723,
"end": 732,
"ctxt": 0
},
"exprName": {
"type": "Identifier",
"span": {
"start": 730,
"end": 732,
"ctxt": 0
},
"value": "a2",
"optional": false
},
"typeArguments": null
}
}
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 755,
"end": 759,
"ctxt": 0
},
"value": "foo8",
"optional": false
},
"declare": true,
"params": [
{
"type": "Parameter",
"span": {
"start": 760,
"end": 767,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 760,
"end": 767,
"ctxt": 0
},
"value": "a2",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 762,
"end": 767,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 764,
"end": 767,
"ctxt": 0
},
"kind": "any"
}
}
}
}
],
"decorators": [],
"span": {
"start": 738,
"end": 774,
"ctxt": 0
},
"body": null,
"generator": false,
"async": false,
"typeParameters": null,
"returnType": {
"type": "TsTypeAnnotation",
"span": {
"start": 768,
"end": 773,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 770,
"end": 773,
"ctxt": 0
},
"kind": "any"
}
}
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 797,
"end": 802,
"ctxt": 0
},
"value": "foo10",
"optional": false
},
"declare": true,
"params": [
{
"type": "Parameter",
"span": {
"start": 803,
"end": 829,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 803,
"end": 829,
"ctxt": 0
},
"value": "a2",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 805,
"end": 829,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 807,
"end": 829,
"ctxt": 0
},
"params": [
{
"type": "RestElement",
"span": {
"start": 808,
"end": 820,
"ctxt": 0
},
"rest": {
"start": 808,
"end": 811,
"ctxt": 0
},
"argument": {
"type": "Identifier",
"span": {
"start": 811,
"end": 812,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": null
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 812,
"end": 820,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsArrayType",
"span": {
"start": 814,
"end": 820,
"ctxt": 0
},
"elemType": {
"type": "TsTypeReference",
"span": {
"start": 814,
"end": 818,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 814,
"end": 818,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeParams": null
}
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 822,
"end": 829,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 825,
"end": 829,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 825,
"end": 829,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeParams": null
}
}
}
}
}
}
],
"decorators": [],
"span": {
"start": 780,
"end": 842,
"ctxt": 0
},
"body": null,
"generator": false,
"async": false,
"typeParameters": null,
"returnType": {
"type": "TsTypeAnnotation",
"span": {
"start": 830,
"end": 841,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeQuery",
"span": {
"start": 832,
"end": 841,
"ctxt": 0
},
"exprName": {
"type": "Identifier",
"span": {
"start": 839,
"end": 841,
"ctxt": 0
},
"value": "a2",
"optional": false
},
"typeArguments": null
}
}
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 864,
"end": 869,
"ctxt": 0
},
"value": "foo10",
"optional": false
},
"declare": true,
"params": [
{
"type": "Parameter",
"span": {
"start": 870,
"end": 877,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 870,
"end": 877,
"ctxt": 0
},
"value": "a2",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 872,
"end": 877,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 874,
"end": 877,
"ctxt": 0
},
"kind": "any"
}
}
}
}
],
"decorators": [],
"span": {
"start": 847,
"end": 884,
"ctxt": 0
},
"body": null,
"generator": false,
"async": false,
"typeParameters": null,
"returnType": {
"type": "TsTypeAnnotation",
"span": {
"start": 878,
"end": 883,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 880,
"end": 883,
"ctxt": 0
},
"kind": "any"
}
}
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 907,
"end": 912,
"ctxt": 0
},
"value": "foo11",
"optional": false
},
"declare": true,
"params": [
{
"type": "Parameter",
"span": {
"start": 913,
"end": 978,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 913,
"end": 978,
"ctxt": 0
},
"value": "a2",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 915,
"end": 978,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 917,
"end": 978,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 918,
"end": 936,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 919,
"end": 936,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeLiteral",
"span": {
"start": 921,
"end": 936,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 923,
"end": 934,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 923,
"end": 926,
"ctxt": 0
},
"value": "foo",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 926,
"end": 934,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 928,
"end": 934,
"ctxt": 0
},
"kind": "string"
}
},
"typeParams": null
}
]
}
}
},
{
"type": "Identifier",
"span": {
"start": 938,
"end": 969,
"ctxt": 0
},
"value": "y",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 939,
"end": 969,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeLiteral",
"span": {
"start": 941,
"end": 969,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 943,
"end": 955,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 943,
"end": 946,
"ctxt": 0
},
"value": "foo",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 946,
"end": 954,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 948,
"end": 954,
"ctxt": 0
},
"kind": "string"
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 956,
"end": 967,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 956,
"end": 959,
"ctxt": 0
},
"value": "bar",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 959,
"end": 967,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 961,
"end": 967,
"ctxt": 0
},
"kind": "string"
}
},
"typeParams": null
}
]
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 971,
"end": 978,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 974,
"end": 978,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 974,
"end": 978,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeParams": null
}
}
}
}
}
}
],
"decorators": [],
"span": {
"start": 890,
"end": 991,
"ctxt": 0
},
"body": null,
"generator": false,
"async": false,
"typeParameters": null,
"returnType": {
"type": "TsTypeAnnotation",
"span": {
"start": 979,
"end": 990,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeQuery",
"span": {
"start": 981,
"end": 990,
"ctxt": 0
},
"exprName": {
"type": "Identifier",
"span": {
"start": 988,
"end": 990,
"ctxt": 0
},
"value": "a2",
"optional": false
},
"typeArguments": null
}
}
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 1013,
"end": 1018,
"ctxt": 0
},
"value": "foo11",
"optional": false
},
"declare": true,
"params": [
{
"type": "Parameter",
"span": {
"start": 1019,
"end": 1026,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 1019,
"end": 1026,
"ctxt": 0
},
"value": "a2",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1021,
"end": 1026,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 1023,
"end": 1026,
"ctxt": 0
},
"kind": "any"
}
}
}
}
],
"decorators": [],
"span": {
"start": 996,
"end": 1033,
"ctxt": 0
},
"body": null,
"generator": false,
"async": false,
"typeParameters": null,
"returnType": {
"type": "TsTypeAnnotation",
"span": {
"start": 1027,
"end": 1032,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 1029,
"end": 1032,
"ctxt": 0
},
"kind": "any"
}
}
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 1056,
"end": 1061,
"ctxt": 0
},
"value": "foo12",
"optional": false
},
"declare": true,
"params": [
{
"type": "Parameter",
"span": {
"start": 1062,
"end": 1120,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 1062,
"end": 1120,
"ctxt": 0
},
"value": "a2",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1064,
"end": 1120,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 1066,
"end": 1120,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 1067,
"end": 1081,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1068,
"end": 1081,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1070,
"end": 1081,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1070,
"end": 1075,
"ctxt": 0
},
"value": "Array",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 1075,
"end": 1081,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 1076,
"end": 1080,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1076,
"end": 1080,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeParams": null
}
]
}
}
}
},
{
"type": "Identifier",
"span": {
"start": 1083,
"end": 1101,
"ctxt": 0
},
"value": "y",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1084,
"end": 1101,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1086,
"end": 1101,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1086,
"end": 1091,
"ctxt": 0
},
"value": "Array",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 1091,
"end": 1101,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 1092,
"end": 1100,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1092,
"end": 1100,
"ctxt": 0
},
"value": "Derived2",
"optional": false
},
"typeParams": null
}
]
}
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1103,
"end": 1120,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1106,
"end": 1120,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1106,
"end": 1111,
"ctxt": 0
},
"value": "Array",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 1111,
"end": 1120,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 1112,
"end": 1119,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1112,
"end": 1119,
"ctxt": 0
},
"value": "Derived",
"optional": false
},
"typeParams": null
}
]
}
}
}
}
}
}
}
],
"decorators": [],
"span": {
"start": 1039,
"end": 1133,
"ctxt": 0
},
"body": null,
"generator": false,
"async": false,
"typeParameters": null,
"returnType": {
"type": "TsTypeAnnotation",
"span": {
"start": 1121,
"end": 1132,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeQuery",
"span": {
"start": 1123,
"end": 1132,
"ctxt": 0
},
"exprName": {
"type": "Identifier",
"span": {
"start": 1130,
"end": 1132,
"ctxt": 0
},
"value": "a2",
"optional": false
},
"typeArguments": null
}
}
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 1155,
"end": 1160,
"ctxt": 0
},
"value": "foo12",
"optional": false
},
"declare": true,
"params": [
{
"type": "Parameter",
"span": {
"start": 1161,
"end": 1168,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 1161,
"end": 1168,
"ctxt": 0
},
"value": "a2",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1163,
"end": 1168,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 1165,
"end": 1168,
"ctxt": 0
},
"kind": "any"
}
}
}
}
],
"decorators": [],
"span": {
"start": 1138,
"end": 1175,
"ctxt": 0
},
"body": null,
"generator": false,
"async": false,
"typeParameters": null,
"returnType": {
"type": "TsTypeAnnotation",
"span": {
"start": 1169,
"end": 1174,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 1171,
"end": 1174,
"ctxt": 0
},
"kind": "any"
}
}
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 1198,
"end": 1203,
"ctxt": 0
},
"value": "foo15",
"optional": false
},
"declare": true,
"params": [
{
"type": "Parameter",
"span": {
"start": 1204,
"end": 1247,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 1204,
"end": 1247,
"ctxt": 0
},
"value": "a2",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1206,
"end": 1247,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 1208,
"end": 1247,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 1209,
"end": 1236,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1210,
"end": 1236,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeLiteral",
"span": {
"start": 1212,
"end": 1236,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 1214,
"end": 1224,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 1214,
"end": 1215,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1215,
"end": 1223,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 1217,
"end": 1223,
"ctxt": 0
},
"kind": "string"
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 1225,
"end": 1234,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 1225,
"end": 1226,
"ctxt": 0
},
"value": "b",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1226,
"end": 1234,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 1228,
"end": 1234,
"ctxt": 0
},
"kind": "number"
}
},
"typeParams": null
}
]
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1238,
"end": 1247,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 1241,
"end": 1247,
"ctxt": 0
},
"kind": "number"
}
}
}
}
}
}
],
"decorators": [],
"span": {
"start": 1181,
"end": 1260,
"ctxt": 0
},
"body": null,
"generator": false,
"async": false,
"typeParameters": null,
"returnType": {
"type": "TsTypeAnnotation",
"span": {
"start": 1248,
"end": 1259,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeQuery",
"span": {
"start": 1250,
"end": 1259,
"ctxt": 0
},
"exprName": {
"type": "Identifier",
"span": {
"start": 1257,
"end": 1259,
"ctxt": 0
},
"value": "a2",
"optional": false
},
"typeArguments": null
}
}
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 1282,
"end": 1287,
"ctxt": 0
},
"value": "foo15",
"optional": false
},
"declare": true,
"params": [
{
"type": "Parameter",
"span": {
"start": 1288,
"end": 1295,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 1288,
"end": 1295,
"ctxt": 0
},
"value": "a2",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1290,
"end": 1295,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 1292,
"end": 1295,
"ctxt": 0
},
"kind": "any"
}
}
}
}
],
"decorators": [],
"span": {
"start": 1265,
"end": 1302,
"ctxt": 0
},
"body": null,
"generator": false,
"async": false,
"typeParameters": null,
"returnType": {
"type": "TsTypeAnnotation",
"span": {
"start": 1296,
"end": 1301,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 1298,
"end": 1301,
"ctxt": 0
},
"kind": "any"
}
}
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 1325,
"end": 1330,
"ctxt": 0
},
"value": "foo16",
"optional": false
},
"declare": true,
"params": [
{
"type": "Parameter",
"span": {
"start": 1331,
"end": 1651,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 1331,
"end": 1651,
"ctxt": 0
},
"value": "a2",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1333,
"end": 1651,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeLiteral",
"span": {
"start": 1335,
"end": 1651,
"ctxt": 0
},
"members": [
{
"type": "TsCallSignatureDeclaration",
"span": {
"start": 1443,
"end": 1537,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 1444,
"end": 1525,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1445,
"end": 1525,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeLiteral",
"span": {
"start": 1447,
"end": 1525,
"ctxt": 0
},
"members": [
{
"type": "TsCallSignatureDeclaration",
"span": {
"start": 1461,
"end": 1481,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 1462,
"end": 1471,
"ctxt": 0
},
"value": "a",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1463,
"end": 1471,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 1465,
"end": 1471,
"ctxt": 0
},
"kind": "number"
}
}
}
],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1472,
"end": 1480,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 1474,
"end": 1480,
"ctxt": 0
},
"kind": "number"
}
},
"typeParams": null
},
{
"type": "TsCallSignatureDeclaration",
"span": {
"start": 1494,
"end": 1515,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 1495,
"end": 1505,
"ctxt": 0
},
"value": "a",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1497,
"end": 1505,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 1499,
"end": 1505,
"ctxt": 0
},
"kind": "number"
}
}
}
],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1506,
"end": 1514,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 1508,
"end": 1514,
"ctxt": 0
},
"kind": "number"
}
},
"typeParams": null
}
]
}
}
}
],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1526,
"end": 1536,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsArrayType",
"span": {
"start": 1528,
"end": 1536,
"ctxt": 0
},
"elemType": {
"type": "TsKeywordType",
"span": {
"start": 1528,
"end": 1534,
"ctxt": 0
},
"kind": "number"
}
}
},
"typeParams": null
},
{
"type": "TsCallSignatureDeclaration",
"span": {
"start": 1546,
"end": 1645,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 1547,
"end": 1632,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1548,
"end": 1632,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeLiteral",
"span": {
"start": 1550,
"end": 1632,
"ctxt": 0
},
"members": [
{
"type": "TsCallSignatureDeclaration",
"span": {
"start": 1564,
"end": 1586,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 1565,
"end": 1575,
"ctxt": 0
},
"value": "a",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1566,
"end": 1575,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 1568,
"end": 1575,
"ctxt": 0
},
"kind": "boolean"
}
}
}
],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1576,
"end": 1585,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 1578,
"end": 1585,
"ctxt": 0
},
"kind": "boolean"
}
},
"typeParams": null
},
{
"type": "TsCallSignatureDeclaration",
"span": {
"start": 1599,
"end": 1622,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 1600,
"end": 1611,
"ctxt": 0
},
"value": "a",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1602,
"end": 1611,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 1604,
"end": 1611,
"ctxt": 0
},
"kind": "boolean"
}
}
}
],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1612,
"end": 1621,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 1614,
"end": 1621,
"ctxt": 0
},
"kind": "boolean"
}
},
"typeParams": null
}
]
}
}
}
],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1633,
"end": 1644,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsArrayType",
"span": {
"start": 1635,
"end": 1644,
"ctxt": 0
},
"elemType": {
"type": "TsKeywordType",
"span": {
"start": 1635,
"end": 1642,
"ctxt": 0
},
"kind": "boolean"
}
}
},
"typeParams": null
}
]
}
}
}
}
],
"decorators": [],
"span": {
"start": 1308,
"end": 1664,
"ctxt": 0
},
"body": null,
"generator": false,
"async": false,
"typeParameters": null,
"returnType": {
"type": "TsTypeAnnotation",
"span": {
"start": 1652,
"end": 1663,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeQuery",
"span": {
"start": 1654,
"end": 1663,
"ctxt": 0
},
"exprName": {
"type": "Identifier",
"span": {
"start": 1661,
"end": 1663,
"ctxt": 0
},
"value": "a2",
"optional": false
},
"typeArguments": null
}
}
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 1686,
"end": 1691,
"ctxt": 0
},
"value": "foo16",
"optional": false
},
"declare": true,
"params": [
{
"type": "Parameter",
"span": {
"start": 1692,
"end": 1699,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 1692,
"end": 1699,
"ctxt": 0
},
"value": "a2",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1694,
"end": 1699,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 1696,
"end": 1699,
"ctxt": 0
},
"kind": "any"
}
}
}
}
],
"decorators": [],
"span": {
"start": 1669,
"end": 1706,
"ctxt": 0
},
"body": null,
"generator": false,
"async": false,
"typeParameters": null,
"returnType": {
"type": "TsTypeAnnotation",
"span": {
"start": 1700,
"end": 1705,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 1702,
"end": 1705,
"ctxt": 0
},
"kind": "any"
}
}
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 1729,
"end": 1734,
"ctxt": 0
},
"value": "foo17",
"optional": false
},
"declare": true,
"params": [
{
"type": "Parameter",
"span": {
"start": 1735,
"end": 1975,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 1735,
"end": 1975,
"ctxt": 0
},
"value": "a2",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1737,
"end": 1975,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeLiteral",
"span": {
"start": 1739,
"end": 1975,
"ctxt": 0
},
"members": [
{
"type": "TsCallSignatureDeclaration",
"span": {
"start": 1749,
"end": 1854,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 1750,
"end": 1845,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1751,
"end": 1845,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeLiteral",
"span": {
"start": 1753,
"end": 1845,
"ctxt": 0
},
"members": [
{
"type": "TsCallSignatureDeclaration",
"span": {
"start": 1767,
"end": 1796,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 1787,
"end": 1791,
"ctxt": 0
},
"value": "a",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1788,
"end": 1791,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1790,
"end": 1791,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1790,
"end": 1791,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1792,
"end": 1795,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1794,
"end": 1795,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1794,
"end": 1795,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 1767,
"end": 1786,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 1768,
"end": 1785,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 1768,
"end": 1769,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": {
"type": "TsTypeReference",
"span": {
"start": 1778,
"end": 1785,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1778,
"end": 1785,
"ctxt": 0
},
"value": "Derived",
"optional": false
},
"typeParams": null
},
"default": null
}
]
}
},
{
"type": "TsCallSignatureDeclaration",
"span": {
"start": 1809,
"end": 1835,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 1826,
"end": 1830,
"ctxt": 0
},
"value": "a",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1827,
"end": 1830,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1829,
"end": 1830,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1829,
"end": 1830,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1831,
"end": 1834,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1833,
"end": 1834,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1833,
"end": 1834,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 1809,
"end": 1825,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 1810,
"end": 1824,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 1810,
"end": 1811,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": {
"type": "TsTypeReference",
"span": {
"start": 1820,
"end": 1824,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1820,
"end": 1824,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeParams": null
},
"default": null
}
]
}
}
]
}
}
}
],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1846,
"end": 1853,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsArrayType",
"span": {
"start": 1848,
"end": 1853,
"ctxt": 0
},
"elemType": {
"type": "TsKeywordType",
"span": {
"start": 1848,
"end": 1851,
"ctxt": 0
},
"kind": "any"
}
}
},
"typeParams": null
},
{
"type": "TsCallSignatureDeclaration",
"span": {
"start": 1863,
"end": 1969,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 1864,
"end": 1960,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1865,
"end": 1960,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeLiteral",
"span": {
"start": 1867,
"end": 1960,
"ctxt": 0
},
"members": [
{
"type": "TsCallSignatureDeclaration",
"span": {
"start": 1881,
"end": 1911,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 1902,
"end": 1906,
"ctxt": 0
},
"value": "a",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1903,
"end": 1906,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1905,
"end": 1906,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1905,
"end": 1906,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1907,
"end": 1910,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1909,
"end": 1910,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1909,
"end": 1910,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 1881,
"end": 1901,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 1882,
"end": 1900,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 1882,
"end": 1883,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": {
"type": "TsTypeReference",
"span": {
"start": 1892,
"end": 1900,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1892,
"end": 1900,
"ctxt": 0
},
"value": "Derived2",
"optional": false
},
"typeParams": null
},
"default": null
}
]
}
},
{
"type": "TsCallSignatureDeclaration",
"span": {
"start": 1924,
"end": 1950,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 1941,
"end": 1945,
"ctxt": 0
},
"value": "a",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1942,
"end": 1945,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1944,
"end": 1945,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1944,
"end": 1945,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1946,
"end": 1949,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1948,
"end": 1949,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1948,
"end": 1949,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 1924,
"end": 1940,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 1925,
"end": 1939,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 1925,
"end": 1926,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": {
"type": "TsTypeReference",
"span": {
"start": 1935,
"end": 1939,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1935,
"end": 1939,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeParams": null
},
"default": null
}
]
}
}
]
}
}
}
],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1961,
"end": 1968,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsArrayType",
"span": {
"start": 1963,
"end": 1968,
"ctxt": 0
},
"elemType": {
"type": "TsKeywordType",
"span": {
"start": 1963,
"end": 1966,
"ctxt": 0
},
"kind": "any"
}
}
},
"typeParams": null
}
]
}
}
}
}
],
"decorators": [],
"span": {
"start": 1712,
"end": 1988,
"ctxt": 0
},
"body": null,
"generator": false,
"async": false,
"typeParameters": null,
"returnType": {
"type": "TsTypeAnnotation",
"span": {
"start": 1976,
"end": 1987,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeQuery",
"span": {
"start": 1978,
"end": 1987,
"ctxt": 0
},
"exprName": {
"type": "Identifier",
"span": {
"start": 1985,
"end": 1987,
"ctxt": 0
},
"value": "a2",
"optional": false
},
"typeArguments": null
}
}
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 2010,
"end": 2015,
"ctxt": 0
},
"value": "foo17",
"optional": false
},
"declare": true,
"params": [
{
"type": "Parameter",
"span": {
"start": 2016,
"end": 2023,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 2016,
"end": 2023,
"ctxt": 0
},
"value": "a2",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2018,
"end": 2023,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 2020,
"end": 2023,
"ctxt": 0
},
"kind": "any"
}
}
}
}
],
"decorators": [],
"span": {
"start": 1993,
"end": 2030,
"ctxt": 0
},
"body": null,
"generator": false,
"async": false,
"typeParameters": null,
"returnType": {
"type": "TsTypeAnnotation",
"span": {
"start": 2024,
"end": 2029,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 2026,
"end": 2029,
"ctxt": 0
},
"kind": "any"
}
}
},
{
"type": "VariableDeclaration",
"span": {
"start": 2036,
"end": 2077,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 2040,
"end": 2076,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2040,
"end": 2042,
"ctxt": 0
},
"value": "r1",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "CallExpression",
"span": {
"start": 2045,
"end": 2076,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 2045,
"end": 2049,
"ctxt": 0
},
"value": "foo2",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "ArrowFunctionExpression",
"span": {
"start": 2050,
"end": 2075,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 2057,
"end": 2061,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2058,
"end": 2061,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2060,
"end": 2061,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2060,
"end": 2061,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"body": {
"type": "TsTypeAssertion",
"span": {
"start": 2066,
"end": 2075,
"ctxt": 0
},
"expression": {
"type": "NullLiteral",
"span": {
"start": 2071,
"end": 2075,
"ctxt": 0
}
},
"typeAnnotation": {
"type": "TsArrayType",
"span": {
"start": 2067,
"end": 2070,
"ctxt": 0
},
"elemType": {
"type": "TsTypeReference",
"span": {
"start": 2067,
"end": 2068,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2067,
"end": 2068,
"ctxt": 0
},
"value": "U",
"optional": false
},
"typeParams": null
}
}
},
"async": false,
"generator": false,
"typeParameters": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 2050,
"end": 2056,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 2051,
"end": 2052,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2051,
"end": 2052,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": null,
"default": null
},
{
"type": "TsTypeParameter",
"span": {
"start": 2054,
"end": 2055,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2054,
"end": 2055,
"ctxt": 0
},
"value": "U",
"optional": false
},
"constraint": null,
"default": null
}
]
},
"returnType": null
}
}
],
"typeArguments": null
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 2089,
"end": 2148,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 2093,
"end": 2147,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2093,
"end": 2096,
"ctxt": 0
},
"value": "r1a",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrayExpression",
"span": {
"start": 2099,
"end": 2147,
"ctxt": 0
},
"elements": [
{
"spread": null,
"expression": {
"type": "ArrowFunctionExpression",
"span": {
"start": 2100,
"end": 2119,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 2101,
"end": 2110,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2102,
"end": 2110,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 2104,
"end": 2110,
"ctxt": 0
},
"kind": "number"
}
}
}
],
"body": {
"type": "ArrayExpression",
"span": {
"start": 2115,
"end": 2119,
"ctxt": 0
},
"elements": [
{
"spread": null,
"expression": {
"type": "StringLiteral",
"span": {
"start": 2116,
"end": 2118,
"ctxt": 0
},
"value": "",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
}
]
},
"async": false,
"generator": false,
"typeParameters": null,
"returnType": null
}
},
{
"spread": null,
"expression": {
"type": "ArrowFunctionExpression",
"span": {
"start": 2121,
"end": 2146,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 2128,
"end": 2132,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2129,
"end": 2132,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2131,
"end": 2132,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2131,
"end": 2132,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"body": {
"type": "TsTypeAssertion",
"span": {
"start": 2137,
"end": 2146,
"ctxt": 0
},
"expression": {
"type": "NullLiteral",
"span": {
"start": 2142,
"end": 2146,
"ctxt": 0
}
},
"typeAnnotation": {
"type": "TsArrayType",
"span": {
"start": 2138,
"end": 2141,
"ctxt": 0
},
"elemType": {
"type": "TsTypeReference",
"span": {
"start": 2138,
"end": 2139,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2138,
"end": 2139,
"ctxt": 0
},
"value": "U",
"optional": false
},
"typeParams": null
}
}
},
"async": false,
"generator": false,
"typeParameters": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 2121,
"end": 2127,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 2122,
"end": 2123,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2122,
"end": 2123,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": null,
"default": null
},
{
"type": "TsTypeParameter",
"span": {
"start": 2125,
"end": 2126,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2125,
"end": 2126,
"ctxt": 0
},
"value": "U",
"optional": false
},
"constraint": null,
"default": null
}
]
},
"returnType": null
}
}
]
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 2153,
"end": 2212,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 2157,
"end": 2211,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2157,
"end": 2160,
"ctxt": 0
},
"value": "r1b",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrayExpression",
"span": {
"start": 2163,
"end": 2211,
"ctxt": 0
},
"elements": [
{
"spread": null,
"expression": {
"type": "ArrowFunctionExpression",
"span": {
"start": 2164,
"end": 2189,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 2171,
"end": 2175,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2172,
"end": 2175,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2174,
"end": 2175,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2174,
"end": 2175,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"body": {
"type": "TsTypeAssertion",
"span": {
"start": 2180,
"end": 2189,
"ctxt": 0
},
"expression": {
"type": "NullLiteral",
"span": {
"start": 2185,
"end": 2189,
"ctxt": 0
}
},
"typeAnnotation": {
"type": "TsArrayType",
"span": {
"start": 2181,
"end": 2184,
"ctxt": 0
},
"elemType": {
"type": "TsTypeReference",
"span": {
"start": 2181,
"end": 2182,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2181,
"end": 2182,
"ctxt": 0
},
"value": "U",
"optional": false
},
"typeParams": null
}
}
},
"async": false,
"generator": false,
"typeParameters": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 2164,
"end": 2170,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 2165,
"end": 2166,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2165,
"end": 2166,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": null,
"default": null
},
{
"type": "TsTypeParameter",
"span": {
"start": 2168,
"end": 2169,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2168,
"end": 2169,
"ctxt": 0
},
"value": "U",
"optional": false
},
"constraint": null,
"default": null
}
]
},
"returnType": null
}
},
{
"spread": null,
"expression": {
"type": "ArrowFunctionExpression",
"span": {
"start": 2191,
"end": 2210,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 2192,
"end": 2201,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2193,
"end": 2201,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 2195,
"end": 2201,
"ctxt": 0
},
"kind": "number"
}
}
}
],
"body": {
"type": "ArrayExpression",
"span": {
"start": 2206,
"end": 2210,
"ctxt": 0
},
"elements": [
{
"spread": null,
"expression": {
"type": "StringLiteral",
"span": {
"start": 2207,
"end": 2209,
"ctxt": 0
},
"value": "",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
}
]
},
"async": false,
"generator": false,
"typeParameters": null,
"returnType": null
}
}
]
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 2218,
"end": 2325,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 2222,
"end": 2324,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2222,
"end": 2227,
"ctxt": 0
},
"value": "r2arg",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrowFunctionExpression",
"span": {
"start": 2230,
"end": 2324,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 2286,
"end": 2302,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2287,
"end": 2302,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 2289,
"end": 2302,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 2290,
"end": 2296,
"ctxt": 0
},
"value": "arg",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2293,
"end": 2296,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2295,
"end": 2296,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2295,
"end": 2296,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2298,
"end": 2302,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2301,
"end": 2302,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2301,
"end": 2302,
"ctxt": 0
},
"value": "U",
"optional": false
},
"typeParams": null
}
}
}
}
}
],
"body": {
"type": "ArrowFunctionExpression",
"span": {
"start": 2307,
"end": 2324,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 2308,
"end": 2312,
"ctxt": 0
},
"value": "r",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2309,
"end": 2312,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2311,
"end": 2312,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2311,
"end": 2312,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"body": {
"type": "TsTypeAssertion",
"span": {
"start": 2317,
"end": 2324,
"ctxt": 0
},
"expression": {
"type": "NullLiteral",
"span": {
"start": 2320,
"end": 2324,
"ctxt": 0
}
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2318,
"end": 2319,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2318,
"end": 2319,
"ctxt": 0
},
"value": "V",
"optional": false
},
"typeParams": null
}
},
"async": false,
"generator": false,
"typeParameters": null,
"returnType": null
},
"async": false,
"generator": false,
"typeParameters": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 2230,
"end": 2285,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 2231,
"end": 2245,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2231,
"end": 2232,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": {
"type": "TsTypeReference",
"span": {
"start": 2241,
"end": 2245,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2241,
"end": 2245,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeParams": null
},
"default": null
},
{
"type": "TsTypeParameter",
"span": {
"start": 2247,
"end": 2264,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2247,
"end": 2248,
"ctxt": 0
},
"value": "U",
"optional": false
},
"constraint": {
"type": "TsTypeReference",
"span": {
"start": 2257,
"end": 2264,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2257,
"end": 2264,
"ctxt": 0
},
"value": "Derived",
"optional": false
},
"typeParams": null
},
"default": null
},
{
"type": "TsTypeParameter",
"span": {
"start": 2266,
"end": 2284,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2266,
"end": 2267,
"ctxt": 0
},
"value": "V",
"optional": false
},
"constraint": {
"type": "TsTypeReference",
"span": {
"start": 2276,
"end": 2284,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2276,
"end": 2284,
"ctxt": 0
},
"value": "Derived2",
"optional": false
},
"typeParams": null
},
"default": null
}
]
},
"returnType": null
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 2330,
"end": 2402,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 2334,
"end": 2401,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2334,
"end": 2340,
"ctxt": 0
},
"value": "r2arg2",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrowFunctionExpression",
"span": {
"start": 2343,
"end": 2401,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 2344,
"end": 2369,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2345,
"end": 2369,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 2347,
"end": 2369,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 2348,
"end": 2357,
"ctxt": 0
},
"value": "arg",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2351,
"end": 2357,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2353,
"end": 2357,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2353,
"end": 2357,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2359,
"end": 2369,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2362,
"end": 2369,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2362,
"end": 2369,
"ctxt": 0
},
"value": "Derived",
"optional": false
},
"typeParams": null
}
}
}
}
}
],
"body": {
"type": "ArrowFunctionExpression",
"span": {
"start": 2374,
"end": 2401,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 2375,
"end": 2382,
"ctxt": 0
},
"value": "r",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2376,
"end": 2382,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2378,
"end": 2382,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2378,
"end": 2382,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeParams": null
}
}
}
],
"body": {
"type": "TsTypeAssertion",
"span": {
"start": 2387,
"end": 2401,
"ctxt": 0
},
"expression": {
"type": "NullLiteral",
"span": {
"start": 2397,
"end": 2401,
"ctxt": 0
}
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2388,
"end": 2396,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2388,
"end": 2396,
"ctxt": 0
},
"value": "Derived2",
"optional": false
},
"typeParams": null
}
},
"async": false,
"generator": false,
"typeParameters": null,
"returnType": null
},
"async": false,
"generator": false,
"typeParameters": null,
"returnType": null
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 2407,
"end": 2428,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 2411,
"end": 2427,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2411,
"end": 2413,
"ctxt": 0
},
"value": "r2",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "CallExpression",
"span": {
"start": 2416,
"end": 2427,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 2416,
"end": 2420,
"ctxt": 0
},
"value": "foo7",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 2421,
"end": 2426,
"ctxt": 0
},
"value": "r2arg",
"optional": false
}
}
],
"typeArguments": null
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 2440,
"end": 2466,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 2444,
"end": 2465,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2444,
"end": 2447,
"ctxt": 0
},
"value": "r2a",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrayExpression",
"span": {
"start": 2450,
"end": 2465,
"ctxt": 0
},
"elements": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 2451,
"end": 2457,
"ctxt": 0
},
"value": "r2arg2",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 2459,
"end": 2464,
"ctxt": 0
},
"value": "r2arg",
"optional": false
}
}
]
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 2471,
"end": 2497,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 2475,
"end": 2496,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2475,
"end": 2478,
"ctxt": 0
},
"value": "r2b",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrayExpression",
"span": {
"start": 2481,
"end": 2496,
"ctxt": 0
},
"elements": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 2482,
"end": 2487,
"ctxt": 0
},
"value": "r2arg",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 2489,
"end": 2495,
"ctxt": 0
},
"value": "r2arg2",
"optional": false
}
}
]
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 2503,
"end": 2624,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 2507,
"end": 2623,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2507,
"end": 2512,
"ctxt": 0
},
"value": "r3arg",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrowFunctionExpression",
"span": {
"start": 2515,
"end": 2623,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 2551,
"end": 2567,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2552,
"end": 2567,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 2554,
"end": 2567,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 2555,
"end": 2561,
"ctxt": 0
},
"value": "arg",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2558,
"end": 2561,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2560,
"end": 2561,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2560,
"end": 2561,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2563,
"end": 2567,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2566,
"end": 2567,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2566,
"end": 2567,
"ctxt": 0
},
"value": "U",
"optional": false
},
"typeParams": null
}
}
}
}
},
{
"type": "Identifier",
"span": {
"start": 2569,
"end": 2601,
"ctxt": 0
},
"value": "y",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2570,
"end": 2601,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 2572,
"end": 2601,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 2573,
"end": 2595,
"ctxt": 0
},
"value": "arg2",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2577,
"end": 2595,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeLiteral",
"span": {
"start": 2579,
"end": 2595,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 2581,
"end": 2593,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2581,
"end": 2584,
"ctxt": 0
},
"value": "foo",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2584,
"end": 2592,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 2586,
"end": 2592,
"ctxt": 0
},
"kind": "number"
}
},
"typeParams": null
}
]
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2597,
"end": 2601,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2600,
"end": 2601,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2600,
"end": 2601,
"ctxt": 0
},
"value": "U",
"optional": false
},
"typeParams": null
}
}
}
}
}
],
"body": {
"type": "ArrowFunctionExpression",
"span": {
"start": 2606,
"end": 2623,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 2607,
"end": 2611,
"ctxt": 0
},
"value": "r",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2608,
"end": 2611,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2610,
"end": 2611,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2610,
"end": 2611,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"body": {
"type": "TsTypeAssertion",
"span": {
"start": 2616,
"end": 2623,
"ctxt": 0
},
"expression": {
"type": "NullLiteral",
"span": {
"start": 2619,
"end": 2623,
"ctxt": 0
}
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2617,
"end": 2618,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2617,
"end": 2618,
"ctxt": 0
},
"value": "U",
"optional": false
},
"typeParams": null
}
},
"async": false,
"generator": false,
"typeParameters": null,
"returnType": null
},
"async": false,
"generator": false,
"typeParameters": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 2515,
"end": 2550,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 2516,
"end": 2530,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2516,
"end": 2517,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": {
"type": "TsTypeReference",
"span": {
"start": 2526,
"end": 2530,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2526,
"end": 2530,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeParams": null
},
"default": null
},
{
"type": "TsTypeParameter",
"span": {
"start": 2532,
"end": 2549,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2532,
"end": 2533,
"ctxt": 0
},
"value": "U",
"optional": false
},
"constraint": {
"type": "TsTypeReference",
"span": {
"start": 2542,
"end": 2549,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2542,
"end": 2549,
"ctxt": 0
},
"value": "Derived",
"optional": false
},
"typeParams": null
},
"default": null
}
]
},
"returnType": null
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 2629,
"end": 2728,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 2633,
"end": 2727,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2633,
"end": 2639,
"ctxt": 0
},
"value": "r3arg2",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrowFunctionExpression",
"span": {
"start": 2642,
"end": 2727,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 2643,
"end": 2668,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2644,
"end": 2668,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 2646,
"end": 2668,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 2647,
"end": 2656,
"ctxt": 0
},
"value": "arg",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2650,
"end": 2656,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2652,
"end": 2656,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2652,
"end": 2656,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2658,
"end": 2668,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2661,
"end": 2668,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2661,
"end": 2668,
"ctxt": 0
},
"value": "Derived",
"optional": false
},
"typeParams": null
}
}
}
}
},
{
"type": "Identifier",
"span": {
"start": 2670,
"end": 2696,
"ctxt": 0
},
"value": "y",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2671,
"end": 2696,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 2673,
"end": 2696,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 2674,
"end": 2684,
"ctxt": 0
},
"value": "arg2",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2678,
"end": 2684,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2680,
"end": 2684,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2680,
"end": 2684,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2686,
"end": 2696,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2689,
"end": 2696,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2689,
"end": 2696,
"ctxt": 0
},
"value": "Derived",
"optional": false
},
"typeParams": null
}
}
}
}
}
],
"body": {
"type": "ArrowFunctionExpression",
"span": {
"start": 2701,
"end": 2727,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 2702,
"end": 2709,
"ctxt": 0
},
"value": "r",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2703,
"end": 2709,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2705,
"end": 2709,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2705,
"end": 2709,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeParams": null
}
}
}
],
"body": {
"type": "TsTypeAssertion",
"span": {
"start": 2714,
"end": 2727,
"ctxt": 0
},
"expression": {
"type": "NullLiteral",
"span": {
"start": 2723,
"end": 2727,
"ctxt": 0
}
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2715,
"end": 2722,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2715,
"end": 2722,
"ctxt": 0
},
"value": "Derived",
"optional": false
},
"typeParams": null
}
},
"async": false,
"generator": false,
"typeParameters": null,
"returnType": null
},
"async": false,
"generator": false,
"typeParameters": null,
"returnType": null
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 2733,
"end": 2754,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 2737,
"end": 2753,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2737,
"end": 2739,
"ctxt": 0
},
"value": "r3",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "CallExpression",
"span": {
"start": 2742,
"end": 2753,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 2742,
"end": 2746,
"ctxt": 0
},
"value": "foo8",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 2747,
"end": 2752,
"ctxt": 0
},
"value": "r3arg",
"optional": false
}
}
],
"typeArguments": null
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 2766,
"end": 2792,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 2770,
"end": 2791,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2770,
"end": 2773,
"ctxt": 0
},
"value": "r3a",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrayExpression",
"span": {
"start": 2776,
"end": 2791,
"ctxt": 0
},
"elements": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 2777,
"end": 2783,
"ctxt": 0
},
"value": "r3arg2",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 2785,
"end": 2790,
"ctxt": 0
},
"value": "r3arg",
"optional": false
}
}
]
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 2797,
"end": 2823,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 2801,
"end": 2822,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2801,
"end": 2804,
"ctxt": 0
},
"value": "r3b",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrayExpression",
"span": {
"start": 2807,
"end": 2822,
"ctxt": 0
},
"elements": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 2808,
"end": 2813,
"ctxt": 0
},
"value": "r3arg",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 2815,
"end": 2821,
"ctxt": 0
},
"value": "r3arg2",
"optional": false
}
}
]
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 2829,
"end": 2883,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 2833,
"end": 2882,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2833,
"end": 2838,
"ctxt": 0
},
"value": "r4arg",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrowFunctionExpression",
"span": {
"start": 2841,
"end": 2882,
"ctxt": 0
},
"params": [
{
"type": "RestElement",
"span": {
"start": 2861,
"end": 2870,
"ctxt": 0
},
"rest": {
"start": 2861,
"end": 2864,
"ctxt": 0
},
"argument": {
"type": "Identifier",
"span": {
"start": 2864,
"end": 2865,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": null
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2865,
"end": 2870,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsArrayType",
"span": {
"start": 2867,
"end": 2870,
"ctxt": 0
},
"elemType": {
"type": "TsTypeReference",
"span": {
"start": 2867,
"end": 2868,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2867,
"end": 2868,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
}
],
"body": {
"type": "TsTypeAssertion",
"span": {
"start": 2875,
"end": 2882,
"ctxt": 0
},
"expression": {
"type": "NullLiteral",
"span": {
"start": 2878,
"end": 2882,
"ctxt": 0
}
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2876,
"end": 2877,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2876,
"end": 2877,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"async": false,
"generator": false,
"typeParameters": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 2841,
"end": 2860,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 2842,
"end": 2859,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2842,
"end": 2843,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": {
"type": "TsTypeReference",
"span": {
"start": 2852,
"end": 2859,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2852,
"end": 2859,
"ctxt": 0
},
"value": "Derived",
"optional": false
},
"typeParams": null
},
"default": null
}
]
},
"returnType": null
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 2888,
"end": 2930,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 2892,
"end": 2929,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2892,
"end": 2898,
"ctxt": 0
},
"value": "r4arg2",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrowFunctionExpression",
"span": {
"start": 2901,
"end": 2929,
"ctxt": 0
},
"params": [
{
"type": "RestElement",
"span": {
"start": 2902,
"end": 2914,
"ctxt": 0
},
"rest": {
"start": 2902,
"end": 2905,
"ctxt": 0
},
"argument": {
"type": "Identifier",
"span": {
"start": 2905,
"end": 2906,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": null
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2906,
"end": 2914,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsArrayType",
"span": {
"start": 2908,
"end": 2914,
"ctxt": 0
},
"elemType": {
"type": "TsTypeReference",
"span": {
"start": 2908,
"end": 2912,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2908,
"end": 2912,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeParams": null
}
}
}
}
],
"body": {
"type": "TsTypeAssertion",
"span": {
"start": 2919,
"end": 2929,
"ctxt": 0
},
"expression": {
"type": "NullLiteral",
"span": {
"start": 2925,
"end": 2929,
"ctxt": 0
}
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2920,
"end": 2924,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2920,
"end": 2924,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeParams": null
}
},
"async": false,
"generator": false,
"typeParameters": null,
"returnType": null
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 2935,
"end": 2957,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 2939,
"end": 2956,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2939,
"end": 2941,
"ctxt": 0
},
"value": "r4",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "CallExpression",
"span": {
"start": 2944,
"end": 2956,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 2944,
"end": 2949,
"ctxt": 0
},
"value": "foo10",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 2950,
"end": 2955,
"ctxt": 0
},
"value": "r4arg",
"optional": false
}
}
],
"typeArguments": null
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 2969,
"end": 2995,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 2973,
"end": 2994,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2973,
"end": 2976,
"ctxt": 0
},
"value": "r4a",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrayExpression",
"span": {
"start": 2979,
"end": 2994,
"ctxt": 0
},
"elements": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 2980,
"end": 2986,
"ctxt": 0
},
"value": "r4arg2",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 2988,
"end": 2993,
"ctxt": 0
},
"value": "r4arg",
"optional": false
}
}
]
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 3000,
"end": 3026,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 3004,
"end": 3025,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3004,
"end": 3007,
"ctxt": 0
},
"value": "r4b",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrayExpression",
"span": {
"start": 3010,
"end": 3025,
"ctxt": 0
},
"elements": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 3011,
"end": 3016,
"ctxt": 0
},
"value": "r4arg",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 3018,
"end": 3024,
"ctxt": 0
},
"value": "r4arg2",
"optional": false
}
}
]
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 3032,
"end": 3087,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 3036,
"end": 3086,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3036,
"end": 3041,
"ctxt": 0
},
"value": "r5arg",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrowFunctionExpression",
"span": {
"start": 3044,
"end": 3086,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 3064,
"end": 3068,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3065,
"end": 3068,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3067,
"end": 3068,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3067,
"end": 3068,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 3070,
"end": 3074,
"ctxt": 0
},
"value": "y",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3071,
"end": 3074,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3073,
"end": 3074,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3073,
"end": 3074,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"body": {
"type": "TsTypeAssertion",
"span": {
"start": 3079,
"end": 3086,
"ctxt": 0
},
"expression": {
"type": "NullLiteral",
"span": {
"start": 3082,
"end": 3086,
"ctxt": 0
}
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3080,
"end": 3081,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3080,
"end": 3081,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"async": false,
"generator": false,
"typeParameters": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 3044,
"end": 3063,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 3045,
"end": 3062,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 3045,
"end": 3046,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": {
"type": "TsTypeReference",
"span": {
"start": 3055,
"end": 3062,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3055,
"end": 3062,
"ctxt": 0
},
"value": "Derived",
"optional": false
},
"typeParams": null
},
"default": null
}
]
},
"returnType": null
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 3092,
"end": 3173,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 3096,
"end": 3172,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3096,
"end": 3102,
"ctxt": 0
},
"value": "r5arg2",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrowFunctionExpression",
"span": {
"start": 3105,
"end": 3172,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 3106,
"end": 3124,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3107,
"end": 3124,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeLiteral",
"span": {
"start": 3109,
"end": 3124,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 3111,
"end": 3122,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3111,
"end": 3114,
"ctxt": 0
},
"value": "foo",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3114,
"end": 3122,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 3116,
"end": 3122,
"ctxt": 0
},
"kind": "string"
}
},
"typeParams": null
}
]
}
}
},
{
"type": "Identifier",
"span": {
"start": 3126,
"end": 3157,
"ctxt": 0
},
"value": "y",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3127,
"end": 3157,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeLiteral",
"span": {
"start": 3129,
"end": 3157,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 3131,
"end": 3143,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3131,
"end": 3134,
"ctxt": 0
},
"value": "foo",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3134,
"end": 3142,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 3136,
"end": 3142,
"ctxt": 0
},
"kind": "string"
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 3144,
"end": 3155,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3144,
"end": 3147,
"ctxt": 0
},
"value": "bar",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3147,
"end": 3155,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 3149,
"end": 3155,
"ctxt": 0
},
"kind": "string"
}
},
"typeParams": null
}
]
}
}
}
],
"body": {
"type": "TsTypeAssertion",
"span": {
"start": 3162,
"end": 3172,
"ctxt": 0
},
"expression": {
"type": "NullLiteral",
"span": {
"start": 3168,
"end": 3172,
"ctxt": 0
}
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3163,
"end": 3167,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3163,
"end": 3167,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeParams": null
}
},
"async": false,
"generator": false,
"typeParameters": null,
"returnType": null
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 3178,
"end": 3200,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 3182,
"end": 3199,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3182,
"end": 3184,
"ctxt": 0
},
"value": "r5",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "CallExpression",
"span": {
"start": 3187,
"end": 3199,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 3187,
"end": 3192,
"ctxt": 0
},
"value": "foo11",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 3193,
"end": 3198,
"ctxt": 0
},
"value": "r5arg",
"optional": false
}
}
],
"typeArguments": null
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 3212,
"end": 3238,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 3216,
"end": 3237,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3216,
"end": 3219,
"ctxt": 0
},
"value": "r5a",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrayExpression",
"span": {
"start": 3222,
"end": 3237,
"ctxt": 0
},
"elements": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 3223,
"end": 3229,
"ctxt": 0
},
"value": "r5arg2",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 3231,
"end": 3236,
"ctxt": 0
},
"value": "r5arg",
"optional": false
}
}
]
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 3243,
"end": 3269,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 3247,
"end": 3268,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3247,
"end": 3250,
"ctxt": 0
},
"value": "r5b",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrayExpression",
"span": {
"start": 3253,
"end": 3268,
"ctxt": 0
},
"elements": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 3254,
"end": 3259,
"ctxt": 0
},
"value": "r5arg",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 3261,
"end": 3267,
"ctxt": 0
},
"value": "r5arg2",
"optional": false
}
}
]
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 3275,
"end": 3348,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 3279,
"end": 3347,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3279,
"end": 3284,
"ctxt": 0
},
"value": "r6arg",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrowFunctionExpression",
"span": {
"start": 3287,
"end": 3347,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 3288,
"end": 3302,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3289,
"end": 3302,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3291,
"end": 3302,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3291,
"end": 3296,
"ctxt": 0
},
"value": "Array",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 3296,
"end": 3302,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 3297,
"end": 3301,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3297,
"end": 3301,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeParams": null
}
]
}
}
}
},
{
"type": "Identifier",
"span": {
"start": 3304,
"end": 3322,
"ctxt": 0
},
"value": "y",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3305,
"end": 3322,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3307,
"end": 3322,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3307,
"end": 3312,
"ctxt": 0
},
"value": "Array",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 3312,
"end": 3322,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 3313,
"end": 3321,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3313,
"end": 3321,
"ctxt": 0
},
"value": "Derived2",
"optional": false
},
"typeParams": null
}
]
}
}
}
}
],
"body": {
"type": "TsTypeAssertion",
"span": {
"start": 3327,
"end": 3347,
"ctxt": 0
},
"expression": {
"type": "NullLiteral",
"span": {
"start": 3343,
"end": 3347,
"ctxt": 0
}
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3328,
"end": 3342,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3328,
"end": 3333,
"ctxt": 0
},
"value": "Array",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 3333,
"end": 3342,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 3334,
"end": 3341,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3334,
"end": 3341,
"ctxt": 0
},
"value": "Derived",
"optional": false
},
"typeParams": null
}
]
}
}
},
"async": false,
"generator": false,
"typeParameters": null,
"returnType": null
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 3353,
"end": 3437,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 3357,
"end": 3436,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3357,
"end": 3363,
"ctxt": 0
},
"value": "r6arg2",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrowFunctionExpression",
"span": {
"start": 3366,
"end": 3436,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 3394,
"end": 3408,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3395,
"end": 3408,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3397,
"end": 3408,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3397,
"end": 3402,
"ctxt": 0
},
"value": "Array",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 3402,
"end": 3408,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 3403,
"end": 3407,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3403,
"end": 3407,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeParams": null
}
]
}
}
}
},
{
"type": "Identifier",
"span": {
"start": 3410,
"end": 3424,
"ctxt": 0
},
"value": "y",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3411,
"end": 3424,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3413,
"end": 3424,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3413,
"end": 3418,
"ctxt": 0
},
"value": "Array",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 3418,
"end": 3424,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 3419,
"end": 3423,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3419,
"end": 3423,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeParams": null
}
]
}
}
}
}
],
"body": {
"type": "TsTypeAssertion",
"span": {
"start": 3429,
"end": 3436,
"ctxt": 0
},
"expression": {
"type": "NullLiteral",
"span": {
"start": 3432,
"end": 3436,
"ctxt": 0
}
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3430,
"end": 3431,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3430,
"end": 3431,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"async": false,
"generator": false,
"typeParameters": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 3366,
"end": 3393,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 3367,
"end": 3392,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 3367,
"end": 3368,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": {
"type": "TsTypeReference",
"span": {
"start": 3377,
"end": 3392,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3377,
"end": 3382,
"ctxt": 0
},
"value": "Array",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 3382,
"end": 3392,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 3383,
"end": 3391,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3383,
"end": 3391,
"ctxt": 0
},
"value": "Derived2",
"optional": false
},
"typeParams": null
}
]
}
},
"default": null
}
]
},
"returnType": null
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 3442,
"end": 3464,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 3446,
"end": 3463,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3446,
"end": 3448,
"ctxt": 0
},
"value": "r6",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "CallExpression",
"span": {
"start": 3451,
"end": 3463,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 3451,
"end": 3456,
"ctxt": 0
},
"value": "foo12",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 3457,
"end": 3462,
"ctxt": 0
},
"value": "r6arg",
"optional": false
}
}
],
"typeArguments": null
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 3527,
"end": 3553,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 3531,
"end": 3552,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3531,
"end": 3534,
"ctxt": 0
},
"value": "r6a",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrayExpression",
"span": {
"start": 3537,
"end": 3552,
"ctxt": 0
},
"elements": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 3538,
"end": 3544,
"ctxt": 0
},
"value": "r6arg2",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 3546,
"end": 3551,
"ctxt": 0
},
"value": "r6arg",
"optional": false
}
}
]
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 3558,
"end": 3584,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 3562,
"end": 3583,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3562,
"end": 3565,
"ctxt": 0
},
"value": "r6b",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrayExpression",
"span": {
"start": 3568,
"end": 3583,
"ctxt": 0
},
"elements": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 3569,
"end": 3574,
"ctxt": 0
},
"value": "r6arg",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 3576,
"end": 3582,
"ctxt": 0
},
"value": "r6arg2",
"optional": false
}
}
]
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 3590,
"end": 3636,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 3594,
"end": 3635,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3594,
"end": 3599,
"ctxt": 0
},
"value": "r7arg",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrowFunctionExpression",
"span": {
"start": 3602,
"end": 3635,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 3606,
"end": 3623,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3607,
"end": 3623,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeLiteral",
"span": {
"start": 3609,
"end": 3623,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 3611,
"end": 3616,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3611,
"end": 3612,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3612,
"end": 3615,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3614,
"end": 3615,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3614,
"end": 3615,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 3617,
"end": 3621,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3617,
"end": 3618,
"ctxt": 0
},
"value": "b",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3618,
"end": 3621,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3620,
"end": 3621,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3620,
"end": 3621,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"typeParams": null
}
]
}
}
}
],
"body": {
"type": "TsTypeAssertion",
"span": {
"start": 3628,
"end": 3635,
"ctxt": 0
},
"expression": {
"type": "NullLiteral",
"span": {
"start": 3631,
"end": 3635,
"ctxt": 0
}
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3629,
"end": 3630,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3629,
"end": 3630,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"async": false,
"generator": false,
"typeParameters": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 3602,
"end": 3605,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 3603,
"end": 3604,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 3603,
"end": 3604,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": null,
"default": null
}
]
},
"returnType": null
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 3641,
"end": 3689,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 3645,
"end": 3688,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3645,
"end": 3651,
"ctxt": 0
},
"value": "r7arg2",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrowFunctionExpression",
"span": {
"start": 3654,
"end": 3688,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 3655,
"end": 3682,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3656,
"end": 3682,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeLiteral",
"span": {
"start": 3658,
"end": 3682,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 3660,
"end": 3670,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3660,
"end": 3661,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3661,
"end": 3669,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 3663,
"end": 3669,
"ctxt": 0
},
"kind": "string"
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 3671,
"end": 3680,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3671,
"end": 3672,
"ctxt": 0
},
"value": "b",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3672,
"end": 3680,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 3674,
"end": 3680,
"ctxt": 0
},
"kind": "number"
}
},
"typeParams": null
}
]
}
}
}
],
"body": {
"type": "NumericLiteral",
"span": {
"start": 3687,
"end": 3688,
"ctxt": 0
},
"value": 1.0
},
"async": false,
"generator": false,
"typeParameters": null,
"returnType": null
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 3694,
"end": 3716,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 3698,
"end": 3715,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3698,
"end": 3700,
"ctxt": 0
},
"value": "r7",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "CallExpression",
"span": {
"start": 3703,
"end": 3715,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 3703,
"end": 3708,
"ctxt": 0
},
"value": "foo15",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 3709,
"end": 3714,
"ctxt": 0
},
"value": "r7arg",
"optional": false
}
}
],
"typeArguments": null
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 3728,
"end": 3754,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 3732,
"end": 3753,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3732,
"end": 3735,
"ctxt": 0
},
"value": "r7a",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrayExpression",
"span": {
"start": 3738,
"end": 3753,
"ctxt": 0
},
"elements": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 3739,
"end": 3745,
"ctxt": 0
},
"value": "r7arg2",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 3747,
"end": 3752,
"ctxt": 0
},
"value": "r7arg",
"optional": false
}
}
]
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 3759,
"end": 3785,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 3763,
"end": 3784,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3763,
"end": 3766,
"ctxt": 0
},
"value": "r7b",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrayExpression",
"span": {
"start": 3769,
"end": 3784,
"ctxt": 0
},
"elements": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 3770,
"end": 3775,
"ctxt": 0
},
"value": "r7arg",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 3777,
"end": 3783,
"ctxt": 0
},
"value": "r7arg2",
"optional": false
}
}
]
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 3791,
"end": 3845,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 3795,
"end": 3844,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3795,
"end": 3801,
"ctxt": 0
},
"value": "r7arg3",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrowFunctionExpression",
"span": {
"start": 3804,
"end": 3844,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 3821,
"end": 3838,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3822,
"end": 3838,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeLiteral",
"span": {
"start": 3824,
"end": 3838,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 3826,
"end": 3831,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3826,
"end": 3827,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3827,
"end": 3830,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3829,
"end": 3830,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3829,
"end": 3830,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 3832,
"end": 3836,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3832,
"end": 3833,
"ctxt": 0
},
"value": "b",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3833,
"end": 3836,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3835,
"end": 3836,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3835,
"end": 3836,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"typeParams": null
}
]
}
}
}
],
"body": {
"type": "NumericLiteral",
"span": {
"start": 3843,
"end": 3844,
"ctxt": 0
},
"value": 1.0
},
"async": false,
"generator": false,
"typeParameters": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 3804,
"end": 3820,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 3805,
"end": 3819,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 3805,
"end": 3806,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": {
"type": "TsTypeReference",
"span": {
"start": 3815,
"end": 3819,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3815,
"end": 3819,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeParams": null
},
"default": null
}
]
},
"returnType": null
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 3850,
"end": 3874,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 3854,
"end": 3873,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3854,
"end": 3857,
"ctxt": 0
},
"value": "r7c",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "CallExpression",
"span": {
"start": 3860,
"end": 3873,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 3860,
"end": 3865,
"ctxt": 0
},
"value": "foo15",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 3866,
"end": 3872,
"ctxt": 0
},
"value": "r7arg3",
"optional": false
}
}
],
"typeArguments": null
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 3932,
"end": 3959,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 3936,
"end": 3958,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3936,
"end": 3939,
"ctxt": 0
},
"value": "r7d",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrayExpression",
"span": {
"start": 3942,
"end": 3958,
"ctxt": 0
},
"elements": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 3943,
"end": 3949,
"ctxt": 0
},
"value": "r7arg2",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 3951,
"end": 3957,
"ctxt": 0
},
"value": "r7arg3",
"optional": false
}
}
]
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 3964,
"end": 3991,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 3968,
"end": 3990,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3968,
"end": 3971,
"ctxt": 0
},
"value": "r7e",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrayExpression",
"span": {
"start": 3974,
"end": 3990,
"ctxt": 0
},
"elements": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 3975,
"end": 3981,
"ctxt": 0
},
"value": "r7arg3",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 3983,
"end": 3989,
"ctxt": 0
},
"value": "r7arg2",
"optional": false
}
}
]
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 3997,
"end": 4042,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 4001,
"end": 4041,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 4001,
"end": 4006,
"ctxt": 0
},
"value": "r8arg",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrowFunctionExpression",
"span": {
"start": 4009,
"end": 4041,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 4013,
"end": 4027,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4014,
"end": 4027,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 4016,
"end": 4027,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 4017,
"end": 4021,
"ctxt": 0
},
"value": "a",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4018,
"end": 4021,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4020,
"end": 4021,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4020,
"end": 4021,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4023,
"end": 4027,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4026,
"end": 4027,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4026,
"end": 4027,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
}
}
],
"body": {
"type": "TsTypeAssertion",
"span": {
"start": 4032,
"end": 4041,
"ctxt": 0
},
"expression": {
"type": "NullLiteral",
"span": {
"start": 4037,
"end": 4041,
"ctxt": 0
}
},
"typeAnnotation": {
"type": "TsArrayType",
"span": {
"start": 4033,
"end": 4036,
"ctxt": 0
},
"elemType": {
"type": "TsTypeReference",
"span": {
"start": 4033,
"end": 4034,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4033,
"end": 4034,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
"async": false,
"generator": false,
"typeParameters": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 4009,
"end": 4012,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 4010,
"end": 4011,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 4010,
"end": 4011,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": null,
"default": null
}
]
},
"returnType": null
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 4047,
"end": 4069,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 4051,
"end": 4068,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 4051,
"end": 4053,
"ctxt": 0
},
"value": "r8",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "CallExpression",
"span": {
"start": 4056,
"end": 4068,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 4056,
"end": 4061,
"ctxt": 0
},
"value": "foo16",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 4062,
"end": 4067,
"ctxt": 0
},
"value": "r8arg",
"optional": false
}
}
],
"typeArguments": null
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 4082,
"end": 4129,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 4086,
"end": 4128,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 4086,
"end": 4091,
"ctxt": 0
},
"value": "r9arg",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrowFunctionExpression",
"span": {
"start": 4094,
"end": 4128,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 4098,
"end": 4112,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4099,
"end": 4112,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 4101,
"end": 4112,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 4102,
"end": 4106,
"ctxt": 0
},
"value": "a",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4103,
"end": 4106,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4105,
"end": 4106,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4105,
"end": 4106,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4108,
"end": 4112,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4111,
"end": 4112,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4111,
"end": 4112,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
}
}
],
"body": {
"type": "TsTypeAssertion",
"span": {
"start": 4117,
"end": 4128,
"ctxt": 0
},
"expression": {
"type": "NullLiteral",
"span": {
"start": 4124,
"end": 4128,
"ctxt": 0
}
},
"typeAnnotation": {
"type": "TsArrayType",
"span": {
"start": 4118,
"end": 4123,
"ctxt": 0
},
"elemType": {
"type": "TsKeywordType",
"span": {
"start": 4118,
"end": 4121,
"ctxt": 0
},
"kind": "any"
}
}
},
"async": false,
"generator": false,
"typeParameters": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 4094,
"end": 4097,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 4095,
"end": 4096,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 4095,
"end": 4096,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": null,
"default": null
}
]
},
"returnType": null
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 4134,
"end": 4156,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 4138,
"end": 4155,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 4138,
"end": 4140,
"ctxt": 0
},
"value": "r9",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "CallExpression",
"span": {
"start": 4143,
"end": 4155,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 4143,
"end": 4148,
"ctxt": 0
},
"value": "foo17",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 4149,
"end": 4154,
"ctxt": 0
},
"value": "r9arg",
"optional": false
}
}
],
"typeArguments": null
},
"definite": false
}
]
}
]
}
},
{
"type": "TsModuleDeclaration",
"span": {
"start": 4314,
"end": 4768,
"ctxt": 0
},
"declare": false,
"global": false,
"id": {
"type": "Identifier",
"span": {
"start": 4321,
"end": 4352,
"ctxt": 0
},
"value": "WithGenericSignaturesInBaseType",
"optional": false
},
"body": {
"type": "TsModuleBlock",
"span": {
"start": 4353,
"end": 4768,
"ctxt": 0
},
"body": [
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 4376,
"end": 4380,
"ctxt": 0
},
"value": "foo2",
"optional": false
},
"declare": true,
"params": [
{
"type": "Parameter",
"span": {
"start": 4381,
"end": 4401,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 4381,
"end": 4401,
"ctxt": 0
},
"value": "a2",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4383,
"end": 4401,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 4385,
"end": 4401,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 4389,
"end": 4393,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4390,
"end": 4393,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4392,
"end": 4393,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4392,
"end": 4393,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 4385,
"end": 4388,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 4386,
"end": 4387,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 4386,
"end": 4387,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4395,
"end": 4401,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsArrayType",
"span": {
"start": 4398,
"end": 4401,
"ctxt": 0
},
"elemType": {
"type": "TsTypeReference",
"span": {
"start": 4398,
"end": 4399,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4398,
"end": 4399,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
}
}
}
}
],
"decorators": [],
"span": {
"start": 4359,
"end": 4414,
"ctxt": 0
},
"body": null,
"generator": false,
"async": false,
"typeParameters": null,
"returnType": {
"type": "TsTypeAnnotation",
"span": {
"start": 4402,
"end": 4413,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeQuery",
"span": {
"start": 4404,
"end": 4413,
"ctxt": 0
},
"exprName": {
"type": "Identifier",
"span": {
"start": 4411,
"end": 4413,
"ctxt": 0
},
"value": "a2",
"optional": false
},
"typeArguments": null
}
}
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 4436,
"end": 4440,
"ctxt": 0
},
"value": "foo2",
"optional": false
},
"declare": true,
"params": [
{
"type": "Parameter",
"span": {
"start": 4441,
"end": 4448,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 4441,
"end": 4448,
"ctxt": 0
},
"value": "a2",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4443,
"end": 4448,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 4445,
"end": 4448,
"ctxt": 0
},
"kind": "any"
}
}
}
}
],
"decorators": [],
"span": {
"start": 4419,
"end": 4455,
"ctxt": 0
},
"body": null,
"generator": false,
"async": false,
"typeParameters": null,
"returnType": {
"type": "TsTypeAnnotation",
"span": {
"start": 4449,
"end": 4454,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 4451,
"end": 4454,
"ctxt": 0
},
"kind": "any"
}
}
},
{
"type": "VariableDeclaration",
"span": {
"start": 4460,
"end": 4491,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 4464,
"end": 4490,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 4464,
"end": 4470,
"ctxt": 0
},
"value": "r2arg2",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrowFunctionExpression",
"span": {
"start": 4473,
"end": 4490,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 4477,
"end": 4481,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4478,
"end": 4481,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4480,
"end": 4481,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4480,
"end": 4481,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"body": {
"type": "ArrayExpression",
"span": {
"start": 4486,
"end": 4490,
"ctxt": 0
},
"elements": [
{
"spread": null,
"expression": {
"type": "StringLiteral",
"span": {
"start": 4487,
"end": 4489,
"ctxt": 0
},
"value": "",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
}
]
},
"async": false,
"generator": false,
"typeParameters": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 4473,
"end": 4476,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 4474,
"end": 4475,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 4474,
"end": 4475,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": null,
"default": null
}
]
},
"returnType": null
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 4496,
"end": 4518,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 4500,
"end": 4517,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 4500,
"end": 4502,
"ctxt": 0
},
"value": "r2",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "CallExpression",
"span": {
"start": 4505,
"end": 4517,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 4505,
"end": 4509,
"ctxt": 0
},
"value": "foo2",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 4510,
"end": 4516,
"ctxt": 0
},
"value": "r2arg2",
"optional": false
}
}
],
"typeArguments": null
},
"definite": false
}
]
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 4607,
"end": 4611,
"ctxt": 0
},
"value": "foo3",
"optional": false
},
"declare": true,
"params": [
{
"type": "Parameter",
"span": {
"start": 4612,
"end": 4637,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 4612,
"end": 4637,
"ctxt": 0
},
"value": "a2",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4614,
"end": 4637,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 4616,
"end": 4637,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 4620,
"end": 4624,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4621,
"end": 4624,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4623,
"end": 4624,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4623,
"end": 4624,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 4616,
"end": 4619,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 4617,
"end": 4618,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 4617,
"end": 4618,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4626,
"end": 4637,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsArrayType",
"span": {
"start": 4629,
"end": 4637,
"ctxt": 0
},
"elemType": {
"type": "TsKeywordType",
"span": {
"start": 4629,
"end": 4635,
"ctxt": 0
},
"kind": "string"
}
}
}
}
}
}
}
],
"decorators": [],
"span": {
"start": 4590,
"end": 4650,
"ctxt": 0
},
"body": null,
"generator": false,
"async": false,
"typeParameters": null,
"returnType": {
"type": "TsTypeAnnotation",
"span": {
"start": 4638,
"end": 4649,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeQuery",
"span": {
"start": 4640,
"end": 4649,
"ctxt": 0
},
"exprName": {
"type": "Identifier",
"span": {
"start": 4647,
"end": 4649,
"ctxt": 0
},
"value": "a2",
"optional": false
},
"typeArguments": null
}
}
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 4672,
"end": 4676,
"ctxt": 0
},
"value": "foo3",
"optional": false
},
"declare": true,
"params": [
{
"type": "Parameter",
"span": {
"start": 4677,
"end": 4684,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 4677,
"end": 4684,
"ctxt": 0
},
"value": "a2",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4679,
"end": 4684,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 4681,
"end": 4684,
"ctxt": 0
},
"kind": "any"
}
}
}
}
],
"decorators": [],
"span": {
"start": 4655,
"end": 4691,
"ctxt": 0
},
"body": null,
"generator": false,
"async": false,
"typeParameters": null,
"returnType": {
"type": "TsTypeAnnotation",
"span": {
"start": 4685,
"end": 4690,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 4687,
"end": 4690,
"ctxt": 0
},
"kind": "any"
}
}
},
{
"type": "VariableDeclaration",
"span": {
"start": 4696,
"end": 4732,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 4700,
"end": 4731,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 4700,
"end": 4706,
"ctxt": 0
},
"value": "r3arg2",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrowFunctionExpression",
"span": {
"start": 4709,
"end": 4731,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 4713,
"end": 4717,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4714,
"end": 4717,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4716,
"end": 4717,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4716,
"end": 4717,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"body": {
"type": "TsTypeAssertion",
"span": {
"start": 4722,
"end": 4731,
"ctxt": 0
},
"expression": {
"type": "NullLiteral",
"span": {
"start": 4727,
"end": 4731,
"ctxt": 0
}
},
"typeAnnotation": {
"type": "TsArrayType",
"span": {
"start": 4723,
"end": 4726,
"ctxt": 0
},
"elemType": {
"type": "TsTypeReference",
"span": {
"start": 4723,
"end": 4724,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4723,
"end": 4724,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
"async": false,
"generator": false,
"typeParameters": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 4709,
"end": 4712,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 4710,
"end": 4711,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 4710,
"end": 4711,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": null,
"default": null
}
]
},
"returnType": null
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 4737,
"end": 4759,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 4741,
"end": 4758,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 4741,
"end": 4743,
"ctxt": 0
},
"value": "r3",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "CallExpression",
"span": {
"start": 4746,
"end": 4758,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 4746,
"end": 4750,
"ctxt": 0
},
"value": "foo3",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 4751,
"end": 4757,
"ctxt": 0
},
"value": "r3arg2",
"optional": false
}
}
],
"typeArguments": null
},
"definite": false
}
]
}
]
}
}
],
"interpreter": null
}