swc/crates/swc_ecma_parser/tests/tsc/heterogeneousArrayLiterals.json
2022-02-04 17:08:38 +09:00

6955 lines
202 KiB
JSON

{
"type": "Script",
"span": {
"start": 103,
"end": 3320,
"ctxt": 0
},
"body": [
{
"type": "VariableDeclaration",
"span": {
"start": 103,
"end": 119,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 107,
"end": 118,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 107,
"end": 108,
"ctxt": 0
},
"value": "a",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrayExpression",
"span": {
"start": 111,
"end": 118,
"ctxt": 0
},
"elements": [
{
"spread": null,
"expression": {
"type": "NumericLiteral",
"span": {
"start": 112,
"end": 113,
"ctxt": 0
},
"value": 1.0
}
},
{
"spread": null,
"expression": {
"type": "StringLiteral",
"span": {
"start": 115,
"end": 117,
"ctxt": 0
},
"value": "",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
}
]
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 129,
"end": 147,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 133,
"end": 146,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 133,
"end": 134,
"ctxt": 0
},
"value": "b",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrayExpression",
"span": {
"start": 137,
"end": 146,
"ctxt": 0
},
"elements": [
{
"spread": null,
"expression": {
"type": "NumericLiteral",
"span": {
"start": 138,
"end": 139,
"ctxt": 0
},
"value": 1.0
}
},
{
"spread": null,
"expression": {
"type": "NullLiteral",
"span": {
"start": 141,
"end": 145,
"ctxt": 0
}
}
}
]
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 161,
"end": 183,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 165,
"end": 182,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 165,
"end": 166,
"ctxt": 0
},
"value": "c",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrayExpression",
"span": {
"start": 169,
"end": 182,
"ctxt": 0
},
"elements": [
{
"spread": null,
"expression": {
"type": "NumericLiteral",
"span": {
"start": 170,
"end": 171,
"ctxt": 0
},
"value": 1.0
}
},
{
"spread": null,
"expression": {
"type": "StringLiteral",
"span": {
"start": 173,
"end": 175,
"ctxt": 0
},
"value": "",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
},
{
"spread": null,
"expression": {
"type": "NullLiteral",
"span": {
"start": 177,
"end": 181,
"ctxt": 0
}
}
}
]
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 193,
"end": 209,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 197,
"end": 208,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 197,
"end": 198,
"ctxt": 0
},
"value": "d",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrayExpression",
"span": {
"start": 201,
"end": 208,
"ctxt": 0
},
"elements": [
{
"spread": null,
"expression": {
"type": "ObjectExpression",
"span": {
"start": 202,
"end": 204,
"ctxt": 0
},
"properties": []
}
},
{
"spread": null,
"expression": {
"type": "NumericLiteral",
"span": {
"start": 206,
"end": 207,
"ctxt": 0
},
"value": 1.0
}
}
]
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 219,
"end": 240,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 223,
"end": 239,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 223,
"end": 224,
"ctxt": 0
},
"value": "e",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrayExpression",
"span": {
"start": 227,
"end": 239,
"ctxt": 0
},
"elements": [
{
"spread": null,
"expression": {
"type": "ObjectExpression",
"span": {
"start": 228,
"end": 230,
"ctxt": 0
},
"properties": []
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 232,
"end": 238,
"ctxt": 0
},
"value": "Object",
"optional": false
}
}
]
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 252,
"end": 270,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 256,
"end": 269,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 256,
"end": 257,
"ctxt": 0
},
"value": "f",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrayExpression",
"span": {
"start": 260,
"end": 269,
"ctxt": 0
},
"elements": [
{
"spread": null,
"expression": {
"type": "ArrayExpression",
"span": {
"start": 261,
"end": 263,
"ctxt": 0
},
"elements": []
}
},
{
"spread": null,
"expression": {
"type": "ArrayExpression",
"span": {
"start": 265,
"end": 268,
"ctxt": 0
},
"elements": [
{
"spread": null,
"expression": {
"type": "NumericLiteral",
"span": {
"start": 266,
"end": 267,
"ctxt": 0
},
"value": 1.0
}
}
]
}
}
]
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 286,
"end": 306,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 290,
"end": 305,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 290,
"end": 291,
"ctxt": 0
},
"value": "g",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrayExpression",
"span": {
"start": 294,
"end": 305,
"ctxt": 0
},
"elements": [
{
"spread": null,
"expression": {
"type": "ArrayExpression",
"span": {
"start": 295,
"end": 298,
"ctxt": 0
},
"elements": [
{
"spread": null,
"expression": {
"type": "NumericLiteral",
"span": {
"start": 296,
"end": 297,
"ctxt": 0
},
"value": 1.0
}
}
]
}
},
{
"spread": null,
"expression": {
"type": "ArrayExpression",
"span": {
"start": 300,
"end": 304,
"ctxt": 0
},
"elements": [
{
"spread": null,
"expression": {
"type": "StringLiteral",
"span": {
"start": 301,
"end": 303,
"ctxt": 0
},
"value": "",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
}
]
}
}
]
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 318,
"end": 360,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 322,
"end": 359,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 322,
"end": 323,
"ctxt": 0
},
"value": "h",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrayExpression",
"span": {
"start": 326,
"end": 359,
"ctxt": 0
},
"elements": [
{
"spread": null,
"expression": {
"type": "ObjectExpression",
"span": {
"start": 327,
"end": 346,
"ctxt": 0
},
"properties": [
{
"type": "KeyValueProperty",
"key": {
"type": "Identifier",
"span": {
"start": 329,
"end": 332,
"ctxt": 0
},
"value": "foo",
"optional": false
},
"value": {
"type": "NumericLiteral",
"span": {
"start": 334,
"end": 335,
"ctxt": 0
},
"value": 1.0
}
},
{
"type": "KeyValueProperty",
"key": {
"type": "Identifier",
"span": {
"start": 337,
"end": 340,
"ctxt": 0
},
"value": "bar",
"optional": false
},
"value": {
"type": "StringLiteral",
"span": {
"start": 342,
"end": 344,
"ctxt": 0
},
"value": "",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
}
]
}
},
{
"spread": null,
"expression": {
"type": "ObjectExpression",
"span": {
"start": 348,
"end": 358,
"ctxt": 0
},
"properties": [
{
"type": "KeyValueProperty",
"key": {
"type": "Identifier",
"span": {
"start": 350,
"end": 353,
"ctxt": 0
},
"value": "foo",
"optional": false
},
"value": {
"type": "NumericLiteral",
"span": {
"start": 355,
"end": 356,
"ctxt": 0
},
"value": 2.0
}
}
]
}
}
]
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 381,
"end": 424,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 385,
"end": 423,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 385,
"end": 386,
"ctxt": 0
},
"value": "i",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrayExpression",
"span": {
"start": 389,
"end": 423,
"ctxt": 0
},
"elements": [
{
"spread": null,
"expression": {
"type": "ObjectExpression",
"span": {
"start": 390,
"end": 409,
"ctxt": 0
},
"properties": [
{
"type": "KeyValueProperty",
"key": {
"type": "Identifier",
"span": {
"start": 392,
"end": 395,
"ctxt": 0
},
"value": "foo",
"optional": false
},
"value": {
"type": "NumericLiteral",
"span": {
"start": 397,
"end": 398,
"ctxt": 0
},
"value": 1.0
}
},
{
"type": "KeyValueProperty",
"key": {
"type": "Identifier",
"span": {
"start": 400,
"end": 403,
"ctxt": 0
},
"value": "bar",
"optional": false
},
"value": {
"type": "StringLiteral",
"span": {
"start": 405,
"end": 407,
"ctxt": 0
},
"value": "",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
}
]
}
},
{
"spread": null,
"expression": {
"type": "ObjectExpression",
"span": {
"start": 411,
"end": 422,
"ctxt": 0
},
"properties": [
{
"type": "KeyValueProperty",
"key": {
"type": "Identifier",
"span": {
"start": 413,
"end": 416,
"ctxt": 0
},
"value": "foo",
"optional": false
},
"value": {
"type": "StringLiteral",
"span": {
"start": 418,
"end": 420,
"ctxt": 0
},
"value": "",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
}
]
}
}
]
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 436,
"end": 464,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 440,
"end": 463,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 440,
"end": 441,
"ctxt": 0
},
"value": "j",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrayExpression",
"span": {
"start": 444,
"end": 463,
"ctxt": 0
},
"elements": [
{
"spread": null,
"expression": {
"type": "ArrowFunctionExpression",
"span": {
"start": 445,
"end": 452,
"ctxt": 0
},
"params": [],
"body": {
"type": "NumericLiteral",
"span": {
"start": 451,
"end": 452,
"ctxt": 0
},
"value": 1.0
},
"async": false,
"generator": false,
"typeParameters": null,
"returnType": null
}
},
{
"spread": null,
"expression": {
"type": "ArrowFunctionExpression",
"span": {
"start": 454,
"end": 462,
"ctxt": 0
},
"params": [],
"body": {
"type": "StringLiteral",
"span": {
"start": 460,
"end": 462,
"ctxt": 0
},
"value": "",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
},
"async": false,
"generator": false,
"typeParameters": null,
"returnType": null
}
}
]
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 474,
"end": 501,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 478,
"end": 500,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 478,
"end": 479,
"ctxt": 0
},
"value": "k",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrayExpression",
"span": {
"start": 482,
"end": 500,
"ctxt": 0
},
"elements": [
{
"spread": null,
"expression": {
"type": "ArrowFunctionExpression",
"span": {
"start": 483,
"end": 490,
"ctxt": 0
},
"params": [],
"body": {
"type": "NumericLiteral",
"span": {
"start": 489,
"end": 490,
"ctxt": 0
},
"value": 1.0
},
"async": false,
"generator": false,
"typeParameters": null,
"returnType": null
}
},
{
"spread": null,
"expression": {
"type": "ArrowFunctionExpression",
"span": {
"start": 492,
"end": 499,
"ctxt": 0
},
"params": [],
"body": {
"type": "NumericLiteral",
"span": {
"start": 498,
"end": 499,
"ctxt": 0
},
"value": 1.0
},
"async": false,
"generator": false,
"typeParameters": null,
"returnType": null
}
}
]
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 523,
"end": 553,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 527,
"end": 552,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 527,
"end": 528,
"ctxt": 0
},
"value": "l",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrayExpression",
"span": {
"start": 531,
"end": 552,
"ctxt": 0
},
"elements": [
{
"spread": null,
"expression": {
"type": "ArrowFunctionExpression",
"span": {
"start": 532,
"end": 539,
"ctxt": 0
},
"params": [],
"body": {
"type": "NumericLiteral",
"span": {
"start": 538,
"end": 539,
"ctxt": 0
},
"value": 1.0
},
"async": false,
"generator": false,
"typeParameters": null,
"returnType": null
}
},
{
"spread": null,
"expression": {
"type": "ArrowFunctionExpression",
"span": {
"start": 541,
"end": 551,
"ctxt": 0
},
"params": [],
"body": {
"type": "NullLiteral",
"span": {
"start": 547,
"end": 551,
"ctxt": 0
}
},
"async": false,
"generator": false,
"typeParameters": null,
"returnType": null
}
}
]
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 572,
"end": 612,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 576,
"end": 611,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 576,
"end": 577,
"ctxt": 0
},
"value": "m",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrayExpression",
"span": {
"start": 580,
"end": 611,
"ctxt": 0
},
"elements": [
{
"spread": null,
"expression": {
"type": "ArrowFunctionExpression",
"span": {
"start": 581,
"end": 588,
"ctxt": 0
},
"params": [],
"body": {
"type": "NumericLiteral",
"span": {
"start": 587,
"end": 588,
"ctxt": 0
},
"value": 1.0
},
"async": false,
"generator": false,
"typeParameters": null,
"returnType": null
}
},
{
"spread": null,
"expression": {
"type": "ArrowFunctionExpression",
"span": {
"start": 590,
"end": 598,
"ctxt": 0
},
"params": [],
"body": {
"type": "StringLiteral",
"span": {
"start": 596,
"end": 598,
"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": 600,
"end": 610,
"ctxt": 0
},
"params": [],
"body": {
"type": "NullLiteral",
"span": {
"start": 606,
"end": 610,
"ctxt": 0
}
},
"async": false,
"generator": false,
"typeParameters": null,
"returnType": null
}
}
]
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 631,
"end": 663,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 635,
"end": 662,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 635,
"end": 636,
"ctxt": 0
},
"value": "n",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrayExpression",
"span": {
"start": 639,
"end": 662,
"ctxt": 0
},
"elements": [
{
"spread": null,
"expression": {
"type": "ArrayExpression",
"span": {
"start": 640,
"end": 649,
"ctxt": 0
},
"elements": [
{
"spread": null,
"expression": {
"type": "ArrowFunctionExpression",
"span": {
"start": 641,
"end": 648,
"ctxt": 0
},
"params": [],
"body": {
"type": "NumericLiteral",
"span": {
"start": 647,
"end": 648,
"ctxt": 0
},
"value": 1.0
},
"async": false,
"generator": false,
"typeParameters": null,
"returnType": null
}
}
]
}
},
{
"spread": null,
"expression": {
"type": "ArrayExpression",
"span": {
"start": 651,
"end": 661,
"ctxt": 0
},
"elements": [
{
"spread": null,
"expression": {
"type": "ArrowFunctionExpression",
"span": {
"start": 652,
"end": 660,
"ctxt": 0
},
"params": [],
"body": {
"type": "StringLiteral",
"span": {
"start": 658,
"end": 660,
"ctxt": 0
},
"value": "",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
},
"async": false,
"generator": false,
"typeParameters": null,
"returnType": null
}
}
]
}
}
]
},
"definite": false
}
]
},
{
"type": "ClassDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 681,
"end": 685,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"declare": false,
"span": {
"start": 675,
"end": 702,
"ctxt": 0
},
"decorators": [],
"body": [
{
"type": "ClassProperty",
"span": {
"start": 688,
"end": 700,
"ctxt": 0
},
"key": {
"type": "Identifier",
"span": {
"start": 688,
"end": 691,
"ctxt": 0
},
"value": "foo",
"optional": false
},
"value": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 691,
"end": 699,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 693,
"end": 699,
"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": 710,
"end": 717,
"ctxt": 0
},
"value": "Derived",
"optional": false
},
"declare": false,
"span": {
"start": 704,
"end": 747,
"ctxt": 0
},
"decorators": [],
"body": [
{
"type": "ClassProperty",
"span": {
"start": 733,
"end": 745,
"ctxt": 0
},
"key": {
"type": "Identifier",
"span": {
"start": 733,
"end": 736,
"ctxt": 0
},
"value": "bar",
"optional": false
},
"value": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 736,
"end": 744,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 738,
"end": 744,
"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": 726,
"end": 730,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"isAbstract": false,
"typeParams": null,
"superTypeParams": null,
"implements": []
},
{
"type": "ClassDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 755,
"end": 763,
"ctxt": 0
},
"value": "Derived2",
"optional": false
},
"declare": false,
"span": {
"start": 749,
"end": 793,
"ctxt": 0
},
"decorators": [],
"body": [
{
"type": "ClassProperty",
"span": {
"start": 779,
"end": 791,
"ctxt": 0
},
"key": {
"type": "Identifier",
"span": {
"start": 779,
"end": 782,
"ctxt": 0
},
"value": "baz",
"optional": false
},
"value": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 782,
"end": 790,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 784,
"end": 790,
"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": 772,
"end": 776,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"isAbstract": false,
"typeParams": null,
"superTypeParams": null,
"implements": []
},
{
"type": "VariableDeclaration",
"span": {
"start": 795,
"end": 810,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 799,
"end": 809,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 799,
"end": 803,
"ctxt": 0
},
"value": "base",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 803,
"end": 809,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 805,
"end": 809,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 805,
"end": 809,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeParams": null
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 812,
"end": 833,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 816,
"end": 832,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 816,
"end": 823,
"ctxt": 0
},
"value": "derived",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 823,
"end": 832,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 825,
"end": 832,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 825,
"end": 832,
"ctxt": 0
},
"value": "Derived",
"optional": false
},
"typeParams": null
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 835,
"end": 858,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 839,
"end": 857,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 839,
"end": 847,
"ctxt": 0
},
"value": "derived2",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 847,
"end": 857,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 849,
"end": 857,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 849,
"end": 857,
"ctxt": 0
},
"value": "Derived2",
"optional": false
},
"typeParams": null
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "TsModuleDeclaration",
"span": {
"start": 862,
"end": 1491,
"ctxt": 0
},
"declare": false,
"global": false,
"id": {
"type": "Identifier",
"span": {
"start": 869,
"end": 876,
"ctxt": 0
},
"value": "Derived",
"optional": false
},
"body": {
"type": "TsModuleBlock",
"span": {
"start": 877,
"end": 1491,
"ctxt": 0
},
"body": [
{
"type": "VariableDeclaration",
"span": {
"start": 884,
"end": 940,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 888,
"end": 939,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 888,
"end": 889,
"ctxt": 0
},
"value": "h",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrayExpression",
"span": {
"start": 892,
"end": 939,
"ctxt": 0
},
"elements": [
{
"spread": null,
"expression": {
"type": "ObjectExpression",
"span": {
"start": 893,
"end": 923,
"ctxt": 0
},
"properties": [
{
"type": "KeyValueProperty",
"key": {
"type": "Identifier",
"span": {
"start": 895,
"end": 898,
"ctxt": 0
},
"value": "foo",
"optional": false
},
"value": {
"type": "Identifier",
"span": {
"start": 900,
"end": 904,
"ctxt": 0
},
"value": "base",
"optional": false
}
},
{
"type": "KeyValueProperty",
"key": {
"type": "Identifier",
"span": {
"start": 906,
"end": 912,
"ctxt": 0
},
"value": "basear",
"optional": false
},
"value": {
"type": "Identifier",
"span": {
"start": 914,
"end": 921,
"ctxt": 0
},
"value": "derived",
"optional": false
}
}
]
}
},
{
"spread": null,
"expression": {
"type": "ObjectExpression",
"span": {
"start": 925,
"end": 938,
"ctxt": 0
},
"properties": [
{
"type": "KeyValueProperty",
"key": {
"type": "Identifier",
"span": {
"start": 927,
"end": 930,
"ctxt": 0
},
"value": "foo",
"optional": false
},
"value": {
"type": "Identifier",
"span": {
"start": 932,
"end": 936,
"ctxt": 0
},
"value": "base",
"optional": false
}
}
]
}
}
]
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 963,
"end": 1022,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 967,
"end": 1021,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 967,
"end": 968,
"ctxt": 0
},
"value": "i",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrayExpression",
"span": {
"start": 971,
"end": 1021,
"ctxt": 0
},
"elements": [
{
"spread": null,
"expression": {
"type": "ObjectExpression",
"span": {
"start": 972,
"end": 1002,
"ctxt": 0
},
"properties": [
{
"type": "KeyValueProperty",
"key": {
"type": "Identifier",
"span": {
"start": 974,
"end": 977,
"ctxt": 0
},
"value": "foo",
"optional": false
},
"value": {
"type": "Identifier",
"span": {
"start": 979,
"end": 983,
"ctxt": 0
},
"value": "base",
"optional": false
}
},
{
"type": "KeyValueProperty",
"key": {
"type": "Identifier",
"span": {
"start": 985,
"end": 991,
"ctxt": 0
},
"value": "basear",
"optional": false
},
"value": {
"type": "Identifier",
"span": {
"start": 993,
"end": 1000,
"ctxt": 0
},
"value": "derived",
"optional": false
}
}
]
}
},
{
"spread": null,
"expression": {
"type": "ObjectExpression",
"span": {
"start": 1004,
"end": 1020,
"ctxt": 0
},
"properties": [
{
"type": "KeyValueProperty",
"key": {
"type": "Identifier",
"span": {
"start": 1006,
"end": 1009,
"ctxt": 0
},
"value": "foo",
"optional": false
},
"value": {
"type": "Identifier",
"span": {
"start": 1011,
"end": 1018,
"ctxt": 0
},
"value": "derived",
"optional": false
}
}
]
}
}
]
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 1050,
"end": 1086,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 1054,
"end": 1085,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1054,
"end": 1055,
"ctxt": 0
},
"value": "j",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrayExpression",
"span": {
"start": 1058,
"end": 1085,
"ctxt": 0
},
"elements": [
{
"spread": null,
"expression": {
"type": "ArrowFunctionExpression",
"span": {
"start": 1059,
"end": 1069,
"ctxt": 0
},
"params": [],
"body": {
"type": "Identifier",
"span": {
"start": 1065,
"end": 1069,
"ctxt": 0
},
"value": "base",
"optional": false
},
"async": false,
"generator": false,
"typeParameters": null,
"returnType": null
}
},
{
"spread": null,
"expression": {
"type": "ArrowFunctionExpression",
"span": {
"start": 1071,
"end": 1084,
"ctxt": 0
},
"params": [],
"body": {
"type": "Identifier",
"span": {
"start": 1077,
"end": 1084,
"ctxt": 0
},
"value": "derived",
"optional": false
},
"async": false,
"generator": false,
"typeParameters": null,
"returnType": null
}
}
]
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 1108,
"end": 1138,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 1112,
"end": 1137,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1112,
"end": 1113,
"ctxt": 0
},
"value": "k",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrayExpression",
"span": {
"start": 1116,
"end": 1137,
"ctxt": 0
},
"elements": [
{
"spread": null,
"expression": {
"type": "ArrowFunctionExpression",
"span": {
"start": 1117,
"end": 1127,
"ctxt": 0
},
"params": [],
"body": {
"type": "Identifier",
"span": {
"start": 1123,
"end": 1127,
"ctxt": 0
},
"value": "base",
"optional": false
},
"async": false,
"generator": false,
"typeParameters": null,
"returnType": null
}
},
{
"spread": null,
"expression": {
"type": "ArrowFunctionExpression",
"span": {
"start": 1129,
"end": 1136,
"ctxt": 0
},
"params": [],
"body": {
"type": "NumericLiteral",
"span": {
"start": 1135,
"end": 1136,
"ctxt": 0
},
"value": 1.0
},
"async": false,
"generator": false,
"typeParameters": null,
"returnType": null
}
}
]
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 1153,
"end": 1186,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 1157,
"end": 1185,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1157,
"end": 1158,
"ctxt": 0
},
"value": "l",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrayExpression",
"span": {
"start": 1161,
"end": 1185,
"ctxt": 0
},
"elements": [
{
"spread": null,
"expression": {
"type": "ArrowFunctionExpression",
"span": {
"start": 1162,
"end": 1172,
"ctxt": 0
},
"params": [],
"body": {
"type": "Identifier",
"span": {
"start": 1168,
"end": 1172,
"ctxt": 0
},
"value": "base",
"optional": false
},
"async": false,
"generator": false,
"typeParameters": null,
"returnType": null
}
},
{
"spread": null,
"expression": {
"type": "ArrowFunctionExpression",
"span": {
"start": 1174,
"end": 1184,
"ctxt": 0
},
"params": [],
"body": {
"type": "NullLiteral",
"span": {
"start": 1180,
"end": 1184,
"ctxt": 0
}
},
"async": false,
"generator": false,
"typeParameters": null,
"returnType": null
}
}
]
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 1209,
"end": 1257,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 1213,
"end": 1256,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1213,
"end": 1214,
"ctxt": 0
},
"value": "m",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrayExpression",
"span": {
"start": 1217,
"end": 1256,
"ctxt": 0
},
"elements": [
{
"spread": null,
"expression": {
"type": "ArrowFunctionExpression",
"span": {
"start": 1218,
"end": 1228,
"ctxt": 0
},
"params": [],
"body": {
"type": "Identifier",
"span": {
"start": 1224,
"end": 1228,
"ctxt": 0
},
"value": "base",
"optional": false
},
"async": false,
"generator": false,
"typeParameters": null,
"returnType": null
}
},
{
"spread": null,
"expression": {
"type": "ArrowFunctionExpression",
"span": {
"start": 1230,
"end": 1243,
"ctxt": 0
},
"params": [],
"body": {
"type": "Identifier",
"span": {
"start": 1236,
"end": 1243,
"ctxt": 0
},
"value": "derived",
"optional": false
},
"async": false,
"generator": false,
"typeParameters": null,
"returnType": null
}
},
{
"spread": null,
"expression": {
"type": "ArrowFunctionExpression",
"span": {
"start": 1245,
"end": 1255,
"ctxt": 0
},
"params": [],
"body": {
"type": "NullLiteral",
"span": {
"start": 1251,
"end": 1255,
"ctxt": 0
}
},
"async": false,
"generator": false,
"typeParameters": null,
"returnType": null
}
}
]
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 1280,
"end": 1320,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 1284,
"end": 1319,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1284,
"end": 1285,
"ctxt": 0
},
"value": "n",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrayExpression",
"span": {
"start": 1288,
"end": 1319,
"ctxt": 0
},
"elements": [
{
"spread": null,
"expression": {
"type": "ArrayExpression",
"span": {
"start": 1289,
"end": 1301,
"ctxt": 0
},
"elements": [
{
"spread": null,
"expression": {
"type": "ArrowFunctionExpression",
"span": {
"start": 1290,
"end": 1300,
"ctxt": 0
},
"params": [],
"body": {
"type": "Identifier",
"span": {
"start": 1296,
"end": 1300,
"ctxt": 0
},
"value": "base",
"optional": false
},
"async": false,
"generator": false,
"typeParameters": null,
"returnType": null
}
}
]
}
},
{
"spread": null,
"expression": {
"type": "ArrayExpression",
"span": {
"start": 1303,
"end": 1318,
"ctxt": 0
},
"elements": [
{
"spread": null,
"expression": {
"type": "ArrowFunctionExpression",
"span": {
"start": 1304,
"end": 1317,
"ctxt": 0
},
"params": [],
"body": {
"type": "Identifier",
"span": {
"start": 1310,
"end": 1317,
"ctxt": 0
},
"value": "derived",
"optional": false
},
"async": false,
"generator": false,
"typeParameters": null,
"returnType": null
}
}
]
}
}
]
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 1344,
"end": 1372,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 1348,
"end": 1371,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1348,
"end": 1349,
"ctxt": 0
},
"value": "o",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrayExpression",
"span": {
"start": 1352,
"end": 1371,
"ctxt": 0
},
"elements": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 1353,
"end": 1360,
"ctxt": 0
},
"value": "derived",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 1362,
"end": 1370,
"ctxt": 0
},
"value": "derived2",
"optional": false
}
}
]
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 1386,
"end": 1420,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 1390,
"end": 1419,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1390,
"end": 1391,
"ctxt": 0
},
"value": "p",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrayExpression",
"span": {
"start": 1394,
"end": 1419,
"ctxt": 0
},
"elements": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 1395,
"end": 1402,
"ctxt": 0
},
"value": "derived",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 1404,
"end": 1412,
"ctxt": 0
},
"value": "derived2",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 1414,
"end": 1418,
"ctxt": 0
},
"value": "base",
"optional": false
}
}
]
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 1436,
"end": 1480,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 1440,
"end": 1479,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1440,
"end": 1441,
"ctxt": 0
},
"value": "q",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrayExpression",
"span": {
"start": 1444,
"end": 1479,
"ctxt": 0
},
"elements": [
{
"spread": null,
"expression": {
"type": "ArrayExpression",
"span": {
"start": 1445,
"end": 1461,
"ctxt": 0
},
"elements": [
{
"spread": null,
"expression": {
"type": "ArrowFunctionExpression",
"span": {
"start": 1446,
"end": 1460,
"ctxt": 0
},
"params": [],
"body": {
"type": "Identifier",
"span": {
"start": 1452,
"end": 1460,
"ctxt": 0
},
"value": "derived2",
"optional": false
},
"async": false,
"generator": false,
"typeParameters": null,
"returnType": null
}
}
]
}
},
{
"spread": null,
"expression": {
"type": "ArrayExpression",
"span": {
"start": 1463,
"end": 1478,
"ctxt": 0
},
"elements": [
{
"spread": null,
"expression": {
"type": "ArrowFunctionExpression",
"span": {
"start": 1464,
"end": 1477,
"ctxt": 0
},
"params": [],
"body": {
"type": "Identifier",
"span": {
"start": 1470,
"end": 1477,
"ctxt": 0
},
"value": "derived",
"optional": false
},
"async": false,
"generator": false,
"typeParameters": null,
"returnType": null
}
}
]
}
}
]
},
"definite": false
}
]
}
]
}
},
{
"type": "TsModuleDeclaration",
"span": {
"start": 1495,
"end": 1707,
"ctxt": 0
},
"declare": false,
"global": false,
"id": {
"type": "Identifier",
"span": {
"start": 1502,
"end": 1520,
"ctxt": 0
},
"value": "WithContextualType",
"optional": false
},
"body": {
"type": "TsModuleBlock",
"span": {
"start": 1521,
"end": 1707,
"ctxt": 0
},
"body": [
{
"type": "VariableDeclaration",
"span": {
"start": 1546,
"end": 1582,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 1550,
"end": 1581,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1550,
"end": 1551,
"ctxt": 0
},
"value": "a",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1551,
"end": 1559,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsArrayType",
"span": {
"start": 1553,
"end": 1559,
"ctxt": 0
},
"elemType": {
"type": "TsTypeReference",
"span": {
"start": 1553,
"end": 1557,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1553,
"end": 1557,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeParams": null
}
}
}
},
"init": {
"type": "ArrayExpression",
"span": {
"start": 1562,
"end": 1581,
"ctxt": 0
},
"elements": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 1563,
"end": 1570,
"ctxt": 0
},
"value": "derived",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 1572,
"end": 1580,
"ctxt": 0
},
"value": "derived2",
"optional": false
}
}
]
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 1588,
"end": 1614,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 1592,
"end": 1613,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1592,
"end": 1593,
"ctxt": 0
},
"value": "b",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1593,
"end": 1604,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsArrayType",
"span": {
"start": 1595,
"end": 1604,
"ctxt": 0
},
"elemType": {
"type": "TsTypeReference",
"span": {
"start": 1595,
"end": 1602,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1595,
"end": 1602,
"ctxt": 0
},
"value": "Derived",
"optional": false
},
"typeParams": null
}
}
}
},
"init": {
"type": "ArrayExpression",
"span": {
"start": 1607,
"end": 1613,
"ctxt": 0
},
"elements": [
{
"spread": null,
"expression": {
"type": "NullLiteral",
"span": {
"start": 1608,
"end": 1612,
"ctxt": 0
}
}
}
]
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 1620,
"end": 1642,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 1624,
"end": 1641,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1624,
"end": 1625,
"ctxt": 0
},
"value": "c",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1625,
"end": 1636,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsArrayType",
"span": {
"start": 1627,
"end": 1636,
"ctxt": 0
},
"elemType": {
"type": "TsTypeReference",
"span": {
"start": 1627,
"end": 1634,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1627,
"end": 1634,
"ctxt": 0
},
"value": "Derived",
"optional": false
},
"typeParams": null
}
}
}
},
"init": {
"type": "ArrayExpression",
"span": {
"start": 1639,
"end": 1641,
"ctxt": 0
},
"elements": []
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 1648,
"end": 1704,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 1652,
"end": 1703,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1652,
"end": 1653,
"ctxt": 0
},
"value": "d",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1653,
"end": 1669,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsArrayType",
"span": {
"start": 1655,
"end": 1669,
"ctxt": 0
},
"elemType": {
"type": "TsTypeLiteral",
"span": {
"start": 1655,
"end": 1667,
"ctxt": 0
},
"members": [
{
"type": "TsCallSignatureDeclaration",
"span": {
"start": 1657,
"end": 1665,
"ctxt": 0
},
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1659,
"end": 1665,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1661,
"end": 1665,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1661,
"end": 1665,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeParams": null
}
},
"typeParams": null
}
]
}
}
}
},
"init": {
"type": "ArrayExpression",
"span": {
"start": 1672,
"end": 1703,
"ctxt": 0
},
"elements": [
{
"spread": null,
"expression": {
"type": "ArrowFunctionExpression",
"span": {
"start": 1673,
"end": 1686,
"ctxt": 0
},
"params": [],
"body": {
"type": "Identifier",
"span": {
"start": 1679,
"end": 1686,
"ctxt": 0
},
"value": "derived",
"optional": false
},
"async": false,
"generator": false,
"typeParameters": null,
"returnType": null
}
},
{
"spread": null,
"expression": {
"type": "ArrowFunctionExpression",
"span": {
"start": 1688,
"end": 1702,
"ctxt": 0
},
"params": [],
"body": {
"type": "Identifier",
"span": {
"start": 1694,
"end": 1702,
"ctxt": 0
},
"value": "derived2",
"optional": false
},
"async": false,
"generator": false,
"typeParameters": null,
"returnType": null
}
}
]
},
"definite": false
}
]
}
]
}
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 1720,
"end": 1723,
"ctxt": 0
},
"value": "foo",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 1730,
"end": 1734,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 1730,
"end": 1734,
"ctxt": 0
},
"value": "t",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1731,
"end": 1734,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1733,
"end": 1734,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1733,
"end": 1734,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 1736,
"end": 1740,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 1736,
"end": 1740,
"ctxt": 0
},
"value": "u",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1737,
"end": 1740,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1739,
"end": 1740,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1739,
"end": 1740,
"ctxt": 0
},
"value": "U",
"optional": false
},
"typeParams": null
}
}
}
}
],
"decorators": [],
"span": {
"start": 1711,
"end": 1966,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 1742,
"end": 1966,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 1749,
"end": 1764,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 1753,
"end": 1763,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1753,
"end": 1754,
"ctxt": 0
},
"value": "a",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrayExpression",
"span": {
"start": 1757,
"end": 1763,
"ctxt": 0
},
"elements": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 1758,
"end": 1759,
"ctxt": 0
},
"value": "t",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 1761,
"end": 1762,
"ctxt": 0
},
"value": "t",
"optional": false
}
}
]
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 1777,
"end": 1795,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 1781,
"end": 1794,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1781,
"end": 1782,
"ctxt": 0
},
"value": "b",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrayExpression",
"span": {
"start": 1785,
"end": 1794,
"ctxt": 0
},
"elements": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 1786,
"end": 1787,
"ctxt": 0
},
"value": "t",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "NullLiteral",
"span": {
"start": 1789,
"end": 1793,
"ctxt": 0
}
}
}
]
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 1808,
"end": 1823,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 1812,
"end": 1822,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1812,
"end": 1813,
"ctxt": 0
},
"value": "c",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrayExpression",
"span": {
"start": 1816,
"end": 1822,
"ctxt": 0
},
"elements": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 1817,
"end": 1818,
"ctxt": 0
},
"value": "t",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 1820,
"end": 1821,
"ctxt": 0
},
"value": "u",
"optional": false
}
}
]
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 1837,
"end": 1852,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 1841,
"end": 1851,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1841,
"end": 1842,
"ctxt": 0
},
"value": "d",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrayExpression",
"span": {
"start": 1845,
"end": 1851,
"ctxt": 0
},
"elements": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 1846,
"end": 1847,
"ctxt": 0
},
"value": "t",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "NumericLiteral",
"span": {
"start": 1849,
"end": 1850,
"ctxt": 0
},
"value": 1.0
}
}
]
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 1866,
"end": 1893,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 1870,
"end": 1892,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1870,
"end": 1871,
"ctxt": 0
},
"value": "e",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrayExpression",
"span": {
"start": 1874,
"end": 1892,
"ctxt": 0
},
"elements": [
{
"spread": null,
"expression": {
"type": "ArrowFunctionExpression",
"span": {
"start": 1875,
"end": 1882,
"ctxt": 0
},
"params": [],
"body": {
"type": "Identifier",
"span": {
"start": 1881,
"end": 1882,
"ctxt": 0
},
"value": "t",
"optional": false
},
"async": false,
"generator": false,
"typeParameters": null,
"returnType": null
}
},
{
"spread": null,
"expression": {
"type": "ArrowFunctionExpression",
"span": {
"start": 1884,
"end": 1891,
"ctxt": 0
},
"params": [],
"body": {
"type": "Identifier",
"span": {
"start": 1890,
"end": 1891,
"ctxt": 0
},
"value": "u",
"optional": false
},
"async": false,
"generator": false,
"typeParameters": null,
"returnType": null
}
}
]
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 1907,
"end": 1946,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 1911,
"end": 1945,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1911,
"end": 1912,
"ctxt": 0
},
"value": "f",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrayExpression",
"span": {
"start": 1915,
"end": 1945,
"ctxt": 0
},
"elements": [
{
"spread": null,
"expression": {
"type": "ArrowFunctionExpression",
"span": {
"start": 1916,
"end": 1923,
"ctxt": 0
},
"params": [],
"body": {
"type": "Identifier",
"span": {
"start": 1922,
"end": 1923,
"ctxt": 0
},
"value": "t",
"optional": false
},
"async": false,
"generator": false,
"typeParameters": null,
"returnType": null
}
},
{
"spread": null,
"expression": {
"type": "ArrowFunctionExpression",
"span": {
"start": 1925,
"end": 1932,
"ctxt": 0
},
"params": [],
"body": {
"type": "Identifier",
"span": {
"start": 1931,
"end": 1932,
"ctxt": 0
},
"value": "u",
"optional": false
},
"async": false,
"generator": false,
"typeParameters": null,
"returnType": null
}
},
{
"spread": null,
"expression": {
"type": "ArrowFunctionExpression",
"span": {
"start": 1934,
"end": 1944,
"ctxt": 0
},
"params": [],
"body": {
"type": "NullLiteral",
"span": {
"start": 1940,
"end": 1944,
"ctxt": 0
}
},
"async": false,
"generator": false,
"typeParameters": null,
"returnType": null
}
}
]
},
"definite": false
}
]
}
]
},
"generator": false,
"async": false,
"typeParameters": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 1723,
"end": 1729,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 1724,
"end": 1725,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 1724,
"end": 1725,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": null,
"default": null
},
{
"type": "TsTypeParameter",
"span": {
"start": 1727,
"end": 1728,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 1727,
"end": 1728,
"ctxt": 0
},
"value": "U",
"optional": false
},
"constraint": null,
"default": null
}
]
},
"returnType": null
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 1979,
"end": 1983,
"ctxt": 0
},
"value": "foo2",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 2019,
"end": 2023,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 2019,
"end": 2023,
"ctxt": 0
},
"value": "t",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2020,
"end": 2023,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2022,
"end": 2023,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2022,
"end": 2023,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 2025,
"end": 2029,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 2025,
"end": 2029,
"ctxt": 0
},
"value": "u",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2026,
"end": 2029,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2028,
"end": 2029,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2028,
"end": 2029,
"ctxt": 0
},
"value": "U",
"optional": false
},
"typeParams": null
}
}
}
}
],
"decorators": [],
"span": {
"start": 1970,
"end": 2405,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 2031,
"end": 2405,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 2038,
"end": 2053,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 2042,
"end": 2052,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2042,
"end": 2043,
"ctxt": 0
},
"value": "a",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrayExpression",
"span": {
"start": 2046,
"end": 2052,
"ctxt": 0
},
"elements": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 2047,
"end": 2048,
"ctxt": 0
},
"value": "t",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 2050,
"end": 2051,
"ctxt": 0
},
"value": "t",
"optional": false
}
}
]
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 2066,
"end": 2084,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 2070,
"end": 2083,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2070,
"end": 2071,
"ctxt": 0
},
"value": "b",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrayExpression",
"span": {
"start": 2074,
"end": 2083,
"ctxt": 0
},
"elements": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 2075,
"end": 2076,
"ctxt": 0
},
"value": "t",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "NullLiteral",
"span": {
"start": 2078,
"end": 2082,
"ctxt": 0
}
}
}
]
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 2097,
"end": 2112,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 2101,
"end": 2111,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2101,
"end": 2102,
"ctxt": 0
},
"value": "c",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrayExpression",
"span": {
"start": 2105,
"end": 2111,
"ctxt": 0
},
"elements": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 2106,
"end": 2107,
"ctxt": 0
},
"value": "t",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 2109,
"end": 2110,
"ctxt": 0
},
"value": "u",
"optional": false
}
}
]
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 2126,
"end": 2141,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 2130,
"end": 2140,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2130,
"end": 2131,
"ctxt": 0
},
"value": "d",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrayExpression",
"span": {
"start": 2134,
"end": 2140,
"ctxt": 0
},
"elements": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 2135,
"end": 2136,
"ctxt": 0
},
"value": "t",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "NumericLiteral",
"span": {
"start": 2138,
"end": 2139,
"ctxt": 0
},
"value": 1.0
}
}
]
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 2155,
"end": 2182,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 2159,
"end": 2181,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2159,
"end": 2160,
"ctxt": 0
},
"value": "e",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrayExpression",
"span": {
"start": 2163,
"end": 2181,
"ctxt": 0
},
"elements": [
{
"spread": null,
"expression": {
"type": "ArrowFunctionExpression",
"span": {
"start": 2164,
"end": 2171,
"ctxt": 0
},
"params": [],
"body": {
"type": "Identifier",
"span": {
"start": 2170,
"end": 2171,
"ctxt": 0
},
"value": "t",
"optional": false
},
"async": false,
"generator": false,
"typeParameters": null,
"returnType": null
}
},
{
"spread": null,
"expression": {
"type": "ArrowFunctionExpression",
"span": {
"start": 2173,
"end": 2180,
"ctxt": 0
},
"params": [],
"body": {
"type": "Identifier",
"span": {
"start": 2179,
"end": 2180,
"ctxt": 0
},
"value": "u",
"optional": false
},
"async": false,
"generator": false,
"typeParameters": null,
"returnType": null
}
}
]
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 2196,
"end": 2235,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 2200,
"end": 2234,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2200,
"end": 2201,
"ctxt": 0
},
"value": "f",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrayExpression",
"span": {
"start": 2204,
"end": 2234,
"ctxt": 0
},
"elements": [
{
"spread": null,
"expression": {
"type": "ArrowFunctionExpression",
"span": {
"start": 2205,
"end": 2212,
"ctxt": 0
},
"params": [],
"body": {
"type": "Identifier",
"span": {
"start": 2211,
"end": 2212,
"ctxt": 0
},
"value": "t",
"optional": false
},
"async": false,
"generator": false,
"typeParameters": null,
"returnType": null
}
},
{
"spread": null,
"expression": {
"type": "ArrowFunctionExpression",
"span": {
"start": 2214,
"end": 2221,
"ctxt": 0
},
"params": [],
"body": {
"type": "Identifier",
"span": {
"start": 2220,
"end": 2221,
"ctxt": 0
},
"value": "u",
"optional": false
},
"async": false,
"generator": false,
"typeParameters": null,
"returnType": null
}
},
{
"spread": null,
"expression": {
"type": "ArrowFunctionExpression",
"span": {
"start": 2223,
"end": 2233,
"ctxt": 0
},
"params": [],
"body": {
"type": "NullLiteral",
"span": {
"start": 2229,
"end": 2233,
"ctxt": 0
}
},
"async": false,
"generator": false,
"typeParameters": null,
"returnType": null
}
}
]
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 2260,
"end": 2278,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 2264,
"end": 2277,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2264,
"end": 2265,
"ctxt": 0
},
"value": "g",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrayExpression",
"span": {
"start": 2268,
"end": 2277,
"ctxt": 0
},
"elements": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 2269,
"end": 2270,
"ctxt": 0
},
"value": "t",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 2272,
"end": 2276,
"ctxt": 0
},
"value": "base",
"optional": false
}
}
]
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 2294,
"end": 2315,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 2298,
"end": 2314,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2298,
"end": 2299,
"ctxt": 0
},
"value": "h",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrayExpression",
"span": {
"start": 2302,
"end": 2314,
"ctxt": 0
},
"elements": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 2303,
"end": 2304,
"ctxt": 0
},
"value": "t",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 2306,
"end": 2313,
"ctxt": 0
},
"value": "derived",
"optional": false
}
}
]
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 2334,
"end": 2352,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 2338,
"end": 2351,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2338,
"end": 2339,
"ctxt": 0
},
"value": "i",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrayExpression",
"span": {
"start": 2342,
"end": 2351,
"ctxt": 0
},
"elements": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 2343,
"end": 2344,
"ctxt": 0
},
"value": "u",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 2346,
"end": 2350,
"ctxt": 0
},
"value": "base",
"optional": false
}
}
]
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 2368,
"end": 2389,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 2372,
"end": 2388,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2372,
"end": 2373,
"ctxt": 0
},
"value": "j",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrayExpression",
"span": {
"start": 2376,
"end": 2388,
"ctxt": 0
},
"elements": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 2377,
"end": 2378,
"ctxt": 0
},
"value": "u",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 2380,
"end": 2387,
"ctxt": 0
},
"value": "derived",
"optional": false
}
}
]
},
"definite": false
}
]
}
]
},
"generator": false,
"async": false,
"typeParameters": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 1983,
"end": 2018,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 1984,
"end": 1998,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 1984,
"end": 1985,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": {
"type": "TsTypeReference",
"span": {
"start": 1994,
"end": 1998,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1994,
"end": 1998,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeParams": null
},
"default": null
},
{
"type": "TsTypeParameter",
"span": {
"start": 2000,
"end": 2017,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2000,
"end": 2001,
"ctxt": 0
},
"value": "U",
"optional": false
},
"constraint": {
"type": "TsTypeReference",
"span": {
"start": 2010,
"end": 2017,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2010,
"end": 2017,
"ctxt": 0
},
"value": "Derived",
"optional": false
},
"typeParams": null
},
"default": null
}
]
},
"returnType": null
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 2418,
"end": 2422,
"ctxt": 0
},
"value": "foo3",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 2461,
"end": 2465,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 2461,
"end": 2465,
"ctxt": 0
},
"value": "t",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2462,
"end": 2465,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2464,
"end": 2465,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2464,
"end": 2465,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 2467,
"end": 2471,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 2467,
"end": 2471,
"ctxt": 0
},
"value": "u",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2468,
"end": 2471,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2470,
"end": 2471,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2470,
"end": 2471,
"ctxt": 0
},
"value": "U",
"optional": false
},
"typeParams": null
}
}
}
}
],
"decorators": [],
"span": {
"start": 2409,
"end": 2847,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 2473,
"end": 2847,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 2480,
"end": 2495,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 2484,
"end": 2494,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2484,
"end": 2485,
"ctxt": 0
},
"value": "a",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrayExpression",
"span": {
"start": 2488,
"end": 2494,
"ctxt": 0
},
"elements": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 2489,
"end": 2490,
"ctxt": 0
},
"value": "t",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 2492,
"end": 2493,
"ctxt": 0
},
"value": "t",
"optional": false
}
}
]
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 2508,
"end": 2526,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 2512,
"end": 2525,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2512,
"end": 2513,
"ctxt": 0
},
"value": "b",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrayExpression",
"span": {
"start": 2516,
"end": 2525,
"ctxt": 0
},
"elements": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 2517,
"end": 2518,
"ctxt": 0
},
"value": "t",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "NullLiteral",
"span": {
"start": 2520,
"end": 2524,
"ctxt": 0
}
}
}
]
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 2539,
"end": 2554,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 2543,
"end": 2553,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2543,
"end": 2544,
"ctxt": 0
},
"value": "c",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrayExpression",
"span": {
"start": 2547,
"end": 2553,
"ctxt": 0
},
"elements": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 2548,
"end": 2549,
"ctxt": 0
},
"value": "t",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 2551,
"end": 2552,
"ctxt": 0
},
"value": "u",
"optional": false
}
}
]
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 2568,
"end": 2583,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 2572,
"end": 2582,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2572,
"end": 2573,
"ctxt": 0
},
"value": "d",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrayExpression",
"span": {
"start": 2576,
"end": 2582,
"ctxt": 0
},
"elements": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 2577,
"end": 2578,
"ctxt": 0
},
"value": "t",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "NumericLiteral",
"span": {
"start": 2580,
"end": 2581,
"ctxt": 0
},
"value": 1.0
}
}
]
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 2597,
"end": 2624,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 2601,
"end": 2623,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2601,
"end": 2602,
"ctxt": 0
},
"value": "e",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrayExpression",
"span": {
"start": 2605,
"end": 2623,
"ctxt": 0
},
"elements": [
{
"spread": null,
"expression": {
"type": "ArrowFunctionExpression",
"span": {
"start": 2606,
"end": 2613,
"ctxt": 0
},
"params": [],
"body": {
"type": "Identifier",
"span": {
"start": 2612,
"end": 2613,
"ctxt": 0
},
"value": "t",
"optional": false
},
"async": false,
"generator": false,
"typeParameters": null,
"returnType": null
}
},
{
"spread": null,
"expression": {
"type": "ArrowFunctionExpression",
"span": {
"start": 2615,
"end": 2622,
"ctxt": 0
},
"params": [],
"body": {
"type": "Identifier",
"span": {
"start": 2621,
"end": 2622,
"ctxt": 0
},
"value": "u",
"optional": false
},
"async": false,
"generator": false,
"typeParameters": null,
"returnType": null
}
}
]
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 2638,
"end": 2677,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 2642,
"end": 2676,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2642,
"end": 2643,
"ctxt": 0
},
"value": "f",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrayExpression",
"span": {
"start": 2646,
"end": 2676,
"ctxt": 0
},
"elements": [
{
"spread": null,
"expression": {
"type": "ArrowFunctionExpression",
"span": {
"start": 2647,
"end": 2654,
"ctxt": 0
},
"params": [],
"body": {
"type": "Identifier",
"span": {
"start": 2653,
"end": 2654,
"ctxt": 0
},
"value": "t",
"optional": false
},
"async": false,
"generator": false,
"typeParameters": null,
"returnType": null
}
},
{
"spread": null,
"expression": {
"type": "ArrowFunctionExpression",
"span": {
"start": 2656,
"end": 2663,
"ctxt": 0
},
"params": [],
"body": {
"type": "Identifier",
"span": {
"start": 2662,
"end": 2663,
"ctxt": 0
},
"value": "u",
"optional": false
},
"async": false,
"generator": false,
"typeParameters": null,
"returnType": null
}
},
{
"spread": null,
"expression": {
"type": "ArrowFunctionExpression",
"span": {
"start": 2665,
"end": 2675,
"ctxt": 0
},
"params": [],
"body": {
"type": "NullLiteral",
"span": {
"start": 2671,
"end": 2675,
"ctxt": 0
}
},
"async": false,
"generator": false,
"typeParameters": null,
"returnType": null
}
}
]
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 2702,
"end": 2720,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 2706,
"end": 2719,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2706,
"end": 2707,
"ctxt": 0
},
"value": "g",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrayExpression",
"span": {
"start": 2710,
"end": 2719,
"ctxt": 0
},
"elements": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 2711,
"end": 2712,
"ctxt": 0
},
"value": "t",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 2714,
"end": 2718,
"ctxt": 0
},
"value": "base",
"optional": false
}
}
]
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 2736,
"end": 2757,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 2740,
"end": 2756,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2740,
"end": 2741,
"ctxt": 0
},
"value": "h",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrayExpression",
"span": {
"start": 2744,
"end": 2756,
"ctxt": 0
},
"elements": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 2745,
"end": 2746,
"ctxt": 0
},
"value": "t",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 2748,
"end": 2755,
"ctxt": 0
},
"value": "derived",
"optional": false
}
}
]
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 2776,
"end": 2794,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 2780,
"end": 2793,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2780,
"end": 2781,
"ctxt": 0
},
"value": "i",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrayExpression",
"span": {
"start": 2784,
"end": 2793,
"ctxt": 0
},
"elements": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 2785,
"end": 2786,
"ctxt": 0
},
"value": "u",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 2788,
"end": 2792,
"ctxt": 0
},
"value": "base",
"optional": false
}
}
]
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 2810,
"end": 2831,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 2814,
"end": 2830,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2814,
"end": 2815,
"ctxt": 0
},
"value": "j",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrayExpression",
"span": {
"start": 2818,
"end": 2830,
"ctxt": 0
},
"elements": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 2819,
"end": 2820,
"ctxt": 0
},
"value": "u",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 2822,
"end": 2829,
"ctxt": 0
},
"value": "derived",
"optional": false
}
}
]
},
"definite": false
}
]
}
]
},
"generator": false,
"async": false,
"typeParameters": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 2422,
"end": 2460,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 2423,
"end": 2440,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2423,
"end": 2424,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": {
"type": "TsTypeReference",
"span": {
"start": 2433,
"end": 2440,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2433,
"end": 2440,
"ctxt": 0
},
"value": "Derived",
"optional": false
},
"typeParams": null
},
"default": null
},
{
"type": "TsTypeParameter",
"span": {
"start": 2442,
"end": 2459,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2442,
"end": 2443,
"ctxt": 0
},
"value": "U",
"optional": false
},
"constraint": {
"type": "TsTypeReference",
"span": {
"start": 2452,
"end": 2459,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2452,
"end": 2459,
"ctxt": 0
},
"value": "Derived",
"optional": false
},
"typeParams": null
},
"default": null
}
]
},
"returnType": null
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 2860,
"end": 2864,
"ctxt": 0
},
"value": "foo4",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 2897,
"end": 2901,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 2897,
"end": 2901,
"ctxt": 0
},
"value": "t",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2898,
"end": 2901,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2900,
"end": 2901,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2900,
"end": 2901,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 2903,
"end": 2907,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 2903,
"end": 2907,
"ctxt": 0
},
"value": "u",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2904,
"end": 2907,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2906,
"end": 2907,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2906,
"end": 2907,
"ctxt": 0
},
"value": "U",
"optional": false
},
"typeParams": null
}
}
}
}
],
"decorators": [],
"span": {
"start": 2851,
"end": 3320,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 2909,
"end": 3320,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 2916,
"end": 2931,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 2920,
"end": 2930,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2920,
"end": 2921,
"ctxt": 0
},
"value": "a",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrayExpression",
"span": {
"start": 2924,
"end": 2930,
"ctxt": 0
},
"elements": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 2925,
"end": 2926,
"ctxt": 0
},
"value": "t",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 2928,
"end": 2929,
"ctxt": 0
},
"value": "t",
"optional": false
}
}
]
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 2944,
"end": 2962,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 2948,
"end": 2961,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2948,
"end": 2949,
"ctxt": 0
},
"value": "b",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrayExpression",
"span": {
"start": 2952,
"end": 2961,
"ctxt": 0
},
"elements": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 2953,
"end": 2954,
"ctxt": 0
},
"value": "t",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "NullLiteral",
"span": {
"start": 2956,
"end": 2960,
"ctxt": 0
}
}
}
]
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 2975,
"end": 2990,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 2979,
"end": 2989,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2979,
"end": 2980,
"ctxt": 0
},
"value": "c",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrayExpression",
"span": {
"start": 2983,
"end": 2989,
"ctxt": 0
},
"elements": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 2984,
"end": 2985,
"ctxt": 0
},
"value": "t",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 2987,
"end": 2988,
"ctxt": 0
},
"value": "u",
"optional": false
}
}
]
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 3010,
"end": 3025,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 3014,
"end": 3024,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3014,
"end": 3015,
"ctxt": 0
},
"value": "d",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrayExpression",
"span": {
"start": 3018,
"end": 3024,
"ctxt": 0
},
"elements": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 3019,
"end": 3020,
"ctxt": 0
},
"value": "t",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "NumericLiteral",
"span": {
"start": 3022,
"end": 3023,
"ctxt": 0
},
"value": 1.0
}
}
]
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 3039,
"end": 3066,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 3043,
"end": 3065,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3043,
"end": 3044,
"ctxt": 0
},
"value": "e",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrayExpression",
"span": {
"start": 3047,
"end": 3065,
"ctxt": 0
},
"elements": [
{
"spread": null,
"expression": {
"type": "ArrowFunctionExpression",
"span": {
"start": 3048,
"end": 3055,
"ctxt": 0
},
"params": [],
"body": {
"type": "Identifier",
"span": {
"start": 3054,
"end": 3055,
"ctxt": 0
},
"value": "t",
"optional": false
},
"async": false,
"generator": false,
"typeParameters": null,
"returnType": null
}
},
{
"spread": null,
"expression": {
"type": "ArrowFunctionExpression",
"span": {
"start": 3057,
"end": 3064,
"ctxt": 0
},
"params": [],
"body": {
"type": "Identifier",
"span": {
"start": 3063,
"end": 3064,
"ctxt": 0
},
"value": "u",
"optional": false
},
"async": false,
"generator": false,
"typeParameters": null,
"returnType": null
}
}
]
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 3080,
"end": 3119,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 3084,
"end": 3118,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3084,
"end": 3085,
"ctxt": 0
},
"value": "f",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrayExpression",
"span": {
"start": 3088,
"end": 3118,
"ctxt": 0
},
"elements": [
{
"spread": null,
"expression": {
"type": "ArrowFunctionExpression",
"span": {
"start": 3089,
"end": 3096,
"ctxt": 0
},
"params": [],
"body": {
"type": "Identifier",
"span": {
"start": 3095,
"end": 3096,
"ctxt": 0
},
"value": "t",
"optional": false
},
"async": false,
"generator": false,
"typeParameters": null,
"returnType": null
}
},
{
"spread": null,
"expression": {
"type": "ArrowFunctionExpression",
"span": {
"start": 3098,
"end": 3105,
"ctxt": 0
},
"params": [],
"body": {
"type": "Identifier",
"span": {
"start": 3104,
"end": 3105,
"ctxt": 0
},
"value": "u",
"optional": false
},
"async": false,
"generator": false,
"typeParameters": null,
"returnType": null
}
},
{
"spread": null,
"expression": {
"type": "ArrowFunctionExpression",
"span": {
"start": 3107,
"end": 3117,
"ctxt": 0
},
"params": [],
"body": {
"type": "NullLiteral",
"span": {
"start": 3113,
"end": 3117,
"ctxt": 0
}
},
"async": false,
"generator": false,
"typeParameters": null,
"returnType": null
}
}
]
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 3144,
"end": 3162,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 3148,
"end": 3161,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3148,
"end": 3149,
"ctxt": 0
},
"value": "g",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrayExpression",
"span": {
"start": 3152,
"end": 3161,
"ctxt": 0
},
"elements": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 3153,
"end": 3154,
"ctxt": 0
},
"value": "t",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 3156,
"end": 3160,
"ctxt": 0
},
"value": "base",
"optional": false
}
}
]
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 3178,
"end": 3199,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 3182,
"end": 3198,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3182,
"end": 3183,
"ctxt": 0
},
"value": "h",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrayExpression",
"span": {
"start": 3186,
"end": 3198,
"ctxt": 0
},
"elements": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 3187,
"end": 3188,
"ctxt": 0
},
"value": "t",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 3190,
"end": 3197,
"ctxt": 0
},
"value": "derived",
"optional": false
}
}
]
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 3218,
"end": 3236,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 3222,
"end": 3235,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3222,
"end": 3223,
"ctxt": 0
},
"value": "i",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrayExpression",
"span": {
"start": 3226,
"end": 3235,
"ctxt": 0
},
"elements": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 3227,
"end": 3228,
"ctxt": 0
},
"value": "u",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 3230,
"end": 3234,
"ctxt": 0
},
"value": "base",
"optional": false
}
}
]
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 3252,
"end": 3273,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 3256,
"end": 3272,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3256,
"end": 3257,
"ctxt": 0
},
"value": "j",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ArrayExpression",
"span": {
"start": 3260,
"end": 3272,
"ctxt": 0
},
"elements": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 3261,
"end": 3262,
"ctxt": 0
},
"value": "u",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 3264,
"end": 3271,
"ctxt": 0
},
"value": "derived",
"optional": false
}
}
]
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 3294,
"end": 3317,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 3298,
"end": 3316,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3298,
"end": 3299,
"ctxt": 0
},
"value": "k",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3299,
"end": 3307,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsArrayType",
"span": {
"start": 3301,
"end": 3307,
"ctxt": 0
},
"elemType": {
"type": "TsTypeReference",
"span": {
"start": 3301,
"end": 3305,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3301,
"end": 3305,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeParams": null
}
}
}
},
"init": {
"type": "ArrayExpression",
"span": {
"start": 3310,
"end": 3316,
"ctxt": 0
},
"elements": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 3311,
"end": 3312,
"ctxt": 0
},
"value": "t",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 3314,
"end": 3315,
"ctxt": 0
},
"value": "u",
"optional": false
}
}
]
},
"definite": false
}
]
}
]
},
"generator": false,
"async": false,
"typeParameters": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 2864,
"end": 2896,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 2865,
"end": 2879,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2865,
"end": 2866,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": {
"type": "TsTypeReference",
"span": {
"start": 2875,
"end": 2879,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2875,
"end": 2879,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeParams": null
},
"default": null
},
{
"type": "TsTypeParameter",
"span": {
"start": 2881,
"end": 2895,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2881,
"end": 2882,
"ctxt": 0
},
"value": "U",
"optional": false
},
"constraint": {
"type": "TsTypeReference",
"span": {
"start": 2891,
"end": 2895,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2891,
"end": 2895,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeParams": null
},
"default": null
}
]
},
"returnType": null
}
],
"interpreter": null
}