{ "type": "Script", "span": { "start": 74, "end": 1746, "ctxt": 0 }, "body": [ { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 80, "end": 84, "ctxt": 0 }, "value": "Base", "optional": false }, "declare": false, "span": { "start": 74, "end": 101, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 87, "end": 99, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 87, "end": 90, "ctxt": 0 }, "value": "foo", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 90, "end": 98, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 92, "end": 98, "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": 108, "end": 115, "ctxt": 0 }, "value": "Derived", "optional": false }, "declare": false, "span": { "start": 102, "end": 145, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 131, "end": 143, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 131, "end": 134, "ctxt": 0 }, "value": "bar", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 134, "end": 142, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 136, "end": 142, "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": 124, "end": 128, "ctxt": 0 }, "value": "Base", "optional": false }, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [] }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 152, "end": 160, "ctxt": 0 }, "value": "Derived2", "optional": false }, "declare": false, "span": { "start": 146, "end": 193, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 179, "end": 191, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 179, "end": 182, "ctxt": 0 }, "value": "baz", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 182, "end": 190, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 184, "end": 190, "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": 169, "end": 176, "ctxt": 0 }, "value": "Derived", "optional": false }, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [] }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 200, "end": 212, "ctxt": 0 }, "value": "OtherDerived", "optional": false }, "declare": false, "span": { "start": 194, "end": 243, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 228, "end": 241, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 228, "end": 232, "ctxt": 0 }, "value": "bing", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 232, "end": 240, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 234, "end": 240, "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": 221, "end": 225, "ctxt": 0 }, "value": "Base", "optional": false }, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [] }, { "type": "VariableDeclaration", "span": { "start": 245, "end": 269, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 249, "end": 268, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 249, "end": 250, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 250, "end": 268, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 252, "end": 268, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 256, "end": 260, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 257, "end": 260, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 259, "end": 260, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 259, "end": 260, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 252, "end": 255, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 253, "end": 254, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 253, "end": 254, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 262, "end": 268, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 265, "end": 268, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 265, "end": 266, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 265, "end": 266, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } } }, "init": null, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 270, "end": 300, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 274, "end": 299, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 274, "end": 276, "ctxt": 0 }, "value": "a2", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 276, "end": 299, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 278, "end": 299, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 282, "end": 286, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 283, "end": 286, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 285, "end": 286, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 285, "end": 286, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 278, "end": 281, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 279, "end": 280, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 279, "end": 280, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 288, "end": 299, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 291, "end": 299, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 291, "end": 297, "ctxt": 0 }, "kind": "string" } } } } } }, "init": null, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 301, "end": 327, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 305, "end": 326, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 305, "end": 307, "ctxt": 0 }, "value": "a3", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 307, "end": 326, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 309, "end": 326, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 313, "end": 317, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 314, "end": 317, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 316, "end": 317, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 316, "end": 317, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 309, "end": 312, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 310, "end": 311, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 310, "end": 311, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 319, "end": 326, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 322, "end": 326, "ctxt": 0 }, "kind": "void" } } } } }, "init": null, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 328, "end": 364, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 332, "end": 363, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 332, "end": 334, "ctxt": 0 }, "value": "a4", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 334, "end": 363, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 336, "end": 363, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 342, "end": 346, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 343, "end": 346, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 345, "end": 346, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 345, "end": 346, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, { "type": "Identifier", "span": { "start": 348, "end": 352, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 349, "end": 352, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 351, "end": 352, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 351, "end": 352, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 336, "end": 341, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 337, "end": 338, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 337, "end": 338, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 339, "end": 340, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 339, "end": 340, "ctxt": 0 }, "value": "U", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 354, "end": 363, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 357, "end": 363, "ctxt": 0 }, "kind": "string" } } } } }, "init": null, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 365, "end": 402, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 369, "end": 401, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 369, "end": 371, "ctxt": 0 }, "value": "a5", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 371, "end": 401, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 373, "end": 401, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 379, "end": 395, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 380, "end": 395, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 382, "end": 395, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 383, "end": 389, "ctxt": 0 }, "value": "arg", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 386, "end": 389, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 388, "end": 389, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 388, "end": 389, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 391, "end": 395, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 394, "end": 395, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 394, "end": 395, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 373, "end": 378, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 374, "end": 375, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 374, "end": 375, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 376, "end": 377, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 376, "end": 377, "ctxt": 0 }, "value": "U", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 397, "end": 401, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 400, "end": 401, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 400, "end": 401, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } }, "init": null, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 403, "end": 457, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 407, "end": 456, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 407, "end": 409, "ctxt": 0 }, "value": "a6", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 409, "end": 456, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 411, "end": 456, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 428, "end": 450, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 429, "end": 450, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 431, "end": 450, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 432, "end": 438, "ctxt": 0 }, "value": "arg", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 435, "end": 438, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 437, "end": 438, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 437, "end": 438, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 440, "end": 450, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 443, "end": 450, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 443, "end": 450, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } } } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 411, "end": 427, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 412, "end": 426, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 412, "end": 413, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 422, "end": 426, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 422, "end": 426, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null }, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 452, "end": 456, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 455, "end": 456, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 455, "end": 456, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } }, "init": null, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 458, "end": 517, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 462, "end": 516, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 462, "end": 465, "ctxt": 0 }, "value": "a11", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 465, "end": 516, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 467, "end": 516, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 471, "end": 484, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 472, "end": 484, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 474, "end": 484, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 476, "end": 482, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 476, "end": 479, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 479, "end": 482, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 481, "end": 482, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 481, "end": 482, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": null } ] } } }, { "type": "Identifier", "span": { "start": 486, "end": 507, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 487, "end": 507, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 489, "end": 507, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 491, "end": 498, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 491, "end": 494, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 494, "end": 497, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 496, "end": 497, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 496, "end": 497, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 499, "end": 505, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 499, "end": 502, "ctxt": 0 }, "value": "bar", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 502, "end": 505, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 504, "end": 505, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 504, "end": 505, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": null } ] } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 467, "end": 470, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 468, "end": 469, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 468, "end": 469, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 509, "end": 516, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 512, "end": 516, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 512, "end": 516, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } } } } }, "init": null, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 518, "end": 557, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 522, "end": 556, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 522, "end": 525, "ctxt": 0 }, "value": "a15", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 525, "end": 556, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 527, "end": 556, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 531, "end": 548, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 532, "end": 548, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 534, "end": 548, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 536, "end": 541, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 536, "end": 537, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 537, "end": 540, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 539, "end": 540, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 539, "end": 540, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 542, "end": 546, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 542, "end": 543, "ctxt": 0 }, "value": "b", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 543, "end": 546, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 545, "end": 546, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 545, "end": 546, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": null } ] } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 527, "end": 530, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 528, "end": 529, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 528, "end": 529, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 550, "end": 556, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 553, "end": 556, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 553, "end": 554, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 553, "end": 554, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } } }, "init": null, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 558, "end": 610, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 562, "end": 609, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 562, "end": 565, "ctxt": 0 }, "value": "a16", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 565, "end": 609, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 567, "end": 609, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 584, "end": 601, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 585, "end": 601, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 587, "end": 601, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 589, "end": 594, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 589, "end": 590, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 590, "end": 593, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 592, "end": 593, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 592, "end": 593, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 595, "end": 599, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 595, "end": 596, "ctxt": 0 }, "value": "b", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 596, "end": 599, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 598, "end": 599, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 598, "end": 599, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": null } ] } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 567, "end": 583, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 568, "end": 582, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 568, "end": 569, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 578, "end": 582, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 578, "end": 582, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null }, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 603, "end": 609, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 606, "end": 609, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 606, "end": 607, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 606, "end": 607, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } } }, "init": null, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 611, "end": 721, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 615, "end": 720, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 615, "end": 618, "ctxt": 0 }, "value": "a17", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 618, "end": 720, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 620, "end": 720, "ctxt": 0 }, "members": [ { "type": "TsCallSignatureDeclaration", "span": { "start": 626, "end": 667, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 646, "end": 660, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 647, "end": 660, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 649, "end": 660, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 650, "end": 654, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 651, "end": 654, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 653, "end": 654, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 653, "end": 654, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 656, "end": 660, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 659, "end": 660, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 659, "end": 660, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 661, "end": 666, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 663, "end": 666, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 663, "end": 664, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 663, "end": 664, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 626, "end": 645, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 627, "end": 644, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 627, "end": 628, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 637, "end": 644, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 637, "end": 644, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null }, "default": null } ] } }, { "type": "TsCallSignatureDeclaration", "span": { "start": 672, "end": 710, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 689, "end": 703, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 690, "end": 703, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 692, "end": 703, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 693, "end": 697, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 694, "end": 697, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 696, "end": 697, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 696, "end": 697, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 699, "end": 703, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 702, "end": 703, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 702, "end": 703, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 704, "end": 709, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 706, "end": 709, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 706, "end": 707, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 706, "end": 707, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 672, "end": 688, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 673, "end": 687, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 673, "end": 674, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 683, "end": 687, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 683, "end": 687, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null }, "default": null } ] } } ] } } }, "init": null, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 722, "end": 932, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 726, "end": 931, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 726, "end": 729, "ctxt": 0 }, "value": "a18", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 729, "end": 931, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 731, "end": 931, "ctxt": 0 }, "members": [ { "type": "TsCallSignatureDeclaration", "span": { "start": 737, "end": 830, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 738, "end": 821, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 739, "end": 821, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 741, "end": 821, "ctxt": 0 }, "members": [ { "type": "TsCallSignatureDeclaration", "span": { "start": 751, "end": 780, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 771, "end": 775, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 772, "end": 775, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 774, "end": 775, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 774, "end": 775, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 776, "end": 779, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 778, "end": 779, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 778, "end": 779, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 751, "end": 770, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 752, "end": 769, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 752, "end": 753, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 762, "end": 769, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 762, "end": 769, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null }, "default": null } ] } }, { "type": "TsCallSignatureDeclaration", "span": { "start": 789, "end": 815, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 806, "end": 810, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 807, "end": 810, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 809, "end": 810, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 809, "end": 810, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 811, "end": 814, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 813, "end": 814, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 813, "end": 814, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 789, "end": 805, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 790, "end": 804, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 790, "end": 791, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 800, "end": 804, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 800, "end": 804, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null }, "default": null } ] } } ] } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 822, "end": 829, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 824, "end": 829, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 824, "end": 827, "ctxt": 0 }, "kind": "any" } } }, "typeParams": null }, { "type": "TsCallSignatureDeclaration", "span": { "start": 835, "end": 929, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 836, "end": 920, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 837, "end": 920, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 839, "end": 920, "ctxt": 0 }, "members": [ { "type": "TsCallSignatureDeclaration", "span": { "start": 849, "end": 879, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 870, "end": 874, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 871, "end": 874, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 873, "end": 874, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 873, "end": 874, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 875, "end": 878, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 877, "end": 878, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 877, "end": 878, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 849, "end": 869, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 850, "end": 868, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 850, "end": 851, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 860, "end": 868, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 860, "end": 868, "ctxt": 0 }, "value": "Derived2", "optional": false }, "typeParams": null }, "default": null } ] } }, { "type": "TsCallSignatureDeclaration", "span": { "start": 888, "end": 914, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 905, "end": 909, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 906, "end": 909, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 908, "end": 909, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 908, "end": 909, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 910, "end": 913, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 912, "end": 913, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 912, "end": 913, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 888, "end": 904, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 889, "end": 903, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 889, "end": 890, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 899, "end": 903, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 899, "end": 903, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null }, "default": null } ] } } ] } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 921, "end": 928, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 923, "end": 928, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 923, "end": 926, "ctxt": 0 }, "kind": "any" } } }, "typeParams": null } ] } } }, "init": null, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 934, "end": 958, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 938, "end": 957, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 938, "end": 939, "ctxt": 0 }, "value": "b", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 939, "end": 957, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 941, "end": 957, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 945, "end": 949, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 946, "end": 949, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 948, "end": 949, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 948, "end": 949, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 941, "end": 944, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 942, "end": 943, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 942, "end": 943, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 951, "end": 957, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 954, "end": 957, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 954, "end": 955, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 954, "end": 955, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } } }, "init": null, "definite": false } ] }, { "type": "ExpressionStatement", "span": { "start": 960, "end": 966, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 960, "end": 965, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 960, "end": 961, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 964, "end": 965, "ctxt": 0 }, "value": "b", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 973, "end": 979, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 973, "end": 978, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 973, "end": 974, "ctxt": 0 }, "value": "b", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 977, "end": 978, "ctxt": 0 }, "value": "a", "optional": false } } }, { "type": "VariableDeclaration", "span": { "start": 986, "end": 1016, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 990, "end": 1015, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 990, "end": 992, "ctxt": 0 }, "value": "b2", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 992, "end": 1015, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 994, "end": 1015, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 998, "end": 1002, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 999, "end": 1002, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1001, "end": 1002, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1001, "end": 1002, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 994, "end": 997, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 995, "end": 996, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 995, "end": 996, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1004, "end": 1015, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 1007, "end": 1015, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 1007, "end": 1013, "ctxt": 0 }, "kind": "string" } } } } } }, "init": null, "definite": false } ] }, { "type": "ExpressionStatement", "span": { "start": 1018, "end": 1026, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 1018, "end": 1025, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 1018, "end": 1020, "ctxt": 0 }, "value": "a2", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 1023, "end": 1025, "ctxt": 0 }, "value": "b2", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 1033, "end": 1041, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 1033, "end": 1040, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 1033, "end": 1035, "ctxt": 0 }, "value": "b2", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 1038, "end": 1040, "ctxt": 0 }, "value": "a2", "optional": false } } }, { "type": "VariableDeclaration", "span": { "start": 1048, "end": 1071, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 1052, "end": 1070, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1052, "end": 1054, "ctxt": 0 }, "value": "b3", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1054, "end": 1070, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1056, "end": 1070, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1060, "end": 1064, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1061, "end": 1064, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1063, "end": 1064, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1063, "end": 1064, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1056, "end": 1059, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1057, "end": 1058, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1057, "end": 1058, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1066, "end": 1070, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1069, "end": 1070, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1069, "end": 1070, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } }, "init": null, "definite": false } ] }, { "type": "ExpressionStatement", "span": { "start": 1073, "end": 1081, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 1073, "end": 1080, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 1073, "end": 1075, "ctxt": 0 }, "value": "a3", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 1078, "end": 1080, "ctxt": 0 }, "value": "b3", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 1088, "end": 1096, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 1088, "end": 1095, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 1088, "end": 1090, "ctxt": 0 }, "value": "b3", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 1093, "end": 1095, "ctxt": 0 }, "value": "a3", "optional": false } } }, { "type": "VariableDeclaration", "span": { "start": 1103, "end": 1140, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 1107, "end": 1139, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1107, "end": 1109, "ctxt": 0 }, "value": "b4", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1109, "end": 1139, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1111, "end": 1139, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1118, "end": 1122, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1119, "end": 1122, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1121, "end": 1122, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1121, "end": 1122, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, { "type": "Identifier", "span": { "start": 1124, "end": 1128, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1125, "end": 1128, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1127, "end": 1128, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1127, "end": 1128, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1111, "end": 1117, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1112, "end": 1113, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1112, "end": 1113, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 1115, "end": 1116, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1115, "end": 1116, "ctxt": 0 }, "value": "U", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1130, "end": 1139, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1133, "end": 1139, "ctxt": 0 }, "kind": "string" } } } } }, "init": null, "definite": false } ] }, { "type": "ExpressionStatement", "span": { "start": 1142, "end": 1150, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 1142, "end": 1149, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 1142, "end": 1144, "ctxt": 0 }, "value": "a4", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 1147, "end": 1149, "ctxt": 0 }, "value": "b4", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 1157, "end": 1165, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 1157, "end": 1164, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 1157, "end": 1159, "ctxt": 0 }, "value": "b4", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 1162, "end": 1164, "ctxt": 0 }, "value": "a4", "optional": false } } }, { "type": "VariableDeclaration", "span": { "start": 1172, "end": 1210, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 1176, "end": 1209, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1176, "end": 1178, "ctxt": 0 }, "value": "b5", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1178, "end": 1209, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1180, "end": 1209, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1187, "end": 1203, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1188, "end": 1203, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1190, "end": 1203, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1191, "end": 1197, "ctxt": 0 }, "value": "arg", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1194, "end": 1197, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1196, "end": 1197, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1196, "end": 1197, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1199, "end": 1203, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1202, "end": 1203, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1202, "end": 1203, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1180, "end": 1186, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1181, "end": 1182, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1181, "end": 1182, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 1184, "end": 1185, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1184, "end": 1185, "ctxt": 0 }, "value": "U", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1205, "end": 1209, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1208, "end": 1209, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1208, "end": 1209, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } }, "init": null, "definite": false } ] }, { "type": "ExpressionStatement", "span": { "start": 1212, "end": 1220, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 1212, "end": 1219, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 1212, "end": 1214, "ctxt": 0 }, "value": "a5", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 1217, "end": 1219, "ctxt": 0 }, "value": "b5", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 1227, "end": 1235, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 1227, "end": 1234, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 1227, "end": 1229, "ctxt": 0 }, "value": "b5", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 1232, "end": 1234, "ctxt": 0 }, "value": "a5", "optional": false } } }, { "type": "VariableDeclaration", "span": { "start": 1242, "end": 1309, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 1246, "end": 1308, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1246, "end": 1248, "ctxt": 0 }, "value": "b6", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1248, "end": 1308, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1250, "end": 1308, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1286, "end": 1302, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1287, "end": 1302, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1289, "end": 1302, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1290, "end": 1296, "ctxt": 0 }, "value": "arg", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1293, "end": 1296, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1295, "end": 1296, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1295, "end": 1296, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1298, "end": 1302, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1301, "end": 1302, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1301, "end": 1302, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1250, "end": 1285, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1251, "end": 1265, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1251, "end": 1252, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 1261, "end": 1265, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1261, "end": 1265, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null }, "default": null }, { "type": "TsTypeParameter", "span": { "start": 1267, "end": 1284, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1267, "end": 1268, "ctxt": 0 }, "value": "U", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 1277, "end": 1284, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1277, "end": 1284, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null }, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1304, "end": 1308, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1307, "end": 1308, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1307, "end": 1308, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } }, "init": null, "definite": false } ] }, { "type": "ExpressionStatement", "span": { "start": 1311, "end": 1319, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 1311, "end": 1318, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 1311, "end": 1313, "ctxt": 0 }, "value": "a6", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 1316, "end": 1318, "ctxt": 0 }, "value": "b6", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 1326, "end": 1334, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 1326, "end": 1333, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 1326, "end": 1328, "ctxt": 0 }, "value": "b6", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 1331, "end": 1333, "ctxt": 0 }, "value": "a6", "optional": false } } }, { "type": "VariableDeclaration", "span": { "start": 1341, "end": 1403, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 1345, "end": 1402, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1345, "end": 1348, "ctxt": 0 }, "value": "b11", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1348, "end": 1402, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1350, "end": 1402, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1357, "end": 1370, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1358, "end": 1370, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 1360, "end": 1370, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 1362, "end": 1368, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1362, "end": 1365, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1365, "end": 1368, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1367, "end": 1368, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1367, "end": 1368, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": null } ] } } }, { "type": "Identifier", "span": { "start": 1372, "end": 1393, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1373, "end": 1393, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 1375, "end": 1393, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 1377, "end": 1384, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1377, "end": 1380, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1380, "end": 1383, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1382, "end": 1383, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1382, "end": 1383, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1385, "end": 1391, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1385, "end": 1388, "ctxt": 0 }, "value": "bar", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1388, "end": 1391, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1390, "end": 1391, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1390, "end": 1391, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } }, "typeParams": null } ] } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1350, "end": 1356, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1351, "end": 1352, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1351, "end": 1352, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 1354, "end": 1355, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1354, "end": 1355, "ctxt": 0 }, "value": "U", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1395, "end": 1402, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1398, "end": 1402, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1398, "end": 1402, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null } } } } }, "init": null, "definite": false } ] }, { "type": "ExpressionStatement", "span": { "start": 1405, "end": 1415, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 1405, "end": 1414, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 1405, "end": 1408, "ctxt": 0 }, "value": "a11", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 1411, "end": 1414, "ctxt": 0 }, "value": "b11", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 1422, "end": 1432, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 1422, "end": 1431, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 1422, "end": 1425, "ctxt": 0 }, "value": "b11", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 1428, "end": 1431, "ctxt": 0 }, "value": "a11", "optional": false } } }, { "type": "VariableDeclaration", "span": { "start": 1439, "end": 1482, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 1443, "end": 1481, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1443, "end": 1446, "ctxt": 0 }, "value": "b15", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1446, "end": 1481, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1448, "end": 1481, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1455, "end": 1473, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1456, "end": 1473, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 1458, "end": 1473, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 1460, "end": 1465, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1460, "end": 1461, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1461, "end": 1464, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1463, "end": 1464, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1463, "end": 1464, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1466, "end": 1471, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1466, "end": 1467, "ctxt": 0 }, "value": "b", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1467, "end": 1470, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1469, "end": 1470, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1469, "end": 1470, "ctxt": 0 }, "value": "V", "optional": false }, "typeParams": null } }, "typeParams": null } ] } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1448, "end": 1454, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1449, "end": 1450, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1449, "end": 1450, "ctxt": 0 }, "value": "U", "optional": false }, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 1452, "end": 1453, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1452, "end": 1453, "ctxt": 0 }, "value": "V", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1475, "end": 1481, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 1478, "end": 1481, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 1478, "end": 1479, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1478, "end": 1479, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } } } }, "init": null, "definite": false } ] }, { "type": "ExpressionStatement", "span": { "start": 1484, "end": 1494, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 1484, "end": 1493, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 1484, "end": 1487, "ctxt": 0 }, "value": "a15", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 1490, "end": 1493, "ctxt": 0 }, "value": "b15", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 1515, "end": 1525, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 1515, "end": 1524, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 1515, "end": 1518, "ctxt": 0 }, "value": "b15", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 1521, "end": 1524, "ctxt": 0 }, "value": "a15", "optional": false } } }, { "type": "VariableDeclaration", "span": { "start": 1532, "end": 1571, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 1536, "end": 1570, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1536, "end": 1539, "ctxt": 0 }, "value": "b16", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1539, "end": 1570, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1541, "end": 1570, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1545, "end": 1562, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1546, "end": 1562, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 1548, "end": 1562, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 1550, "end": 1555, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1550, "end": 1551, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1551, "end": 1554, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1553, "end": 1554, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1553, "end": 1554, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 1556, "end": 1560, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1556, "end": 1557, "ctxt": 0 }, "value": "b", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1557, "end": 1560, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1559, "end": 1560, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1559, "end": 1560, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } }, "typeParams": null } ] } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1541, "end": 1544, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1542, "end": 1543, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1542, "end": 1543, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1564, "end": 1570, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 1567, "end": 1570, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 1567, "end": 1568, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1567, "end": 1568, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } } }, "init": null, "definite": false } ] }, { "type": "ExpressionStatement", "span": { "start": 1573, "end": 1583, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 1573, "end": 1582, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 1573, "end": 1576, "ctxt": 0 }, "value": "a15", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 1579, "end": 1582, "ctxt": 0 }, "value": "b16", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 1590, "end": 1600, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 1590, "end": 1599, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 1590, "end": 1593, "ctxt": 0 }, "value": "b15", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 1596, "end": 1599, "ctxt": 0 }, "value": "a16", "optional": false } } }, { "type": "VariableDeclaration", "span": { "start": 1607, "end": 1643, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 1611, "end": 1642, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1611, "end": 1614, "ctxt": 0 }, "value": "b17", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1614, "end": 1642, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1616, "end": 1642, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1620, "end": 1634, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1621, "end": 1634, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1623, "end": 1634, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1624, "end": 1628, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1625, "end": 1628, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1627, "end": 1628, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1627, "end": 1628, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1630, "end": 1634, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1633, "end": 1634, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1633, "end": 1634, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1616, "end": 1619, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1617, "end": 1618, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1617, "end": 1618, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1636, "end": 1642, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 1639, "end": 1642, "ctxt": 0 }, "elemType": { "type": "TsTypeReference", "span": { "start": 1639, "end": 1640, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1639, "end": 1640, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } } }, "init": null, "definite": false } ] }, { "type": "ExpressionStatement", "span": { "start": 1645, "end": 1655, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 1645, "end": 1654, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 1645, "end": 1648, "ctxt": 0 }, "value": "a17", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 1651, "end": 1654, "ctxt": 0 }, "value": "b17", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 1662, "end": 1672, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 1662, "end": 1671, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 1662, "end": 1665, "ctxt": 0 }, "value": "b17", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 1668, "end": 1671, "ctxt": 0 }, "value": "a17", "optional": false } } }, { "type": "VariableDeclaration", "span": { "start": 1679, "end": 1717, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 1683, "end": 1716, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1683, "end": 1686, "ctxt": 0 }, "value": "b18", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1686, "end": 1716, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1688, "end": 1716, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1689, "end": 1706, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1690, "end": 1706, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1692, "end": 1706, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1696, "end": 1700, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1697, "end": 1700, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1699, "end": 1700, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1699, "end": 1700, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1692, "end": 1695, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1693, "end": 1694, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1693, "end": 1694, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1702, "end": 1706, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1705, "end": 1706, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1705, "end": 1706, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1708, "end": 1716, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 1711, "end": 1716, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 1711, "end": 1714, "ctxt": 0 }, "kind": "any" } } } } } }, "init": null, "definite": false } ] }, { "type": "ExpressionStatement", "span": { "start": 1719, "end": 1729, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 1719, "end": 1728, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 1719, "end": 1722, "ctxt": 0 }, "value": "a18", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 1725, "end": 1728, "ctxt": 0 }, "value": "b18", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 1736, "end": 1746, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 1736, "end": 1745, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 1736, "end": 1739, "ctxt": 0 }, "value": "b18", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 1742, "end": 1745, "ctxt": 0 }, "value": "a18", "optional": false } } } ], "interpreter": null }