swc/crates/swc_ecma_parser/tests/tsc/assignmentCompatWithConstructSignatures3.json
2022-02-04 20:17:42 +09:00

9735 lines
307 KiB
JSON

{
"type": "Script",
"span": {
"start": 92,
"end": 3167,
"ctxt": 0
},
"body": [
{
"type": "ClassDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 98,
"end": 102,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"declare": false,
"span": {
"start": 92,
"end": 119,
"ctxt": 0
},
"decorators": [],
"body": [
{
"type": "ClassProperty",
"span": {
"start": 105,
"end": 117,
"ctxt": 0
},
"key": {
"type": "Identifier",
"span": {
"start": 105,
"end": 108,
"ctxt": 0
},
"value": "foo",
"optional": false
},
"value": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 108,
"end": 116,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 110,
"end": 116,
"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": 126,
"end": 133,
"ctxt": 0
},
"value": "Derived",
"optional": false
},
"declare": false,
"span": {
"start": 120,
"end": 163,
"ctxt": 0
},
"decorators": [],
"body": [
{
"type": "ClassProperty",
"span": {
"start": 149,
"end": 161,
"ctxt": 0
},
"key": {
"type": "Identifier",
"span": {
"start": 149,
"end": 152,
"ctxt": 0
},
"value": "bar",
"optional": false
},
"value": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 152,
"end": 160,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 154,
"end": 160,
"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": 142,
"end": 146,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"isAbstract": false,
"typeParams": null,
"superTypeParams": null,
"implements": []
},
{
"type": "ClassDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 170,
"end": 178,
"ctxt": 0
},
"value": "Derived2",
"optional": false
},
"declare": false,
"span": {
"start": 164,
"end": 211,
"ctxt": 0
},
"decorators": [],
"body": [
{
"type": "ClassProperty",
"span": {
"start": 197,
"end": 209,
"ctxt": 0
},
"key": {
"type": "Identifier",
"span": {
"start": 197,
"end": 200,
"ctxt": 0
},
"value": "baz",
"optional": false
},
"value": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 200,
"end": 208,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 202,
"end": 208,
"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": 187,
"end": 194,
"ctxt": 0
},
"value": "Derived",
"optional": false
},
"isAbstract": false,
"typeParams": null,
"superTypeParams": null,
"implements": []
},
{
"type": "ClassDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 218,
"end": 230,
"ctxt": 0
},
"value": "OtherDerived",
"optional": false
},
"declare": false,
"span": {
"start": 212,
"end": 261,
"ctxt": 0
},
"decorators": [],
"body": [
{
"type": "ClassProperty",
"span": {
"start": 246,
"end": 259,
"ctxt": 0
},
"key": {
"type": "Identifier",
"span": {
"start": 246,
"end": 250,
"ctxt": 0
},
"value": "bing",
"optional": false
},
"value": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 250,
"end": 258,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 252,
"end": 258,
"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": 239,
"end": 243,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"isAbstract": false,
"typeParams": null,
"superTypeParams": null,
"implements": []
},
{
"type": "VariableDeclaration",
"span": {
"start": 263,
"end": 298,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 267,
"end": 297,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 267,
"end": 268,
"ctxt": 0
},
"value": "a",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 268,
"end": 297,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 270,
"end": 297,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 275,
"end": 284,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 276,
"end": 284,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 278,
"end": 284,
"ctxt": 0
},
"kind": "number"
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 286,
"end": 297,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsArrayType",
"span": {
"start": 289,
"end": 297,
"ctxt": 0
},
"elemType": {
"type": "TsKeywordType",
"span": {
"start": 289,
"end": 295,
"ctxt": 0
},
"kind": "number"
}
}
},
"isAbstract": false
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 299,
"end": 335,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 303,
"end": 334,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 303,
"end": 305,
"ctxt": 0
},
"value": "a2",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 305,
"end": 334,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 307,
"end": 334,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 312,
"end": 321,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 313,
"end": 321,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 315,
"end": 321,
"ctxt": 0
},
"kind": "number"
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 323,
"end": 334,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsArrayType",
"span": {
"start": 326,
"end": 334,
"ctxt": 0
},
"elemType": {
"type": "TsKeywordType",
"span": {
"start": 326,
"end": 332,
"ctxt": 0
},
"kind": "string"
}
}
},
"isAbstract": false
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 336,
"end": 368,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 340,
"end": 367,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 340,
"end": 342,
"ctxt": 0
},
"value": "a3",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 342,
"end": 367,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 344,
"end": 367,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 349,
"end": 358,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 350,
"end": 358,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 352,
"end": 358,
"ctxt": 0
},
"kind": "number"
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 360,
"end": 367,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 363,
"end": 367,
"ctxt": 0
},
"kind": "void"
}
},
"isAbstract": false
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 369,
"end": 414,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 373,
"end": 413,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 373,
"end": 375,
"ctxt": 0
},
"value": "a4",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 375,
"end": 413,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 377,
"end": 413,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 382,
"end": 391,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 383,
"end": 391,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 385,
"end": 391,
"ctxt": 0
},
"kind": "string"
}
}
},
{
"type": "Identifier",
"span": {
"start": 393,
"end": 402,
"ctxt": 0
},
"value": "y",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 394,
"end": 402,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 396,
"end": 402,
"ctxt": 0
},
"kind": "number"
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 404,
"end": 413,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 407,
"end": 413,
"ctxt": 0
},
"kind": "string"
}
},
"isAbstract": false
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 415,
"end": 466,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 419,
"end": 465,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 419,
"end": 421,
"ctxt": 0
},
"value": "a5",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 421,
"end": 465,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 423,
"end": 465,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 428,
"end": 454,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 429,
"end": 454,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 431,
"end": 454,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 432,
"end": 443,
"ctxt": 0
},
"value": "arg",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 435,
"end": 443,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 437,
"end": 443,
"ctxt": 0
},
"kind": "string"
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 445,
"end": 454,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 448,
"end": 454,
"ctxt": 0
},
"kind": "number"
}
}
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 456,
"end": 465,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 459,
"end": 465,
"ctxt": 0
},
"kind": "string"
}
},
"isAbstract": false
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 467,
"end": 515,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 471,
"end": 514,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 471,
"end": 473,
"ctxt": 0
},
"value": "a6",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 473,
"end": 514,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 475,
"end": 514,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 480,
"end": 505,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 481,
"end": 505,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 483,
"end": 505,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 484,
"end": 493,
"ctxt": 0
},
"value": "arg",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 487,
"end": 493,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 489,
"end": 493,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 489,
"end": 493,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 495,
"end": 505,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 498,
"end": 505,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 498,
"end": 505,
"ctxt": 0
},
"value": "Derived",
"optional": false
},
"typeParams": null
}
}
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 507,
"end": 514,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 510,
"end": 514,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 510,
"end": 514,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 516,
"end": 580,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 520,
"end": 579,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 520,
"end": 522,
"ctxt": 0
},
"value": "a7",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 522,
"end": 579,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 524,
"end": 579,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 529,
"end": 554,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 530,
"end": 554,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 532,
"end": 554,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 533,
"end": 542,
"ctxt": 0
},
"value": "arg",
"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": 554,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 547,
"end": 554,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 547,
"end": 554,
"ctxt": 0
},
"value": "Derived",
"optional": false
},
"typeParams": null
}
}
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 556,
"end": 579,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 559,
"end": 579,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 560,
"end": 567,
"ctxt": 0
},
"value": "r",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 561,
"end": 567,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 563,
"end": 567,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 563,
"end": 567,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 569,
"end": 579,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 572,
"end": 579,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 572,
"end": 579,
"ctxt": 0
},
"value": "Derived",
"optional": false
},
"typeParams": null
}
}
}
},
"isAbstract": false
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 581,
"end": 673,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 585,
"end": 672,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 585,
"end": 587,
"ctxt": 0
},
"value": "a8",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 587,
"end": 672,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 589,
"end": 672,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 594,
"end": 619,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 595,
"end": 619,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 597,
"end": 619,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 598,
"end": 607,
"ctxt": 0
},
"value": "arg",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 601,
"end": 607,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 603,
"end": 607,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 603,
"end": 607,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 609,
"end": 619,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 612,
"end": 619,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 612,
"end": 619,
"ctxt": 0
},
"value": "Derived",
"optional": false
},
"typeParams": null
}
}
}
}
},
{
"type": "Identifier",
"span": {
"start": 621,
"end": 647,
"ctxt": 0
},
"value": "y",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 622,
"end": 647,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 624,
"end": 647,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 625,
"end": 635,
"ctxt": 0
},
"value": "arg2",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 629,
"end": 635,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 631,
"end": 635,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 631,
"end": 635,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 637,
"end": 647,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 640,
"end": 647,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 640,
"end": 647,
"ctxt": 0
},
"value": "Derived",
"optional": false
},
"typeParams": null
}
}
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 649,
"end": 672,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 652,
"end": 672,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 653,
"end": 660,
"ctxt": 0
},
"value": "r",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 654,
"end": 660,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 656,
"end": 660,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 656,
"end": 660,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 662,
"end": 672,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 665,
"end": 672,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 665,
"end": 672,
"ctxt": 0
},
"value": "Derived",
"optional": false
},
"typeParams": null
}
}
}
},
"isAbstract": false
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 674,
"end": 766,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 678,
"end": 765,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 678,
"end": 680,
"ctxt": 0
},
"value": "a9",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 680,
"end": 765,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 682,
"end": 765,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 687,
"end": 712,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 688,
"end": 712,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 690,
"end": 712,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 691,
"end": 700,
"ctxt": 0
},
"value": "arg",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 694,
"end": 700,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 696,
"end": 700,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 696,
"end": 700,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 702,
"end": 712,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 705,
"end": 712,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 705,
"end": 712,
"ctxt": 0
},
"value": "Derived",
"optional": false
},
"typeParams": null
}
}
}
}
},
{
"type": "Identifier",
"span": {
"start": 714,
"end": 740,
"ctxt": 0
},
"value": "y",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 715,
"end": 740,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 717,
"end": 740,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 718,
"end": 728,
"ctxt": 0
},
"value": "arg2",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 722,
"end": 728,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 724,
"end": 728,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 724,
"end": 728,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 730,
"end": 740,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 733,
"end": 740,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 733,
"end": 740,
"ctxt": 0
},
"value": "Derived",
"optional": false
},
"typeParams": null
}
}
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 742,
"end": 765,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 745,
"end": 765,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 746,
"end": 753,
"ctxt": 0
},
"value": "r",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 747,
"end": 753,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 749,
"end": 753,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 749,
"end": 753,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 755,
"end": 765,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 758,
"end": 765,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 758,
"end": 765,
"ctxt": 0
},
"value": "Derived",
"optional": false
},
"typeParams": null
}
}
}
},
"isAbstract": false
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 767,
"end": 809,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 771,
"end": 808,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 771,
"end": 774,
"ctxt": 0
},
"value": "a10",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 774,
"end": 808,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 776,
"end": 808,
"ctxt": 0
},
"params": [
{
"type": "RestElement",
"span": {
"start": 781,
"end": 796,
"ctxt": 0
},
"rest": {
"start": 781,
"end": 784,
"ctxt": 0
},
"argument": {
"type": "Identifier",
"span": {
"start": 784,
"end": 785,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": null
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 785,
"end": 796,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsArrayType",
"span": {
"start": 787,
"end": 796,
"ctxt": 0
},
"elemType": {
"type": "TsTypeReference",
"span": {
"start": 787,
"end": 794,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 787,
"end": 794,
"ctxt": 0
},
"value": "Derived",
"optional": false
},
"typeParams": null
}
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 798,
"end": 808,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 801,
"end": 808,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 801,
"end": 808,
"ctxt": 0
},
"value": "Derived",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 810,
"end": 885,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 814,
"end": 884,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 814,
"end": 817,
"ctxt": 0
},
"value": "a11",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 817,
"end": 884,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 819,
"end": 884,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 824,
"end": 842,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 825,
"end": 842,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeLiteral",
"span": {
"start": 827,
"end": 842,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 829,
"end": 840,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 829,
"end": 832,
"ctxt": 0
},
"value": "foo",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 832,
"end": 840,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 834,
"end": 840,
"ctxt": 0
},
"kind": "string"
}
},
"typeParams": null
}
]
}
}
},
{
"type": "Identifier",
"span": {
"start": 844,
"end": 875,
"ctxt": 0
},
"value": "y",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 845,
"end": 875,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeLiteral",
"span": {
"start": 847,
"end": 875,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 849,
"end": 861,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 849,
"end": 852,
"ctxt": 0
},
"value": "foo",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 852,
"end": 860,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 854,
"end": 860,
"ctxt": 0
},
"kind": "string"
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 862,
"end": 873,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 862,
"end": 865,
"ctxt": 0
},
"value": "bar",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 865,
"end": 873,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 867,
"end": 873,
"ctxt": 0
},
"kind": "string"
}
},
"typeParams": null
}
]
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 877,
"end": 884,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 880,
"end": 884,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 880,
"end": 884,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 886,
"end": 954,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 890,
"end": 953,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 890,
"end": 893,
"ctxt": 0
},
"value": "a12",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 893,
"end": 953,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 895,
"end": 953,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 900,
"end": 914,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 901,
"end": 914,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 903,
"end": 914,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 903,
"end": 908,
"ctxt": 0
},
"value": "Array",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 908,
"end": 914,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 909,
"end": 913,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 909,
"end": 913,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeParams": null
}
]
}
}
}
},
{
"type": "Identifier",
"span": {
"start": 916,
"end": 934,
"ctxt": 0
},
"value": "y",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 917,
"end": 934,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 919,
"end": 934,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 919,
"end": 924,
"ctxt": 0
},
"value": "Array",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 924,
"end": 934,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 925,
"end": 933,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 925,
"end": 933,
"ctxt": 0
},
"value": "Derived2",
"optional": false
},
"typeParams": null
}
]
}
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 936,
"end": 953,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 939,
"end": 953,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 939,
"end": 944,
"ctxt": 0
},
"value": "Array",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 944,
"end": 953,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 945,
"end": 952,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 945,
"end": 952,
"ctxt": 0
},
"value": "Derived",
"optional": false
},
"typeParams": null
}
]
}
}
},
"isAbstract": false
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 955,
"end": 1022,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 959,
"end": 1021,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 959,
"end": 962,
"ctxt": 0
},
"value": "a13",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 962,
"end": 1021,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 964,
"end": 1021,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 969,
"end": 983,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 970,
"end": 983,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 972,
"end": 983,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 972,
"end": 977,
"ctxt": 0
},
"value": "Array",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 977,
"end": 983,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 978,
"end": 982,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 978,
"end": 982,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeParams": null
}
]
}
}
}
},
{
"type": "Identifier",
"span": {
"start": 985,
"end": 1002,
"ctxt": 0
},
"value": "y",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 986,
"end": 1002,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 988,
"end": 1002,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 988,
"end": 993,
"ctxt": 0
},
"value": "Array",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 993,
"end": 1002,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 994,
"end": 1001,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 994,
"end": 1001,
"ctxt": 0
},
"value": "Derived",
"optional": false
},
"typeParams": null
}
]
}
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1004,
"end": 1021,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1007,
"end": 1021,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1007,
"end": 1012,
"ctxt": 0
},
"value": "Array",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 1012,
"end": 1021,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 1013,
"end": 1020,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1013,
"end": 1020,
"ctxt": 0
},
"value": "Derived",
"optional": false
},
"typeParams": null
}
]
}
}
},
"isAbstract": false
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 1023,
"end": 1076,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 1027,
"end": 1075,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1027,
"end": 1030,
"ctxt": 0
},
"value": "a14",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1030,
"end": 1075,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 1032,
"end": 1075,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 1037,
"end": 1064,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1038,
"end": 1064,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeLiteral",
"span": {
"start": 1040,
"end": 1064,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 1042,
"end": 1052,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 1042,
"end": 1043,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1043,
"end": 1051,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 1045,
"end": 1051,
"ctxt": 0
},
"kind": "string"
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 1053,
"end": 1062,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 1053,
"end": 1054,
"ctxt": 0
},
"value": "b",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1054,
"end": 1062,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 1056,
"end": 1062,
"ctxt": 0
},
"kind": "number"
}
},
"typeParams": null
}
]
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1066,
"end": 1075,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1069,
"end": 1075,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1069,
"end": 1075,
"ctxt": 0
},
"value": "Object",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 1077,
"end": 1151,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 1081,
"end": 1151,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1081,
"end": 1084,
"ctxt": 0
},
"value": "a15",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1084,
"end": 1151,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeLiteral",
"span": {
"start": 1086,
"end": 1151,
"ctxt": 0
},
"members": [
{
"type": "TsConstructSignatureDeclaration",
"span": {
"start": 1092,
"end": 1118,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 1097,
"end": 1106,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1098,
"end": 1106,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 1100,
"end": 1106,
"ctxt": 0
},
"kind": "number"
}
}
}
],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1107,
"end": 1117,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsArrayType",
"span": {
"start": 1109,
"end": 1117,
"ctxt": 0
},
"elemType": {
"type": "TsKeywordType",
"span": {
"start": 1109,
"end": 1115,
"ctxt": 0
},
"kind": "number"
}
}
},
"typeParams": null
},
{
"type": "TsConstructSignatureDeclaration",
"span": {
"start": 1123,
"end": 1149,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 1128,
"end": 1137,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1129,
"end": 1137,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 1131,
"end": 1137,
"ctxt": 0
},
"kind": "string"
}
}
}
],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1138,
"end": 1148,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsArrayType",
"span": {
"start": 1140,
"end": 1148,
"ctxt": 0
},
"elemType": {
"type": "TsKeywordType",
"span": {
"start": 1140,
"end": 1146,
"ctxt": 0
},
"kind": "string"
}
}
},
"typeParams": null
}
]
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 1152,
"end": 1251,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 1156,
"end": 1251,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1156,
"end": 1159,
"ctxt": 0
},
"value": "a16",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1159,
"end": 1251,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeLiteral",
"span": {
"start": 1161,
"end": 1251,
"ctxt": 0
},
"members": [
{
"type": "TsConstructSignatureDeclaration",
"span": {
"start": 1167,
"end": 1207,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 1191,
"end": 1195,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1192,
"end": 1195,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1194,
"end": 1195,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1194,
"end": 1195,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1196,
"end": 1206,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsArrayType",
"span": {
"start": 1198,
"end": 1206,
"ctxt": 0
},
"elemType": {
"type": "TsKeywordType",
"span": {
"start": 1198,
"end": 1204,
"ctxt": 0
},
"kind": "number"
}
}
},
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 1171,
"end": 1190,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 1172,
"end": 1189,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 1172,
"end": 1173,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": {
"type": "TsTypeReference",
"span": {
"start": 1182,
"end": 1189,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1182,
"end": 1189,
"ctxt": 0
},
"value": "Derived",
"optional": false
},
"typeParams": null
},
"default": null
}
]
}
},
{
"type": "TsConstructSignatureDeclaration",
"span": {
"start": 1212,
"end": 1249,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 1233,
"end": 1237,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1234,
"end": 1237,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1236,
"end": 1237,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1236,
"end": 1237,
"ctxt": 0
},
"value": "U",
"optional": false
},
"typeParams": null
}
}
}
],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1238,
"end": 1248,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsArrayType",
"span": {
"start": 1240,
"end": 1248,
"ctxt": 0
},
"elemType": {
"type": "TsKeywordType",
"span": {
"start": 1240,
"end": 1246,
"ctxt": 0
},
"kind": "number"
}
}
},
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 1216,
"end": 1232,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 1217,
"end": 1231,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 1217,
"end": 1218,
"ctxt": 0
},
"value": "U",
"optional": false
},
"constraint": {
"type": "TsTypeReference",
"span": {
"start": 1227,
"end": 1231,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1227,
"end": 1231,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeParams": null
},
"default": null
}
]
}
}
]
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 1252,
"end": 1365,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 1256,
"end": 1364,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1256,
"end": 1259,
"ctxt": 0
},
"value": "a17",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1259,
"end": 1364,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeLiteral",
"span": {
"start": 1261,
"end": 1364,
"ctxt": 0
},
"members": [
{
"type": "TsConstructSignatureDeclaration",
"span": {
"start": 1267,
"end": 1312,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 1272,
"end": 1300,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1273,
"end": 1300,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 1275,
"end": 1300,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 1280,
"end": 1289,
"ctxt": 0
},
"value": "a",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1281,
"end": 1289,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 1283,
"end": 1289,
"ctxt": 0
},
"kind": "number"
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1291,
"end": 1300,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 1294,
"end": 1300,
"ctxt": 0
},
"kind": "number"
}
},
"isAbstract": false
}
}
}
],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1301,
"end": 1311,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsArrayType",
"span": {
"start": 1303,
"end": 1311,
"ctxt": 0
},
"elemType": {
"type": "TsKeywordType",
"span": {
"start": 1303,
"end": 1309,
"ctxt": 0
},
"kind": "number"
}
}
},
"typeParams": null
},
{
"type": "TsConstructSignatureDeclaration",
"span": {
"start": 1317,
"end": 1362,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 1322,
"end": 1350,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1323,
"end": 1350,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 1325,
"end": 1350,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 1330,
"end": 1339,
"ctxt": 0
},
"value": "a",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1331,
"end": 1339,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 1333,
"end": 1339,
"ctxt": 0
},
"kind": "string"
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1341,
"end": 1350,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 1344,
"end": 1350,
"ctxt": 0
},
"kind": "string"
}
},
"isAbstract": false
}
}
}
],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1351,
"end": 1361,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsArrayType",
"span": {
"start": 1353,
"end": 1361,
"ctxt": 0
},
"elemType": {
"type": "TsKeywordType",
"span": {
"start": 1353,
"end": 1359,
"ctxt": 0
},
"kind": "string"
}
}
},
"typeParams": null
}
]
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 1366,
"end": 1566,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 1370,
"end": 1566,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1370,
"end": 1373,
"ctxt": 0
},
"value": "a18",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1373,
"end": 1566,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeLiteral",
"span": {
"start": 1375,
"end": 1566,
"ctxt": 0
},
"members": [
{
"type": "TsConstructSignatureDeclaration",
"span": {
"start": 1381,
"end": 1471,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 1386,
"end": 1462,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1387,
"end": 1462,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeLiteral",
"span": {
"start": 1389,
"end": 1462,
"ctxt": 0
},
"members": [
{
"type": "TsConstructSignatureDeclaration",
"span": {
"start": 1399,
"end": 1423,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 1404,
"end": 1413,
"ctxt": 0
},
"value": "a",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1405,
"end": 1413,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 1407,
"end": 1413,
"ctxt": 0
},
"kind": "number"
}
}
}
],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1414,
"end": 1422,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 1416,
"end": 1422,
"ctxt": 0
},
"kind": "number"
}
},
"typeParams": null
},
{
"type": "TsConstructSignatureDeclaration",
"span": {
"start": 1432,
"end": 1456,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 1437,
"end": 1446,
"ctxt": 0
},
"value": "a",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1438,
"end": 1446,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 1440,
"end": 1446,
"ctxt": 0
},
"kind": "string"
}
}
}
],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1447,
"end": 1455,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 1449,
"end": 1455,
"ctxt": 0
},
"kind": "string"
}
},
"typeParams": null
}
]
}
}
}
],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1463,
"end": 1470,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsArrayType",
"span": {
"start": 1465,
"end": 1470,
"ctxt": 0
},
"elemType": {
"type": "TsKeywordType",
"span": {
"start": 1465,
"end": 1468,
"ctxt": 0
},
"kind": "any"
}
}
},
"typeParams": null
},
{
"type": "TsConstructSignatureDeclaration",
"span": {
"start": 1476,
"end": 1564,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 1481,
"end": 1555,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1482,
"end": 1555,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeLiteral",
"span": {
"start": 1484,
"end": 1555,
"ctxt": 0
},
"members": [
{
"type": "TsConstructSignatureDeclaration",
"span": {
"start": 1494,
"end": 1520,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 1499,
"end": 1509,
"ctxt": 0
},
"value": "a",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1500,
"end": 1509,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 1502,
"end": 1509,
"ctxt": 0
},
"kind": "boolean"
}
}
}
],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1510,
"end": 1519,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 1512,
"end": 1519,
"ctxt": 0
},
"kind": "boolean"
}
},
"typeParams": null
},
{
"type": "TsConstructSignatureDeclaration",
"span": {
"start": 1529,
"end": 1549,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 1534,
"end": 1541,
"ctxt": 0
},
"value": "a",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1535,
"end": 1541,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1537,
"end": 1541,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1537,
"end": 1541,
"ctxt": 0
},
"value": "Date",
"optional": false
},
"typeParams": null
}
}
}
],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1542,
"end": 1548,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1544,
"end": 1548,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1544,
"end": 1548,
"ctxt": 0
},
"value": "Date",
"optional": false
},
"typeParams": null
}
},
"typeParams": null
}
]
}
}
}
],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1556,
"end": 1563,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsArrayType",
"span": {
"start": 1558,
"end": 1563,
"ctxt": 0
},
"elemType": {
"type": "TsKeywordType",
"span": {
"start": 1558,
"end": 1561,
"ctxt": 0
},
"kind": "any"
}
}
},
"typeParams": null
}
]
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 1568,
"end": 1596,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 1572,
"end": 1595,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1572,
"end": 1573,
"ctxt": 0
},
"value": "b",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1573,
"end": 1595,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 1575,
"end": 1595,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 1583,
"end": 1587,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1584,
"end": 1587,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1586,
"end": 1587,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1586,
"end": 1587,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 1579,
"end": 1582,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 1580,
"end": 1581,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 1580,
"end": 1581,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1589,
"end": 1595,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsArrayType",
"span": {
"start": 1592,
"end": 1595,
"ctxt": 0
},
"elemType": {
"type": "TsTypeReference",
"span": {
"start": 1592,
"end": 1593,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1592,
"end": 1593,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
"isAbstract": false
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "ExpressionStatement",
"span": {
"start": 1598,
"end": 1604,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 1598,
"end": 1603,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 1598,
"end": 1599,
"ctxt": 0
},
"value": "a",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 1602,
"end": 1603,
"ctxt": 0
},
"value": "b",
"optional": false
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 1611,
"end": 1617,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 1611,
"end": 1616,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 1611,
"end": 1612,
"ctxt": 0
},
"value": "b",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 1615,
"end": 1616,
"ctxt": 0
},
"value": "a",
"optional": false
}
}
},
{
"type": "VariableDeclaration",
"span": {
"start": 1624,
"end": 1658,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 1628,
"end": 1657,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1628,
"end": 1630,
"ctxt": 0
},
"value": "b2",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1630,
"end": 1657,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 1632,
"end": 1657,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 1640,
"end": 1644,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1641,
"end": 1644,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1643,
"end": 1644,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1643,
"end": 1644,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 1636,
"end": 1639,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 1637,
"end": 1638,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 1637,
"end": 1638,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1646,
"end": 1657,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsArrayType",
"span": {
"start": 1649,
"end": 1657,
"ctxt": 0
},
"elemType": {
"type": "TsKeywordType",
"span": {
"start": 1649,
"end": 1655,
"ctxt": 0
},
"kind": "string"
}
}
},
"isAbstract": false
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "ExpressionStatement",
"span": {
"start": 1660,
"end": 1668,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 1660,
"end": 1667,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 1660,
"end": 1662,
"ctxt": 0
},
"value": "a2",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 1665,
"end": 1667,
"ctxt": 0
},
"value": "b2",
"optional": false
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 1676,
"end": 1684,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 1676,
"end": 1683,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 1676,
"end": 1678,
"ctxt": 0
},
"value": "b2",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 1681,
"end": 1683,
"ctxt": 0
},
"value": "a2",
"optional": false
}
}
},
{
"type": "VariableDeclaration",
"span": {
"start": 1691,
"end": 1718,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 1695,
"end": 1717,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1695,
"end": 1697,
"ctxt": 0
},
"value": "b3",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1697,
"end": 1717,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 1699,
"end": 1717,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 1707,
"end": 1711,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1708,
"end": 1711,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1710,
"end": 1711,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1710,
"end": 1711,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 1703,
"end": 1706,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 1704,
"end": 1705,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 1704,
"end": 1705,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1713,
"end": 1717,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1716,
"end": 1717,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1716,
"end": 1717,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "ExpressionStatement",
"span": {
"start": 1720,
"end": 1728,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 1720,
"end": 1727,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 1720,
"end": 1722,
"ctxt": 0
},
"value": "a3",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 1725,
"end": 1727,
"ctxt": 0
},
"value": "b3",
"optional": false
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 1735,
"end": 1743,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 1735,
"end": 1742,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 1735,
"end": 1737,
"ctxt": 0
},
"value": "b3",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 1740,
"end": 1742,
"ctxt": 0
},
"value": "a3",
"optional": false
}
}
},
{
"type": "VariableDeclaration",
"span": {
"start": 1750,
"end": 1786,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 1754,
"end": 1785,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1754,
"end": 1756,
"ctxt": 0
},
"value": "b4",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1756,
"end": 1785,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 1758,
"end": 1785,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 1769,
"end": 1773,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1770,
"end": 1773,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1772,
"end": 1773,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1772,
"end": 1773,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 1775,
"end": 1779,
"ctxt": 0
},
"value": "y",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1776,
"end": 1779,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1778,
"end": 1779,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1778,
"end": 1779,
"ctxt": 0
},
"value": "U",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 1762,
"end": 1768,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 1763,
"end": 1764,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 1763,
"end": 1764,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": null,
"default": null
},
{
"type": "TsTypeParameter",
"span": {
"start": 1766,
"end": 1767,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 1766,
"end": 1767,
"ctxt": 0
},
"value": "U",
"optional": false
},
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1781,
"end": 1785,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1784,
"end": 1785,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1784,
"end": 1785,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "ExpressionStatement",
"span": {
"start": 1788,
"end": 1796,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 1788,
"end": 1795,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 1788,
"end": 1790,
"ctxt": 0
},
"value": "a4",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 1793,
"end": 1795,
"ctxt": 0
},
"value": "b4",
"optional": false
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 1803,
"end": 1811,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 1803,
"end": 1810,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 1803,
"end": 1805,
"ctxt": 0
},
"value": "b4",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 1808,
"end": 1810,
"ctxt": 0
},
"value": "a4",
"optional": false
}
}
},
{
"type": "VariableDeclaration",
"span": {
"start": 1818,
"end": 1860,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 1822,
"end": 1859,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1822,
"end": 1824,
"ctxt": 0
},
"value": "b5",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1824,
"end": 1859,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 1826,
"end": 1859,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 1837,
"end": 1853,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1838,
"end": 1853,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 1840,
"end": 1853,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 1841,
"end": 1847,
"ctxt": 0
},
"value": "arg",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1844,
"end": 1847,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1846,
"end": 1847,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1846,
"end": 1847,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1849,
"end": 1853,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1852,
"end": 1853,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1852,
"end": 1853,
"ctxt": 0
},
"value": "U",
"optional": false
},
"typeParams": null
}
}
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 1830,
"end": 1836,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 1831,
"end": 1832,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 1831,
"end": 1832,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": null,
"default": null
},
{
"type": "TsTypeParameter",
"span": {
"start": 1834,
"end": 1835,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 1834,
"end": 1835,
"ctxt": 0
},
"value": "U",
"optional": false
},
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1855,
"end": 1859,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1858,
"end": 1859,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1858,
"end": 1859,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "ExpressionStatement",
"span": {
"start": 1862,
"end": 1870,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 1862,
"end": 1869,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 1862,
"end": 1864,
"ctxt": 0
},
"value": "a5",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 1867,
"end": 1869,
"ctxt": 0
},
"value": "b5",
"optional": false
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 1877,
"end": 1885,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 1877,
"end": 1884,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 1877,
"end": 1879,
"ctxt": 0
},
"value": "b5",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 1882,
"end": 1884,
"ctxt": 0
},
"value": "a5",
"optional": false
}
}
},
{
"type": "VariableDeclaration",
"span": {
"start": 1892,
"end": 1963,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 1896,
"end": 1962,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1896,
"end": 1898,
"ctxt": 0
},
"value": "b6",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1898,
"end": 1962,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 1900,
"end": 1962,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 1940,
"end": 1956,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1941,
"end": 1956,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 1943,
"end": 1956,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 1944,
"end": 1950,
"ctxt": 0
},
"value": "arg",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1947,
"end": 1950,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1949,
"end": 1950,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1949,
"end": 1950,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1952,
"end": 1956,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1955,
"end": 1956,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1955,
"end": 1956,
"ctxt": 0
},
"value": "U",
"optional": false
},
"typeParams": null
}
}
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 1904,
"end": 1939,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 1905,
"end": 1919,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 1905,
"end": 1906,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": {
"type": "TsTypeReference",
"span": {
"start": 1915,
"end": 1919,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1915,
"end": 1919,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeParams": null
},
"default": null
},
{
"type": "TsTypeParameter",
"span": {
"start": 1921,
"end": 1938,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 1921,
"end": 1922,
"ctxt": 0
},
"value": "U",
"optional": false
},
"constraint": {
"type": "TsTypeReference",
"span": {
"start": 1931,
"end": 1938,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1931,
"end": 1938,
"ctxt": 0
},
"value": "Derived",
"optional": false
},
"typeParams": null
},
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1958,
"end": 1962,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1961,
"end": 1962,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1961,
"end": 1962,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "ExpressionStatement",
"span": {
"start": 1965,
"end": 1973,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 1965,
"end": 1972,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 1965,
"end": 1967,
"ctxt": 0
},
"value": "a6",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 1970,
"end": 1972,
"ctxt": 0
},
"value": "b6",
"optional": false
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 1980,
"end": 1988,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 1980,
"end": 1987,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 1980,
"end": 1982,
"ctxt": 0
},
"value": "b6",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 1985,
"end": 1987,
"ctxt": 0
},
"value": "a6",
"optional": false
}
}
},
{
"type": "VariableDeclaration",
"span": {
"start": 1995,
"end": 2076,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 1999,
"end": 2075,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1999,
"end": 2001,
"ctxt": 0
},
"value": "b7",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2001,
"end": 2075,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 2003,
"end": 2075,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 2043,
"end": 2059,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2044,
"end": 2059,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 2046,
"end": 2059,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 2047,
"end": 2053,
"ctxt": 0
},
"value": "arg",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2050,
"end": 2053,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2052,
"end": 2053,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2052,
"end": 2053,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2055,
"end": 2059,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2058,
"end": 2059,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2058,
"end": 2059,
"ctxt": 0
},
"value": "U",
"optional": false
},
"typeParams": null
}
}
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 2007,
"end": 2042,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 2008,
"end": 2022,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2008,
"end": 2009,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": {
"type": "TsTypeReference",
"span": {
"start": 2018,
"end": 2022,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2018,
"end": 2022,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeParams": null
},
"default": null
},
{
"type": "TsTypeParameter",
"span": {
"start": 2024,
"end": 2041,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2024,
"end": 2025,
"ctxt": 0
},
"value": "U",
"optional": false
},
"constraint": {
"type": "TsTypeReference",
"span": {
"start": 2034,
"end": 2041,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2034,
"end": 2041,
"ctxt": 0
},
"value": "Derived",
"optional": false
},
"typeParams": null
},
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2061,
"end": 2075,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 2064,
"end": 2075,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 2065,
"end": 2069,
"ctxt": 0
},
"value": "r",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2066,
"end": 2069,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2068,
"end": 2069,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2068,
"end": 2069,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2071,
"end": 2075,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2074,
"end": 2075,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2074,
"end": 2075,
"ctxt": 0
},
"value": "U",
"optional": false
},
"typeParams": null
}
}
}
},
"isAbstract": false
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "ExpressionStatement",
"span": {
"start": 2078,
"end": 2086,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 2078,
"end": 2085,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 2078,
"end": 2080,
"ctxt": 0
},
"value": "a7",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 2083,
"end": 2085,
"ctxt": 0
},
"value": "b7",
"optional": false
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 2093,
"end": 2101,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 2093,
"end": 2100,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 2093,
"end": 2095,
"ctxt": 0
},
"value": "b7",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 2098,
"end": 2100,
"ctxt": 0
},
"value": "a7",
"optional": false
}
}
},
{
"type": "VariableDeclaration",
"span": {
"start": 2108,
"end": 2208,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 2112,
"end": 2207,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2112,
"end": 2114,
"ctxt": 0
},
"value": "b8",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2114,
"end": 2207,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 2116,
"end": 2207,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 2156,
"end": 2172,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2157,
"end": 2172,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 2159,
"end": 2172,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 2160,
"end": 2166,
"ctxt": 0
},
"value": "arg",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2163,
"end": 2166,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2165,
"end": 2166,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2165,
"end": 2166,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2168,
"end": 2172,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2171,
"end": 2172,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2171,
"end": 2172,
"ctxt": 0
},
"value": "U",
"optional": false
},
"typeParams": null
}
}
}
}
},
{
"type": "Identifier",
"span": {
"start": 2174,
"end": 2191,
"ctxt": 0
},
"value": "y",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2175,
"end": 2191,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 2177,
"end": 2191,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 2178,
"end": 2185,
"ctxt": 0
},
"value": "arg2",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2182,
"end": 2185,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2184,
"end": 2185,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2184,
"end": 2185,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2187,
"end": 2191,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2190,
"end": 2191,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2190,
"end": 2191,
"ctxt": 0
},
"value": "U",
"optional": false
},
"typeParams": null
}
}
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 2120,
"end": 2155,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 2121,
"end": 2135,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2121,
"end": 2122,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": {
"type": "TsTypeReference",
"span": {
"start": 2131,
"end": 2135,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2131,
"end": 2135,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeParams": null
},
"default": null
},
{
"type": "TsTypeParameter",
"span": {
"start": 2137,
"end": 2154,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2137,
"end": 2138,
"ctxt": 0
},
"value": "U",
"optional": false
},
"constraint": {
"type": "TsTypeReference",
"span": {
"start": 2147,
"end": 2154,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2147,
"end": 2154,
"ctxt": 0
},
"value": "Derived",
"optional": false
},
"typeParams": null
},
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2193,
"end": 2207,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 2196,
"end": 2207,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 2197,
"end": 2201,
"ctxt": 0
},
"value": "r",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2198,
"end": 2201,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2200,
"end": 2201,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2200,
"end": 2201,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2203,
"end": 2207,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2206,
"end": 2207,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2206,
"end": 2207,
"ctxt": 0
},
"value": "U",
"optional": false
},
"typeParams": null
}
}
}
},
"isAbstract": false
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "ExpressionStatement",
"span": {
"start": 2209,
"end": 2217,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 2209,
"end": 2216,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 2209,
"end": 2211,
"ctxt": 0
},
"value": "a8",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 2214,
"end": 2216,
"ctxt": 0
},
"value": "b8",
"optional": false
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 2224,
"end": 2232,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 2224,
"end": 2231,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 2224,
"end": 2226,
"ctxt": 0
},
"value": "b8",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 2229,
"end": 2231,
"ctxt": 0
},
"value": "a8",
"optional": false
}
}
},
{
"type": "VariableDeclaration",
"span": {
"start": 2239,
"end": 2367,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 2243,
"end": 2366,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2243,
"end": 2245,
"ctxt": 0
},
"value": "b9",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2245,
"end": 2366,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 2247,
"end": 2366,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 2287,
"end": 2303,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2288,
"end": 2303,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 2290,
"end": 2303,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 2291,
"end": 2297,
"ctxt": 0
},
"value": "arg",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2294,
"end": 2297,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2296,
"end": 2297,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2296,
"end": 2297,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2299,
"end": 2303,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2302,
"end": 2303,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2302,
"end": 2303,
"ctxt": 0
},
"value": "U",
"optional": false
},
"typeParams": null
}
}
}
}
},
{
"type": "Identifier",
"span": {
"start": 2305,
"end": 2350,
"ctxt": 0
},
"value": "y",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2306,
"end": 2350,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 2308,
"end": 2350,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 2309,
"end": 2344,
"ctxt": 0
},
"value": "arg2",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2313,
"end": 2344,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeLiteral",
"span": {
"start": 2315,
"end": 2344,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 2317,
"end": 2329,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2317,
"end": 2320,
"ctxt": 0
},
"value": "foo",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2320,
"end": 2328,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 2322,
"end": 2328,
"ctxt": 0
},
"kind": "string"
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 2330,
"end": 2342,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2330,
"end": 2334,
"ctxt": 0
},
"value": "bing",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2334,
"end": 2342,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 2336,
"end": 2342,
"ctxt": 0
},
"kind": "number"
}
},
"typeParams": null
}
]
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2346,
"end": 2350,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2349,
"end": 2350,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2349,
"end": 2350,
"ctxt": 0
},
"value": "U",
"optional": false
},
"typeParams": null
}
}
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 2251,
"end": 2286,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 2252,
"end": 2266,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2252,
"end": 2253,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": {
"type": "TsTypeReference",
"span": {
"start": 2262,
"end": 2266,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2262,
"end": 2266,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeParams": null
},
"default": null
},
{
"type": "TsTypeParameter",
"span": {
"start": 2268,
"end": 2285,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2268,
"end": 2269,
"ctxt": 0
},
"value": "U",
"optional": false
},
"constraint": {
"type": "TsTypeReference",
"span": {
"start": 2278,
"end": 2285,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2278,
"end": 2285,
"ctxt": 0
},
"value": "Derived",
"optional": false
},
"typeParams": null
},
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2352,
"end": 2366,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 2355,
"end": 2366,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 2356,
"end": 2360,
"ctxt": 0
},
"value": "r",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2357,
"end": 2360,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2359,
"end": 2360,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2359,
"end": 2360,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2362,
"end": 2366,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2365,
"end": 2366,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2365,
"end": 2366,
"ctxt": 0
},
"value": "U",
"optional": false
},
"typeParams": null
}
}
}
},
"isAbstract": false
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "ExpressionStatement",
"span": {
"start": 2369,
"end": 2377,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 2369,
"end": 2376,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 2369,
"end": 2371,
"ctxt": 0
},
"value": "a9",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 2374,
"end": 2376,
"ctxt": 0
},
"value": "b9",
"optional": false
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 2384,
"end": 2392,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 2384,
"end": 2391,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 2384,
"end": 2386,
"ctxt": 0
},
"value": "b9",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 2389,
"end": 2391,
"ctxt": 0
},
"value": "a9",
"optional": false
}
}
},
{
"type": "VariableDeclaration",
"span": {
"start": 2399,
"end": 2448,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 2403,
"end": 2447,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2403,
"end": 2406,
"ctxt": 0
},
"value": "b10",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2406,
"end": 2447,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 2408,
"end": 2447,
"ctxt": 0
},
"params": [
{
"type": "RestElement",
"span": {
"start": 2432,
"end": 2441,
"ctxt": 0
},
"rest": {
"start": 2432,
"end": 2435,
"ctxt": 0
},
"argument": {
"type": "Identifier",
"span": {
"start": 2435,
"end": 2436,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": null
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2436,
"end": 2441,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsArrayType",
"span": {
"start": 2438,
"end": 2441,
"ctxt": 0
},
"elemType": {
"type": "TsTypeReference",
"span": {
"start": 2438,
"end": 2439,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2438,
"end": 2439,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 2412,
"end": 2431,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 2413,
"end": 2430,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2413,
"end": 2414,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": {
"type": "TsTypeReference",
"span": {
"start": 2423,
"end": 2430,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2423,
"end": 2430,
"ctxt": 0
},
"value": "Derived",
"optional": false
},
"typeParams": null
},
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2443,
"end": 2447,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2446,
"end": 2447,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2446,
"end": 2447,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "ExpressionStatement",
"span": {
"start": 2450,
"end": 2460,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 2450,
"end": 2459,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 2450,
"end": 2453,
"ctxt": 0
},
"value": "a10",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 2456,
"end": 2459,
"ctxt": 0
},
"value": "b10",
"optional": false
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 2467,
"end": 2477,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 2467,
"end": 2476,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 2467,
"end": 2470,
"ctxt": 0
},
"value": "b10",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 2473,
"end": 2476,
"ctxt": 0
},
"value": "a10",
"optional": false
}
}
},
{
"type": "VariableDeclaration",
"span": {
"start": 2484,
"end": 2531,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 2488,
"end": 2530,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2488,
"end": 2491,
"ctxt": 0
},
"value": "b11",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2491,
"end": 2530,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 2493,
"end": 2530,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 2514,
"end": 2518,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2515,
"end": 2518,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2517,
"end": 2518,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2517,
"end": 2518,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 2520,
"end": 2524,
"ctxt": 0
},
"value": "y",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2521,
"end": 2524,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2523,
"end": 2524,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2523,
"end": 2524,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 2497,
"end": 2513,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 2498,
"end": 2512,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2498,
"end": 2499,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": {
"type": "TsTypeReference",
"span": {
"start": 2508,
"end": 2512,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2508,
"end": 2512,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeParams": null
},
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2526,
"end": 2530,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2529,
"end": 2530,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2529,
"end": 2530,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "ExpressionStatement",
"span": {
"start": 2533,
"end": 2543,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 2533,
"end": 2542,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 2533,
"end": 2536,
"ctxt": 0
},
"value": "a11",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 2539,
"end": 2542,
"ctxt": 0
},
"value": "b11",
"optional": false
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 2550,
"end": 2560,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 2550,
"end": 2559,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 2550,
"end": 2553,
"ctxt": 0
},
"value": "b11",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 2556,
"end": 2559,
"ctxt": 0
},
"value": "a11",
"optional": false
}
}
},
{
"type": "VariableDeclaration",
"span": {
"start": 2567,
"end": 2644,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 2571,
"end": 2643,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2571,
"end": 2574,
"ctxt": 0
},
"value": "b12",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2574,
"end": 2643,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 2576,
"end": 2643,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 2604,
"end": 2618,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2605,
"end": 2618,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2607,
"end": 2618,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2607,
"end": 2612,
"ctxt": 0
},
"value": "Array",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 2612,
"end": 2618,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 2613,
"end": 2617,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2613,
"end": 2617,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeParams": null
}
]
}
}
}
},
{
"type": "Identifier",
"span": {
"start": 2620,
"end": 2624,
"ctxt": 0
},
"value": "y",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2621,
"end": 2624,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2623,
"end": 2624,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2623,
"end": 2624,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 2580,
"end": 2603,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 2581,
"end": 2602,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2581,
"end": 2582,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": {
"type": "TsTypeReference",
"span": {
"start": 2591,
"end": 2602,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2591,
"end": 2596,
"ctxt": 0
},
"value": "Array",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 2596,
"end": 2602,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 2597,
"end": 2601,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2597,
"end": 2601,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeParams": null
}
]
}
},
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2626,
"end": 2643,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2629,
"end": 2643,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2629,
"end": 2634,
"ctxt": 0
},
"value": "Array",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 2634,
"end": 2643,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 2635,
"end": 2642,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2635,
"end": 2642,
"ctxt": 0
},
"value": "Derived",
"optional": false
},
"typeParams": null
}
]
}
}
},
"isAbstract": false
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "ExpressionStatement",
"span": {
"start": 2646,
"end": 2656,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 2646,
"end": 2655,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 2646,
"end": 2649,
"ctxt": 0
},
"value": "a12",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 2652,
"end": 2655,
"ctxt": 0
},
"value": "b12",
"optional": false
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 2663,
"end": 2673,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 2663,
"end": 2672,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 2663,
"end": 2666,
"ctxt": 0
},
"value": "b12",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 2669,
"end": 2672,
"ctxt": 0
},
"value": "a12",
"optional": false
}
}
},
{
"type": "VariableDeclaration",
"span": {
"start": 2680,
"end": 2747,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 2684,
"end": 2746,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2684,
"end": 2687,
"ctxt": 0
},
"value": "b13",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2687,
"end": 2746,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 2689,
"end": 2746,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 2720,
"end": 2734,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2721,
"end": 2734,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2723,
"end": 2734,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2723,
"end": 2728,
"ctxt": 0
},
"value": "Array",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 2728,
"end": 2734,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 2729,
"end": 2733,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2729,
"end": 2733,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeParams": null
}
]
}
}
}
},
{
"type": "Identifier",
"span": {
"start": 2736,
"end": 2740,
"ctxt": 0
},
"value": "y",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2737,
"end": 2740,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2739,
"end": 2740,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2739,
"end": 2740,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 2693,
"end": 2719,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 2694,
"end": 2718,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2694,
"end": 2695,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": {
"type": "TsTypeReference",
"span": {
"start": 2704,
"end": 2718,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2704,
"end": 2709,
"ctxt": 0
},
"value": "Array",
"optional": false
},
"typeParams": {
"type": "TsTypeParameterInstantiation",
"span": {
"start": 2709,
"end": 2718,
"ctxt": 0
},
"params": [
{
"type": "TsTypeReference",
"span": {
"start": 2710,
"end": 2717,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2710,
"end": 2717,
"ctxt": 0
},
"value": "Derived",
"optional": false
},
"typeParams": null
}
]
}
},
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2742,
"end": 2746,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2745,
"end": 2746,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2745,
"end": 2746,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "ExpressionStatement",
"span": {
"start": 2749,
"end": 2759,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 2749,
"end": 2758,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 2749,
"end": 2752,
"ctxt": 0
},
"value": "a13",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 2755,
"end": 2758,
"ctxt": 0
},
"value": "b13",
"optional": false
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 2766,
"end": 2776,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 2766,
"end": 2775,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 2766,
"end": 2769,
"ctxt": 0
},
"value": "b13",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 2772,
"end": 2775,
"ctxt": 0
},
"value": "a13",
"optional": false
}
}
},
{
"type": "VariableDeclaration",
"span": {
"start": 2783,
"end": 2824,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 2787,
"end": 2823,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2787,
"end": 2790,
"ctxt": 0
},
"value": "b14",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2790,
"end": 2823,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 2792,
"end": 2823,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 2800,
"end": 2817,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2801,
"end": 2817,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeLiteral",
"span": {
"start": 2803,
"end": 2817,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 2805,
"end": 2810,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2805,
"end": 2806,
"ctxt": 0
},
"value": "a",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2806,
"end": 2809,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2808,
"end": 2809,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2808,
"end": 2809,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 2811,
"end": 2815,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2811,
"end": 2812,
"ctxt": 0
},
"value": "b",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2812,
"end": 2815,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2814,
"end": 2815,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2814,
"end": 2815,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"typeParams": null
}
]
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 2796,
"end": 2799,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 2797,
"end": 2798,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2797,
"end": 2798,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2819,
"end": 2823,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2822,
"end": 2823,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2822,
"end": 2823,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "ExpressionStatement",
"span": {
"start": 2826,
"end": 2836,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 2826,
"end": 2835,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 2826,
"end": 2829,
"ctxt": 0
},
"value": "a14",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 2832,
"end": 2835,
"ctxt": 0
},
"value": "b14",
"optional": false
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 2843,
"end": 2853,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 2843,
"end": 2852,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 2843,
"end": 2846,
"ctxt": 0
},
"value": "b14",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 2849,
"end": 2852,
"ctxt": 0
},
"value": "a14",
"optional": false
}
}
},
{
"type": "VariableDeclaration",
"span": {
"start": 2860,
"end": 2890,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 2864,
"end": 2889,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2864,
"end": 2867,
"ctxt": 0
},
"value": "b15",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2867,
"end": 2889,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 2869,
"end": 2889,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 2877,
"end": 2881,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2878,
"end": 2881,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2880,
"end": 2881,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2880,
"end": 2881,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 2873,
"end": 2876,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 2874,
"end": 2875,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2874,
"end": 2875,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2883,
"end": 2889,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsArrayType",
"span": {
"start": 2886,
"end": 2889,
"ctxt": 0
},
"elemType": {
"type": "TsTypeReference",
"span": {
"start": 2886,
"end": 2887,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2886,
"end": 2887,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
"isAbstract": false
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "ExpressionStatement",
"span": {
"start": 2892,
"end": 2902,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 2892,
"end": 2901,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 2892,
"end": 2895,
"ctxt": 0
},
"value": "a15",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 2898,
"end": 2901,
"ctxt": 0
},
"value": "b15",
"optional": false
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 2909,
"end": 2919,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 2909,
"end": 2918,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 2909,
"end": 2912,
"ctxt": 0
},
"value": "b15",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 2915,
"end": 2918,
"ctxt": 0
},
"value": "a15",
"optional": false
}
}
},
{
"type": "VariableDeclaration",
"span": {
"start": 2926,
"end": 2974,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 2930,
"end": 2973,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2930,
"end": 2933,
"ctxt": 0
},
"value": "b16",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2933,
"end": 2973,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 2935,
"end": 2973,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 2956,
"end": 2960,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2957,
"end": 2960,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2959,
"end": 2960,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2959,
"end": 2960,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 2939,
"end": 2955,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 2940,
"end": 2954,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 2940,
"end": 2941,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": {
"type": "TsTypeReference",
"span": {
"start": 2950,
"end": 2954,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2950,
"end": 2954,
"ctxt": 0
},
"value": "Base",
"optional": false
},
"typeParams": null
},
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2962,
"end": 2973,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsArrayType",
"span": {
"start": 2965,
"end": 2973,
"ctxt": 0
},
"elemType": {
"type": "TsKeywordType",
"span": {
"start": 2965,
"end": 2971,
"ctxt": 0
},
"kind": "number"
}
}
},
"isAbstract": false
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "ExpressionStatement",
"span": {
"start": 2975,
"end": 2985,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 2975,
"end": 2984,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 2975,
"end": 2978,
"ctxt": 0
},
"value": "a16",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 2981,
"end": 2984,
"ctxt": 0
},
"value": "b16",
"optional": false
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 2992,
"end": 3002,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 2992,
"end": 3001,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 2992,
"end": 2995,
"ctxt": 0
},
"value": "b16",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 2998,
"end": 3001,
"ctxt": 0
},
"value": "a16",
"optional": false
}
}
},
{
"type": "VariableDeclaration",
"span": {
"start": 3009,
"end": 3053,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 3013,
"end": 3052,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3013,
"end": 3016,
"ctxt": 0
},
"value": "b17",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3016,
"end": 3052,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 3018,
"end": 3052,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 3026,
"end": 3044,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3027,
"end": 3044,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 3029,
"end": 3044,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 3034,
"end": 3038,
"ctxt": 0
},
"value": "a",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3035,
"end": 3038,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3037,
"end": 3038,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3037,
"end": 3038,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3040,
"end": 3044,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3043,
"end": 3044,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3043,
"end": 3044,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 3022,
"end": 3025,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 3023,
"end": 3024,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 3023,
"end": 3024,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3046,
"end": 3052,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsArrayType",
"span": {
"start": 3049,
"end": 3052,
"ctxt": 0
},
"elemType": {
"type": "TsTypeReference",
"span": {
"start": 3049,
"end": 3050,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3049,
"end": 3050,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
"isAbstract": false
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "ExpressionStatement",
"span": {
"start": 3060,
"end": 3070,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 3060,
"end": 3069,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 3060,
"end": 3063,
"ctxt": 0
},
"value": "a17",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 3066,
"end": 3069,
"ctxt": 0
},
"value": "b17",
"optional": false
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 3077,
"end": 3087,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 3077,
"end": 3086,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 3077,
"end": 3080,
"ctxt": 0
},
"value": "b17",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 3083,
"end": 3086,
"ctxt": 0
},
"value": "a17",
"optional": false
}
}
},
{
"type": "VariableDeclaration",
"span": {
"start": 3094,
"end": 3138,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 3098,
"end": 3137,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3098,
"end": 3101,
"ctxt": 0
},
"value": "b18",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3101,
"end": 3137,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 3103,
"end": 3137,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 3111,
"end": 3129,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3112,
"end": 3129,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsConstructorType",
"span": {
"start": 3114,
"end": 3129,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 3119,
"end": 3123,
"ctxt": 0
},
"value": "a",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3120,
"end": 3123,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3122,
"end": 3123,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3122,
"end": 3123,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3125,
"end": 3129,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3128,
"end": 3129,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3128,
"end": 3129,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
},
"isAbstract": false
}
}
}
],
"typeParams": {
"type": "TsTypeParameterDeclaration",
"span": {
"start": 3107,
"end": 3110,
"ctxt": 0
},
"parameters": [
{
"type": "TsTypeParameter",
"span": {
"start": 3108,
"end": 3109,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 3108,
"end": 3109,
"ctxt": 0
},
"value": "T",
"optional": false
},
"constraint": null,
"default": null
}
]
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3131,
"end": 3137,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsArrayType",
"span": {
"start": 3134,
"end": 3137,
"ctxt": 0
},
"elemType": {
"type": "TsTypeReference",
"span": {
"start": 3134,
"end": 3135,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3134,
"end": 3135,
"ctxt": 0
},
"value": "T",
"optional": false
},
"typeParams": null
}
}
},
"isAbstract": false
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "ExpressionStatement",
"span": {
"start": 3140,
"end": 3150,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 3140,
"end": 3149,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 3140,
"end": 3143,
"ctxt": 0
},
"value": "a18",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 3146,
"end": 3149,
"ctxt": 0
},
"value": "b18",
"optional": false
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 3157,
"end": 3167,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 3157,
"end": 3166,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 3157,
"end": 3160,
"ctxt": 0
},
"value": "b18",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 3163,
"end": 3166,
"ctxt": 0
},
"value": "a18",
"optional": false
}
}
}
],
"interpreter": null
}