=== tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithCallSignatures2.ts === // checking subtype relations for function types as it relates to contextual signature instantiation class Base { foo: string; } >Base : Symbol(Base, Decl(subtypingWithCallSignatures2.ts, 0, 0)) >foo : Symbol(foo, Decl(subtypingWithCallSignatures2.ts, 2, 12)) class Derived extends Base { bar: string; } >Derived : Symbol(Derived, Decl(subtypingWithCallSignatures2.ts, 2, 27)) >Base : Symbol(Base, Decl(subtypingWithCallSignatures2.ts, 0, 0)) >bar : Symbol(bar, Decl(subtypingWithCallSignatures2.ts, 3, 28)) class Derived2 extends Derived { baz: string; } >Derived2 : Symbol(Derived2, Decl(subtypingWithCallSignatures2.ts, 3, 43)) >Derived : Symbol(Derived, Decl(subtypingWithCallSignatures2.ts, 2, 27)) >baz : Symbol(baz, Decl(subtypingWithCallSignatures2.ts, 4, 32)) class OtherDerived extends Base { bing: string; } >OtherDerived : Symbol(OtherDerived, Decl(subtypingWithCallSignatures2.ts, 4, 47)) >Base : Symbol(Base, Decl(subtypingWithCallSignatures2.ts, 0, 0)) >bing : Symbol(bing, Decl(subtypingWithCallSignatures2.ts, 5, 33)) declare function foo1(a: (x: number) => number[]): typeof a; >foo1 : Symbol(foo1, Decl(subtypingWithCallSignatures2.ts, 5, 49), Decl(subtypingWithCallSignatures2.ts, 7, 60)) >a : Symbol(a, Decl(subtypingWithCallSignatures2.ts, 7, 22)) >x : Symbol(x, Decl(subtypingWithCallSignatures2.ts, 7, 26)) >a : Symbol(a, Decl(subtypingWithCallSignatures2.ts, 7, 22)) declare function foo1(a: any): any; >foo1 : Symbol(foo1, Decl(subtypingWithCallSignatures2.ts, 5, 49), Decl(subtypingWithCallSignatures2.ts, 7, 60)) >a : Symbol(a, Decl(subtypingWithCallSignatures2.ts, 8, 22)) declare function foo2(a: (x: number) => string[]): typeof a; >foo2 : Symbol(foo2, Decl(subtypingWithCallSignatures2.ts, 8, 35), Decl(subtypingWithCallSignatures2.ts, 10, 60)) >a : Symbol(a, Decl(subtypingWithCallSignatures2.ts, 10, 22)) >x : Symbol(x, Decl(subtypingWithCallSignatures2.ts, 10, 26)) >a : Symbol(a, Decl(subtypingWithCallSignatures2.ts, 10, 22)) declare function foo2(a: any): any; >foo2 : Symbol(foo2, Decl(subtypingWithCallSignatures2.ts, 8, 35), Decl(subtypingWithCallSignatures2.ts, 10, 60)) >a : Symbol(a, Decl(subtypingWithCallSignatures2.ts, 11, 22)) declare function foo3(a: (x: number) => void): typeof a; >foo3 : Symbol(foo3, Decl(subtypingWithCallSignatures2.ts, 11, 35), Decl(subtypingWithCallSignatures2.ts, 13, 56)) >a : Symbol(a, Decl(subtypingWithCallSignatures2.ts, 13, 22)) >x : Symbol(x, Decl(subtypingWithCallSignatures2.ts, 13, 26)) >a : Symbol(a, Decl(subtypingWithCallSignatures2.ts, 13, 22)) declare function foo3(a: any): any; >foo3 : Symbol(foo3, Decl(subtypingWithCallSignatures2.ts, 11, 35), Decl(subtypingWithCallSignatures2.ts, 13, 56)) >a : Symbol(a, Decl(subtypingWithCallSignatures2.ts, 14, 22)) declare function foo4(a: (x: string, y: number) => string): typeof a; >foo4 : Symbol(foo4, Decl(subtypingWithCallSignatures2.ts, 14, 35), Decl(subtypingWithCallSignatures2.ts, 16, 69)) >a : Symbol(a, Decl(subtypingWithCallSignatures2.ts, 16, 22)) >x : Symbol(x, Decl(subtypingWithCallSignatures2.ts, 16, 26)) >y : Symbol(y, Decl(subtypingWithCallSignatures2.ts, 16, 36)) >a : Symbol(a, Decl(subtypingWithCallSignatures2.ts, 16, 22)) declare function foo4(a: any): any; >foo4 : Symbol(foo4, Decl(subtypingWithCallSignatures2.ts, 14, 35), Decl(subtypingWithCallSignatures2.ts, 16, 69)) >a : Symbol(a, Decl(subtypingWithCallSignatures2.ts, 17, 22)) declare function foo5(a: (x: (arg: string) => number) => string): typeof a; >foo5 : Symbol(foo5, Decl(subtypingWithCallSignatures2.ts, 17, 35), Decl(subtypingWithCallSignatures2.ts, 19, 75)) >a : Symbol(a, Decl(subtypingWithCallSignatures2.ts, 19, 22)) >x : Symbol(x, Decl(subtypingWithCallSignatures2.ts, 19, 26)) >arg : Symbol(arg, Decl(subtypingWithCallSignatures2.ts, 19, 30)) >a : Symbol(a, Decl(subtypingWithCallSignatures2.ts, 19, 22)) declare function foo5(a: any): any; >foo5 : Symbol(foo5, Decl(subtypingWithCallSignatures2.ts, 17, 35), Decl(subtypingWithCallSignatures2.ts, 19, 75)) >a : Symbol(a, Decl(subtypingWithCallSignatures2.ts, 20, 22)) declare function foo6(a: (x: (arg: Base) => Derived) => Base): typeof a; >foo6 : Symbol(foo6, Decl(subtypingWithCallSignatures2.ts, 20, 35), Decl(subtypingWithCallSignatures2.ts, 22, 72)) >a : Symbol(a, Decl(subtypingWithCallSignatures2.ts, 22, 22)) >x : Symbol(x, Decl(subtypingWithCallSignatures2.ts, 22, 26)) >arg : Symbol(arg, Decl(subtypingWithCallSignatures2.ts, 22, 30)) >Base : Symbol(Base, Decl(subtypingWithCallSignatures2.ts, 0, 0)) >Derived : Symbol(Derived, Decl(subtypingWithCallSignatures2.ts, 2, 27)) >Base : Symbol(Base, Decl(subtypingWithCallSignatures2.ts, 0, 0)) >a : Symbol(a, Decl(subtypingWithCallSignatures2.ts, 22, 22)) declare function foo6(a: any): any; >foo6 : Symbol(foo6, Decl(subtypingWithCallSignatures2.ts, 20, 35), Decl(subtypingWithCallSignatures2.ts, 22, 72)) >a : Symbol(a, Decl(subtypingWithCallSignatures2.ts, 23, 22)) declare function foo7(a: (x: (arg: Base) => Derived) => (r: Base) => Derived): typeof a; >foo7 : Symbol(foo7, Decl(subtypingWithCallSignatures2.ts, 23, 35), Decl(subtypingWithCallSignatures2.ts, 25, 88)) >a : Symbol(a, Decl(subtypingWithCallSignatures2.ts, 25, 22)) >x : Symbol(x, Decl(subtypingWithCallSignatures2.ts, 25, 26)) >arg : Symbol(arg, Decl(subtypingWithCallSignatures2.ts, 25, 30)) >Base : Symbol(Base, Decl(subtypingWithCallSignatures2.ts, 0, 0)) >Derived : Symbol(Derived, Decl(subtypingWithCallSignatures2.ts, 2, 27)) >r : Symbol(r, Decl(subtypingWithCallSignatures2.ts, 25, 57)) >Base : Symbol(Base, Decl(subtypingWithCallSignatures2.ts, 0, 0)) >Derived : Symbol(Derived, Decl(subtypingWithCallSignatures2.ts, 2, 27)) >a : Symbol(a, Decl(subtypingWithCallSignatures2.ts, 25, 22)) declare function foo7(a: any): any; >foo7 : Symbol(foo7, Decl(subtypingWithCallSignatures2.ts, 23, 35), Decl(subtypingWithCallSignatures2.ts, 25, 88)) >a : Symbol(a, Decl(subtypingWithCallSignatures2.ts, 26, 22)) declare function foo8(a: (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived): typeof a; >foo8 : Symbol(foo8, Decl(subtypingWithCallSignatures2.ts, 26, 35), Decl(subtypingWithCallSignatures2.ts, 28, 116)) >a : Symbol(a, Decl(subtypingWithCallSignatures2.ts, 28, 22)) >x : Symbol(x, Decl(subtypingWithCallSignatures2.ts, 28, 26)) >arg : Symbol(arg, Decl(subtypingWithCallSignatures2.ts, 28, 30)) >Base : Symbol(Base, Decl(subtypingWithCallSignatures2.ts, 0, 0)) >Derived : Symbol(Derived, Decl(subtypingWithCallSignatures2.ts, 2, 27)) >y : Symbol(y, Decl(subtypingWithCallSignatures2.ts, 28, 52)) >arg2 : Symbol(arg2, Decl(subtypingWithCallSignatures2.ts, 28, 57)) >Base : Symbol(Base, Decl(subtypingWithCallSignatures2.ts, 0, 0)) >Derived : Symbol(Derived, Decl(subtypingWithCallSignatures2.ts, 2, 27)) >r : Symbol(r, Decl(subtypingWithCallSignatures2.ts, 28, 85)) >Base : Symbol(Base, Decl(subtypingWithCallSignatures2.ts, 0, 0)) >Derived : Symbol(Derived, Decl(subtypingWithCallSignatures2.ts, 2, 27)) >a : Symbol(a, Decl(subtypingWithCallSignatures2.ts, 28, 22)) declare function foo8(a: any): any; >foo8 : Symbol(foo8, Decl(subtypingWithCallSignatures2.ts, 26, 35), Decl(subtypingWithCallSignatures2.ts, 28, 116)) >a : Symbol(a, Decl(subtypingWithCallSignatures2.ts, 29, 22)) declare function foo9(a: (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived): typeof a; >foo9 : Symbol(foo9, Decl(subtypingWithCallSignatures2.ts, 29, 35), Decl(subtypingWithCallSignatures2.ts, 31, 116)) >a : Symbol(a, Decl(subtypingWithCallSignatures2.ts, 31, 22)) >x : Symbol(x, Decl(subtypingWithCallSignatures2.ts, 31, 26)) >arg : Symbol(arg, Decl(subtypingWithCallSignatures2.ts, 31, 30)) >Base : Symbol(Base, Decl(subtypingWithCallSignatures2.ts, 0, 0)) >Derived : Symbol(Derived, Decl(subtypingWithCallSignatures2.ts, 2, 27)) >y : Symbol(y, Decl(subtypingWithCallSignatures2.ts, 31, 52)) >arg2 : Symbol(arg2, Decl(subtypingWithCallSignatures2.ts, 31, 57)) >Base : Symbol(Base, Decl(subtypingWithCallSignatures2.ts, 0, 0)) >Derived : Symbol(Derived, Decl(subtypingWithCallSignatures2.ts, 2, 27)) >r : Symbol(r, Decl(subtypingWithCallSignatures2.ts, 31, 85)) >Base : Symbol(Base, Decl(subtypingWithCallSignatures2.ts, 0, 0)) >Derived : Symbol(Derived, Decl(subtypingWithCallSignatures2.ts, 2, 27)) >a : Symbol(a, Decl(subtypingWithCallSignatures2.ts, 31, 22)) declare function foo9(a: any): any; >foo9 : Symbol(foo9, Decl(subtypingWithCallSignatures2.ts, 29, 35), Decl(subtypingWithCallSignatures2.ts, 31, 116)) >a : Symbol(a, Decl(subtypingWithCallSignatures2.ts, 32, 22)) declare function foo10(a: (...x: Derived[]) => Derived): typeof a; >foo10 : Symbol(foo10, Decl(subtypingWithCallSignatures2.ts, 32, 35), Decl(subtypingWithCallSignatures2.ts, 34, 66)) >a : Symbol(a, Decl(subtypingWithCallSignatures2.ts, 34, 23)) >x : Symbol(x, Decl(subtypingWithCallSignatures2.ts, 34, 27)) >Derived : Symbol(Derived, Decl(subtypingWithCallSignatures2.ts, 2, 27)) >Derived : Symbol(Derived, Decl(subtypingWithCallSignatures2.ts, 2, 27)) >a : Symbol(a, Decl(subtypingWithCallSignatures2.ts, 34, 23)) declare function foo10(a: any): any; >foo10 : Symbol(foo10, Decl(subtypingWithCallSignatures2.ts, 32, 35), Decl(subtypingWithCallSignatures2.ts, 34, 66)) >a : Symbol(a, Decl(subtypingWithCallSignatures2.ts, 35, 23)) declare function foo11(a: (x: { foo: string }, y: { foo: string; bar: string }) => Base): typeof a; >foo11 : Symbol(foo11, Decl(subtypingWithCallSignatures2.ts, 35, 36), Decl(subtypingWithCallSignatures2.ts, 37, 99)) >a : Symbol(a, Decl(subtypingWithCallSignatures2.ts, 37, 23)) >x : Symbol(x, Decl(subtypingWithCallSignatures2.ts, 37, 27)) >foo : Symbol(foo, Decl(subtypingWithCallSignatures2.ts, 37, 31)) >y : Symbol(y, Decl(subtypingWithCallSignatures2.ts, 37, 46)) >foo : Symbol(foo, Decl(subtypingWithCallSignatures2.ts, 37, 51)) >bar : Symbol(bar, Decl(subtypingWithCallSignatures2.ts, 37, 64)) >Base : Symbol(Base, Decl(subtypingWithCallSignatures2.ts, 0, 0)) >a : Symbol(a, Decl(subtypingWithCallSignatures2.ts, 37, 23)) declare function foo11(a: any): any; >foo11 : Symbol(foo11, Decl(subtypingWithCallSignatures2.ts, 35, 36), Decl(subtypingWithCallSignatures2.ts, 37, 99)) >a : Symbol(a, Decl(subtypingWithCallSignatures2.ts, 38, 23)) declare function foo12(a: (x: Array, y: Array) => Array): typeof a; >foo12 : Symbol(foo12, Decl(subtypingWithCallSignatures2.ts, 38, 36), Decl(subtypingWithCallSignatures2.ts, 40, 92)) >a : Symbol(a, Decl(subtypingWithCallSignatures2.ts, 40, 23)) >x : Symbol(x, Decl(subtypingWithCallSignatures2.ts, 40, 27)) >Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) >Base : Symbol(Base, Decl(subtypingWithCallSignatures2.ts, 0, 0)) >y : Symbol(y, Decl(subtypingWithCallSignatures2.ts, 40, 42)) >Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) >Derived2 : Symbol(Derived2, Decl(subtypingWithCallSignatures2.ts, 3, 43)) >Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) >Derived : Symbol(Derived, Decl(subtypingWithCallSignatures2.ts, 2, 27)) >a : Symbol(a, Decl(subtypingWithCallSignatures2.ts, 40, 23)) declare function foo12(a: any): any; >foo12 : Symbol(foo12, Decl(subtypingWithCallSignatures2.ts, 38, 36), Decl(subtypingWithCallSignatures2.ts, 40, 92)) >a : Symbol(a, Decl(subtypingWithCallSignatures2.ts, 41, 23)) declare function foo13(a: (x: Array, y: Array) => Array): typeof a; >foo13 : Symbol(foo13, Decl(subtypingWithCallSignatures2.ts, 41, 36), Decl(subtypingWithCallSignatures2.ts, 43, 91)) >a : Symbol(a, Decl(subtypingWithCallSignatures2.ts, 43, 23)) >x : Symbol(x, Decl(subtypingWithCallSignatures2.ts, 43, 27)) >Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) >Base : Symbol(Base, Decl(subtypingWithCallSignatures2.ts, 0, 0)) >y : Symbol(y, Decl(subtypingWithCallSignatures2.ts, 43, 42)) >Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) >Derived : Symbol(Derived, Decl(subtypingWithCallSignatures2.ts, 2, 27)) >Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) >Derived : Symbol(Derived, Decl(subtypingWithCallSignatures2.ts, 2, 27)) >a : Symbol(a, Decl(subtypingWithCallSignatures2.ts, 43, 23)) declare function foo13(a: any): any; >foo13 : Symbol(foo13, Decl(subtypingWithCallSignatures2.ts, 41, 36), Decl(subtypingWithCallSignatures2.ts, 43, 91)) >a : Symbol(a, Decl(subtypingWithCallSignatures2.ts, 44, 23)) declare function foo14(a: (x: { a: string; b: number }) => Object): typeof a; >foo14 : Symbol(foo14, Decl(subtypingWithCallSignatures2.ts, 44, 36), Decl(subtypingWithCallSignatures2.ts, 46, 77)) >a : Symbol(a, Decl(subtypingWithCallSignatures2.ts, 46, 23)) >x : Symbol(x, Decl(subtypingWithCallSignatures2.ts, 46, 27)) >a : Symbol(a, Decl(subtypingWithCallSignatures2.ts, 46, 31)) >b : Symbol(b, Decl(subtypingWithCallSignatures2.ts, 46, 42)) >Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) >a : Symbol(a, Decl(subtypingWithCallSignatures2.ts, 46, 23)) declare function foo14(a: any): any; >foo14 : Symbol(foo14, Decl(subtypingWithCallSignatures2.ts, 44, 36), Decl(subtypingWithCallSignatures2.ts, 46, 77)) >a : Symbol(a, Decl(subtypingWithCallSignatures2.ts, 47, 23)) declare function foo15(a: { >foo15 : Symbol(foo15, Decl(subtypingWithCallSignatures2.ts, 47, 36), Decl(subtypingWithCallSignatures2.ts, 52, 13)) >a : Symbol(a, Decl(subtypingWithCallSignatures2.ts, 49, 23)) (x: number): number[]; >x : Symbol(x, Decl(subtypingWithCallSignatures2.ts, 50, 5)) (x: string): string[]; >x : Symbol(x, Decl(subtypingWithCallSignatures2.ts, 51, 5)) }): typeof a; >a : Symbol(a, Decl(subtypingWithCallSignatures2.ts, 49, 23)) declare function foo15(a: any): any; >foo15 : Symbol(foo15, Decl(subtypingWithCallSignatures2.ts, 47, 36), Decl(subtypingWithCallSignatures2.ts, 52, 13)) >a : Symbol(a, Decl(subtypingWithCallSignatures2.ts, 53, 23)) declare function foo16(a: { >foo16 : Symbol(foo16, Decl(subtypingWithCallSignatures2.ts, 53, 36), Decl(subtypingWithCallSignatures2.ts, 58, 13)) >a : Symbol(a, Decl(subtypingWithCallSignatures2.ts, 55, 23)) (x: T): number[]; >T : Symbol(T, Decl(subtypingWithCallSignatures2.ts, 56, 5)) >Derived : Symbol(Derived, Decl(subtypingWithCallSignatures2.ts, 2, 27)) >x : Symbol(x, Decl(subtypingWithCallSignatures2.ts, 56, 24)) >T : Symbol(T, Decl(subtypingWithCallSignatures2.ts, 56, 5)) (x: U): number[]; >U : Symbol(U, Decl(subtypingWithCallSignatures2.ts, 57, 5)) >Base : Symbol(Base, Decl(subtypingWithCallSignatures2.ts, 0, 0)) >x : Symbol(x, Decl(subtypingWithCallSignatures2.ts, 57, 21)) >U : Symbol(U, Decl(subtypingWithCallSignatures2.ts, 57, 5)) }): typeof a; >a : Symbol(a, Decl(subtypingWithCallSignatures2.ts, 55, 23)) declare function foo16(a: any): any; >foo16 : Symbol(foo16, Decl(subtypingWithCallSignatures2.ts, 53, 36), Decl(subtypingWithCallSignatures2.ts, 58, 13)) >a : Symbol(a, Decl(subtypingWithCallSignatures2.ts, 59, 23)) declare function foo17(a: { >foo17 : Symbol(foo17, Decl(subtypingWithCallSignatures2.ts, 59, 36), Decl(subtypingWithCallSignatures2.ts, 64, 13)) >a : Symbol(a, Decl(subtypingWithCallSignatures2.ts, 61, 23)) (x: (a: number) => number): number[]; >x : Symbol(x, Decl(subtypingWithCallSignatures2.ts, 62, 5)) >a : Symbol(a, Decl(subtypingWithCallSignatures2.ts, 62, 9)) (x: (a: string) => string): string[]; >x : Symbol(x, Decl(subtypingWithCallSignatures2.ts, 63, 5)) >a : Symbol(a, Decl(subtypingWithCallSignatures2.ts, 63, 9)) }): typeof a; >a : Symbol(a, Decl(subtypingWithCallSignatures2.ts, 61, 23)) declare function foo17(a: any): any; >foo17 : Symbol(foo17, Decl(subtypingWithCallSignatures2.ts, 59, 36), Decl(subtypingWithCallSignatures2.ts, 64, 13)) >a : Symbol(a, Decl(subtypingWithCallSignatures2.ts, 65, 23)) declare function foo18(a: { >foo18 : Symbol(foo18, Decl(subtypingWithCallSignatures2.ts, 65, 36), Decl(subtypingWithCallSignatures2.ts, 76, 13)) >a : Symbol(a, Decl(subtypingWithCallSignatures2.ts, 67, 23)) (x: { >x : Symbol(x, Decl(subtypingWithCallSignatures2.ts, 68, 5)) (a: number): number; >a : Symbol(a, Decl(subtypingWithCallSignatures2.ts, 69, 9)) (a: string): string; >a : Symbol(a, Decl(subtypingWithCallSignatures2.ts, 70, 9)) }): any[]; (x: { >x : Symbol(x, Decl(subtypingWithCallSignatures2.ts, 72, 5)) (a: boolean): boolean; >a : Symbol(a, Decl(subtypingWithCallSignatures2.ts, 73, 9)) (a: Date): Date; >a : Symbol(a, Decl(subtypingWithCallSignatures2.ts, 74, 9)) >Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) >Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) }): any[]; }): typeof a; >a : Symbol(a, Decl(subtypingWithCallSignatures2.ts, 67, 23)) declare function foo18(a: any): any; >foo18 : Symbol(foo18, Decl(subtypingWithCallSignatures2.ts, 65, 36), Decl(subtypingWithCallSignatures2.ts, 76, 13)) >a : Symbol(a, Decl(subtypingWithCallSignatures2.ts, 77, 23)) var r1arg1 = (x: T) => [x]; >r1arg1 : Symbol(r1arg1, Decl(subtypingWithCallSignatures2.ts, 79, 3)) >T : Symbol(T, Decl(subtypingWithCallSignatures2.ts, 79, 14)) >x : Symbol(x, Decl(subtypingWithCallSignatures2.ts, 79, 17)) >T : Symbol(T, Decl(subtypingWithCallSignatures2.ts, 79, 14)) >x : Symbol(x, Decl(subtypingWithCallSignatures2.ts, 79, 17)) var r1arg2 = (x: number) => [1]; >r1arg2 : Symbol(r1arg2, Decl(subtypingWithCallSignatures2.ts, 80, 3)) >x : Symbol(x, Decl(subtypingWithCallSignatures2.ts, 80, 14)) var r1 = foo1(r1arg1); // any, return types are not subtype of first overload >r1 : Symbol(r1, Decl(subtypingWithCallSignatures2.ts, 81, 3)) >foo1 : Symbol(foo1, Decl(subtypingWithCallSignatures2.ts, 5, 49), Decl(subtypingWithCallSignatures2.ts, 7, 60)) >r1arg1 : Symbol(r1arg1, Decl(subtypingWithCallSignatures2.ts, 79, 3)) var r1a = [r1arg2, r1arg1]; // generic signature, subtype in both directions >r1a : Symbol(r1a, Decl(subtypingWithCallSignatures2.ts, 82, 3)) >r1arg2 : Symbol(r1arg2, Decl(subtypingWithCallSignatures2.ts, 80, 3)) >r1arg1 : Symbol(r1arg1, Decl(subtypingWithCallSignatures2.ts, 79, 3)) var r1b = [r1arg1, r1arg2]; // generic signature, subtype in both directions >r1b : Symbol(r1b, Decl(subtypingWithCallSignatures2.ts, 83, 3)) >r1arg1 : Symbol(r1arg1, Decl(subtypingWithCallSignatures2.ts, 79, 3)) >r1arg2 : Symbol(r1arg2, Decl(subtypingWithCallSignatures2.ts, 80, 3)) var r2arg1 = (x: T) => ['']; >r2arg1 : Symbol(r2arg1, Decl(subtypingWithCallSignatures2.ts, 85, 3)) >T : Symbol(T, Decl(subtypingWithCallSignatures2.ts, 85, 14)) >x : Symbol(x, Decl(subtypingWithCallSignatures2.ts, 85, 17)) >T : Symbol(T, Decl(subtypingWithCallSignatures2.ts, 85, 14)) var r2arg2 = (x: number) => ['']; >r2arg2 : Symbol(r2arg2, Decl(subtypingWithCallSignatures2.ts, 86, 3)) >x : Symbol(x, Decl(subtypingWithCallSignatures2.ts, 86, 14)) var r2 = foo2(r2arg1); >r2 : Symbol(r2, Decl(subtypingWithCallSignatures2.ts, 87, 3)) >foo2 : Symbol(foo2, Decl(subtypingWithCallSignatures2.ts, 8, 35), Decl(subtypingWithCallSignatures2.ts, 10, 60)) >r2arg1 : Symbol(r2arg1, Decl(subtypingWithCallSignatures2.ts, 85, 3)) var r2a = [r2arg1, r2arg2]; >r2a : Symbol(r2a, Decl(subtypingWithCallSignatures2.ts, 88, 3)) >r2arg1 : Symbol(r2arg1, Decl(subtypingWithCallSignatures2.ts, 85, 3)) >r2arg2 : Symbol(r2arg2, Decl(subtypingWithCallSignatures2.ts, 86, 3)) var r2b = [r2arg2, r2arg1]; >r2b : Symbol(r2b, Decl(subtypingWithCallSignatures2.ts, 89, 3)) >r2arg2 : Symbol(r2arg2, Decl(subtypingWithCallSignatures2.ts, 86, 3)) >r2arg1 : Symbol(r2arg1, Decl(subtypingWithCallSignatures2.ts, 85, 3)) var r3arg1 = (x: T) => x; >r3arg1 : Symbol(r3arg1, Decl(subtypingWithCallSignatures2.ts, 91, 3)) >T : Symbol(T, Decl(subtypingWithCallSignatures2.ts, 91, 14)) >x : Symbol(x, Decl(subtypingWithCallSignatures2.ts, 91, 17)) >T : Symbol(T, Decl(subtypingWithCallSignatures2.ts, 91, 14)) >x : Symbol(x, Decl(subtypingWithCallSignatures2.ts, 91, 17)) var r3arg2 = (x: number) => { }; >r3arg2 : Symbol(r3arg2, Decl(subtypingWithCallSignatures2.ts, 92, 3)) >x : Symbol(x, Decl(subtypingWithCallSignatures2.ts, 92, 14)) var r3 = foo3(r3arg1); >r3 : Symbol(r3, Decl(subtypingWithCallSignatures2.ts, 93, 3)) >foo3 : Symbol(foo3, Decl(subtypingWithCallSignatures2.ts, 11, 35), Decl(subtypingWithCallSignatures2.ts, 13, 56)) >r3arg1 : Symbol(r3arg1, Decl(subtypingWithCallSignatures2.ts, 91, 3)) var r3a = [r3arg1, r3arg2]; >r3a : Symbol(r3a, Decl(subtypingWithCallSignatures2.ts, 94, 3)) >r3arg1 : Symbol(r3arg1, Decl(subtypingWithCallSignatures2.ts, 91, 3)) >r3arg2 : Symbol(r3arg2, Decl(subtypingWithCallSignatures2.ts, 92, 3)) var r3b = [r3arg2, r3arg1]; >r3b : Symbol(r3b, Decl(subtypingWithCallSignatures2.ts, 95, 3)) >r3arg2 : Symbol(r3arg2, Decl(subtypingWithCallSignatures2.ts, 92, 3)) >r3arg1 : Symbol(r3arg1, Decl(subtypingWithCallSignatures2.ts, 91, 3)) var r4arg1 = (x: T, y: U) => x; >r4arg1 : Symbol(r4arg1, Decl(subtypingWithCallSignatures2.ts, 97, 3)) >T : Symbol(T, Decl(subtypingWithCallSignatures2.ts, 97, 14)) >U : Symbol(U, Decl(subtypingWithCallSignatures2.ts, 97, 16)) >x : Symbol(x, Decl(subtypingWithCallSignatures2.ts, 97, 20)) >T : Symbol(T, Decl(subtypingWithCallSignatures2.ts, 97, 14)) >y : Symbol(y, Decl(subtypingWithCallSignatures2.ts, 97, 25)) >U : Symbol(U, Decl(subtypingWithCallSignatures2.ts, 97, 16)) >x : Symbol(x, Decl(subtypingWithCallSignatures2.ts, 97, 20)) var r4arg2 = (x: string, y: number) => ''; >r4arg2 : Symbol(r4arg2, Decl(subtypingWithCallSignatures2.ts, 98, 3)) >x : Symbol(x, Decl(subtypingWithCallSignatures2.ts, 98, 14)) >y : Symbol(y, Decl(subtypingWithCallSignatures2.ts, 98, 24)) var r4 = foo4(r4arg1); // any >r4 : Symbol(r4, Decl(subtypingWithCallSignatures2.ts, 99, 3)) >foo4 : Symbol(foo4, Decl(subtypingWithCallSignatures2.ts, 14, 35), Decl(subtypingWithCallSignatures2.ts, 16, 69)) >r4arg1 : Symbol(r4arg1, Decl(subtypingWithCallSignatures2.ts, 97, 3)) var r4a = [r4arg1, r4arg2]; >r4a : Symbol(r4a, Decl(subtypingWithCallSignatures2.ts, 100, 3)) >r4arg1 : Symbol(r4arg1, Decl(subtypingWithCallSignatures2.ts, 97, 3)) >r4arg2 : Symbol(r4arg2, Decl(subtypingWithCallSignatures2.ts, 98, 3)) var r4b = [r4arg2, r4arg1]; >r4b : Symbol(r4b, Decl(subtypingWithCallSignatures2.ts, 101, 3)) >r4arg2 : Symbol(r4arg2, Decl(subtypingWithCallSignatures2.ts, 98, 3)) >r4arg1 : Symbol(r4arg1, Decl(subtypingWithCallSignatures2.ts, 97, 3)) var r5arg1 = (x: (arg: T) => U) => null; >r5arg1 : Symbol(r5arg1, Decl(subtypingWithCallSignatures2.ts, 103, 3)) >T : Symbol(T, Decl(subtypingWithCallSignatures2.ts, 103, 14)) >U : Symbol(U, Decl(subtypingWithCallSignatures2.ts, 103, 16)) >x : Symbol(x, Decl(subtypingWithCallSignatures2.ts, 103, 20)) >arg : Symbol(arg, Decl(subtypingWithCallSignatures2.ts, 103, 24)) >T : Symbol(T, Decl(subtypingWithCallSignatures2.ts, 103, 14)) >U : Symbol(U, Decl(subtypingWithCallSignatures2.ts, 103, 16)) >T : Symbol(T, Decl(subtypingWithCallSignatures2.ts, 103, 14)) var r5arg2 = (x: (arg: string) => number) => ''; >r5arg2 : Symbol(r5arg2, Decl(subtypingWithCallSignatures2.ts, 104, 3)) >x : Symbol(x, Decl(subtypingWithCallSignatures2.ts, 104, 14)) >arg : Symbol(arg, Decl(subtypingWithCallSignatures2.ts, 104, 18)) var r5 = foo5(r5arg1); // any >r5 : Symbol(r5, Decl(subtypingWithCallSignatures2.ts, 105, 3)) >foo5 : Symbol(foo5, Decl(subtypingWithCallSignatures2.ts, 17, 35), Decl(subtypingWithCallSignatures2.ts, 19, 75)) >r5arg1 : Symbol(r5arg1, Decl(subtypingWithCallSignatures2.ts, 103, 3)) var r5a = [r5arg1, r5arg2]; >r5a : Symbol(r5a, Decl(subtypingWithCallSignatures2.ts, 106, 3)) >r5arg1 : Symbol(r5arg1, Decl(subtypingWithCallSignatures2.ts, 103, 3)) >r5arg2 : Symbol(r5arg2, Decl(subtypingWithCallSignatures2.ts, 104, 3)) var r5b = [r5arg2, r5arg1]; >r5b : Symbol(r5b, Decl(subtypingWithCallSignatures2.ts, 107, 3)) >r5arg2 : Symbol(r5arg2, Decl(subtypingWithCallSignatures2.ts, 104, 3)) >r5arg1 : Symbol(r5arg1, Decl(subtypingWithCallSignatures2.ts, 103, 3)) var r6arg1 = (x: (arg: T) => U) => null; >r6arg1 : Symbol(r6arg1, Decl(subtypingWithCallSignatures2.ts, 109, 3)) >T : Symbol(T, Decl(subtypingWithCallSignatures2.ts, 109, 14)) >Base : Symbol(Base, Decl(subtypingWithCallSignatures2.ts, 0, 0)) >U : Symbol(U, Decl(subtypingWithCallSignatures2.ts, 109, 29)) >Derived : Symbol(Derived, Decl(subtypingWithCallSignatures2.ts, 2, 27)) >x : Symbol(x, Decl(subtypingWithCallSignatures2.ts, 109, 49)) >arg : Symbol(arg, Decl(subtypingWithCallSignatures2.ts, 109, 53)) >T : Symbol(T, Decl(subtypingWithCallSignatures2.ts, 109, 14)) >U : Symbol(U, Decl(subtypingWithCallSignatures2.ts, 109, 29)) >T : Symbol(T, Decl(subtypingWithCallSignatures2.ts, 109, 14)) var r6arg2 = (x: (arg: Base) => Derived) => null; >r6arg2 : Symbol(r6arg2, Decl(subtypingWithCallSignatures2.ts, 110, 3)) >x : Symbol(x, Decl(subtypingWithCallSignatures2.ts, 110, 14)) >arg : Symbol(arg, Decl(subtypingWithCallSignatures2.ts, 110, 18)) >Base : Symbol(Base, Decl(subtypingWithCallSignatures2.ts, 0, 0)) >Derived : Symbol(Derived, Decl(subtypingWithCallSignatures2.ts, 2, 27)) >Base : Symbol(Base, Decl(subtypingWithCallSignatures2.ts, 0, 0)) var r6 = foo6(r6arg1); // any >r6 : Symbol(r6, Decl(subtypingWithCallSignatures2.ts, 111, 3)) >foo6 : Symbol(foo6, Decl(subtypingWithCallSignatures2.ts, 20, 35), Decl(subtypingWithCallSignatures2.ts, 22, 72)) >r6arg1 : Symbol(r6arg1, Decl(subtypingWithCallSignatures2.ts, 109, 3)) var r6a = [r6arg1, r6arg2]; >r6a : Symbol(r6a, Decl(subtypingWithCallSignatures2.ts, 112, 3)) >r6arg1 : Symbol(r6arg1, Decl(subtypingWithCallSignatures2.ts, 109, 3)) >r6arg2 : Symbol(r6arg2, Decl(subtypingWithCallSignatures2.ts, 110, 3)) var r6b = [r6arg2, r6arg1]; >r6b : Symbol(r6b, Decl(subtypingWithCallSignatures2.ts, 113, 3)) >r6arg2 : Symbol(r6arg2, Decl(subtypingWithCallSignatures2.ts, 110, 3)) >r6arg1 : Symbol(r6arg1, Decl(subtypingWithCallSignatures2.ts, 109, 3)) var r7arg1 = (x: (arg: T) => U) => (r: T) => null; >r7arg1 : Symbol(r7arg1, Decl(subtypingWithCallSignatures2.ts, 115, 3)) >T : Symbol(T, Decl(subtypingWithCallSignatures2.ts, 115, 14)) >Base : Symbol(Base, Decl(subtypingWithCallSignatures2.ts, 0, 0)) >U : Symbol(U, Decl(subtypingWithCallSignatures2.ts, 115, 29)) >Derived : Symbol(Derived, Decl(subtypingWithCallSignatures2.ts, 2, 27)) >x : Symbol(x, Decl(subtypingWithCallSignatures2.ts, 115, 49)) >arg : Symbol(arg, Decl(subtypingWithCallSignatures2.ts, 115, 53)) >T : Symbol(T, Decl(subtypingWithCallSignatures2.ts, 115, 14)) >U : Symbol(U, Decl(subtypingWithCallSignatures2.ts, 115, 29)) >r : Symbol(r, Decl(subtypingWithCallSignatures2.ts, 115, 71)) >T : Symbol(T, Decl(subtypingWithCallSignatures2.ts, 115, 14)) >U : Symbol(U, Decl(subtypingWithCallSignatures2.ts, 115, 29)) var r7arg2 = (x: (arg: Base) => Derived) => (r: Base) => null; >r7arg2 : Symbol(r7arg2, Decl(subtypingWithCallSignatures2.ts, 116, 3)) >x : Symbol(x, Decl(subtypingWithCallSignatures2.ts, 116, 14)) >arg : Symbol(arg, Decl(subtypingWithCallSignatures2.ts, 116, 18)) >Base : Symbol(Base, Decl(subtypingWithCallSignatures2.ts, 0, 0)) >Derived : Symbol(Derived, Decl(subtypingWithCallSignatures2.ts, 2, 27)) >r : Symbol(r, Decl(subtypingWithCallSignatures2.ts, 116, 45)) >Base : Symbol(Base, Decl(subtypingWithCallSignatures2.ts, 0, 0)) >Derived : Symbol(Derived, Decl(subtypingWithCallSignatures2.ts, 2, 27)) var r7 = foo7(r7arg1); // any >r7 : Symbol(r7, Decl(subtypingWithCallSignatures2.ts, 117, 3)) >foo7 : Symbol(foo7, Decl(subtypingWithCallSignatures2.ts, 23, 35), Decl(subtypingWithCallSignatures2.ts, 25, 88)) >r7arg1 : Symbol(r7arg1, Decl(subtypingWithCallSignatures2.ts, 115, 3)) var r7a = [r7arg1, r7arg2]; >r7a : Symbol(r7a, Decl(subtypingWithCallSignatures2.ts, 118, 3)) >r7arg1 : Symbol(r7arg1, Decl(subtypingWithCallSignatures2.ts, 115, 3)) >r7arg2 : Symbol(r7arg2, Decl(subtypingWithCallSignatures2.ts, 116, 3)) var r7b = [r7arg2, r7arg1]; >r7b : Symbol(r7b, Decl(subtypingWithCallSignatures2.ts, 119, 3)) >r7arg2 : Symbol(r7arg2, Decl(subtypingWithCallSignatures2.ts, 116, 3)) >r7arg1 : Symbol(r7arg1, Decl(subtypingWithCallSignatures2.ts, 115, 3)) var r8arg1 = (x: (arg: T) => U, y: (arg2: T) => U) => (r: T) => null; >r8arg1 : Symbol(r8arg1, Decl(subtypingWithCallSignatures2.ts, 121, 3)) >T : Symbol(T, Decl(subtypingWithCallSignatures2.ts, 121, 14)) >Base : Symbol(Base, Decl(subtypingWithCallSignatures2.ts, 0, 0)) >U : Symbol(U, Decl(subtypingWithCallSignatures2.ts, 121, 29)) >Derived : Symbol(Derived, Decl(subtypingWithCallSignatures2.ts, 2, 27)) >x : Symbol(x, Decl(subtypingWithCallSignatures2.ts, 121, 49)) >arg : Symbol(arg, Decl(subtypingWithCallSignatures2.ts, 121, 53)) >T : Symbol(T, Decl(subtypingWithCallSignatures2.ts, 121, 14)) >U : Symbol(U, Decl(subtypingWithCallSignatures2.ts, 121, 29)) >y : Symbol(y, Decl(subtypingWithCallSignatures2.ts, 121, 66)) >arg2 : Symbol(arg2, Decl(subtypingWithCallSignatures2.ts, 121, 71)) >T : Symbol(T, Decl(subtypingWithCallSignatures2.ts, 121, 14)) >U : Symbol(U, Decl(subtypingWithCallSignatures2.ts, 121, 29)) >r : Symbol(r, Decl(subtypingWithCallSignatures2.ts, 121, 90)) >T : Symbol(T, Decl(subtypingWithCallSignatures2.ts, 121, 14)) >U : Symbol(U, Decl(subtypingWithCallSignatures2.ts, 121, 29)) var r8arg2 = (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => null; >r8arg2 : Symbol(r8arg2, Decl(subtypingWithCallSignatures2.ts, 122, 3)) >x : Symbol(x, Decl(subtypingWithCallSignatures2.ts, 122, 14)) >arg : Symbol(arg, Decl(subtypingWithCallSignatures2.ts, 122, 18)) >Base : Symbol(Base, Decl(subtypingWithCallSignatures2.ts, 0, 0)) >Derived : Symbol(Derived, Decl(subtypingWithCallSignatures2.ts, 2, 27)) >y : Symbol(y, Decl(subtypingWithCallSignatures2.ts, 122, 40)) >arg2 : Symbol(arg2, Decl(subtypingWithCallSignatures2.ts, 122, 45)) >Base : Symbol(Base, Decl(subtypingWithCallSignatures2.ts, 0, 0)) >Derived : Symbol(Derived, Decl(subtypingWithCallSignatures2.ts, 2, 27)) >r : Symbol(r, Decl(subtypingWithCallSignatures2.ts, 122, 73)) >Base : Symbol(Base, Decl(subtypingWithCallSignatures2.ts, 0, 0)) >Derived : Symbol(Derived, Decl(subtypingWithCallSignatures2.ts, 2, 27)) var r8 = foo8(r8arg1); // any >r8 : Symbol(r8, Decl(subtypingWithCallSignatures2.ts, 123, 3)) >foo8 : Symbol(foo8, Decl(subtypingWithCallSignatures2.ts, 26, 35), Decl(subtypingWithCallSignatures2.ts, 28, 116)) >r8arg1 : Symbol(r8arg1, Decl(subtypingWithCallSignatures2.ts, 121, 3)) var r8a = [r8arg1, r8arg2]; >r8a : Symbol(r8a, Decl(subtypingWithCallSignatures2.ts, 124, 3)) >r8arg1 : Symbol(r8arg1, Decl(subtypingWithCallSignatures2.ts, 121, 3)) >r8arg2 : Symbol(r8arg2, Decl(subtypingWithCallSignatures2.ts, 122, 3)) var r8b = [r8arg2, r8arg1]; >r8b : Symbol(r8b, Decl(subtypingWithCallSignatures2.ts, 125, 3)) >r8arg2 : Symbol(r8arg2, Decl(subtypingWithCallSignatures2.ts, 122, 3)) >r8arg1 : Symbol(r8arg1, Decl(subtypingWithCallSignatures2.ts, 121, 3)) var r9arg1 = (x: (arg: T) => U, y: (arg2: { foo: string; bing: number }) => U) => (r: T) => null; >r9arg1 : Symbol(r9arg1, Decl(subtypingWithCallSignatures2.ts, 127, 3)) >T : Symbol(T, Decl(subtypingWithCallSignatures2.ts, 127, 14)) >Base : Symbol(Base, Decl(subtypingWithCallSignatures2.ts, 0, 0)) >U : Symbol(U, Decl(subtypingWithCallSignatures2.ts, 127, 29)) >Derived : Symbol(Derived, Decl(subtypingWithCallSignatures2.ts, 2, 27)) >x : Symbol(x, Decl(subtypingWithCallSignatures2.ts, 127, 49)) >arg : Symbol(arg, Decl(subtypingWithCallSignatures2.ts, 127, 53)) >T : Symbol(T, Decl(subtypingWithCallSignatures2.ts, 127, 14)) >U : Symbol(U, Decl(subtypingWithCallSignatures2.ts, 127, 29)) >y : Symbol(y, Decl(subtypingWithCallSignatures2.ts, 127, 66)) >arg2 : Symbol(arg2, Decl(subtypingWithCallSignatures2.ts, 127, 71)) >foo : Symbol(foo, Decl(subtypingWithCallSignatures2.ts, 127, 78)) >bing : Symbol(bing, Decl(subtypingWithCallSignatures2.ts, 127, 91)) >U : Symbol(U, Decl(subtypingWithCallSignatures2.ts, 127, 29)) >r : Symbol(r, Decl(subtypingWithCallSignatures2.ts, 127, 118)) >T : Symbol(T, Decl(subtypingWithCallSignatures2.ts, 127, 14)) >U : Symbol(U, Decl(subtypingWithCallSignatures2.ts, 127, 29)) var r9arg2 = (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => null; >r9arg2 : Symbol(r9arg2, Decl(subtypingWithCallSignatures2.ts, 128, 3)) >x : Symbol(x, Decl(subtypingWithCallSignatures2.ts, 128, 14)) >arg : Symbol(arg, Decl(subtypingWithCallSignatures2.ts, 128, 18)) >Base : Symbol(Base, Decl(subtypingWithCallSignatures2.ts, 0, 0)) >Derived : Symbol(Derived, Decl(subtypingWithCallSignatures2.ts, 2, 27)) >y : Symbol(y, Decl(subtypingWithCallSignatures2.ts, 128, 40)) >arg2 : Symbol(arg2, Decl(subtypingWithCallSignatures2.ts, 128, 45)) >Base : Symbol(Base, Decl(subtypingWithCallSignatures2.ts, 0, 0)) >Derived : Symbol(Derived, Decl(subtypingWithCallSignatures2.ts, 2, 27)) >r : Symbol(r, Decl(subtypingWithCallSignatures2.ts, 128, 73)) >Base : Symbol(Base, Decl(subtypingWithCallSignatures2.ts, 0, 0)) >Derived : Symbol(Derived, Decl(subtypingWithCallSignatures2.ts, 2, 27)) var r9 = foo9(r9arg1); // any >r9 : Symbol(r9, Decl(subtypingWithCallSignatures2.ts, 129, 3)) >foo9 : Symbol(foo9, Decl(subtypingWithCallSignatures2.ts, 29, 35), Decl(subtypingWithCallSignatures2.ts, 31, 116)) >r9arg1 : Symbol(r9arg1, Decl(subtypingWithCallSignatures2.ts, 127, 3)) var r9a = [r9arg1, r9arg2]; >r9a : Symbol(r9a, Decl(subtypingWithCallSignatures2.ts, 130, 3)) >r9arg1 : Symbol(r9arg1, Decl(subtypingWithCallSignatures2.ts, 127, 3)) >r9arg2 : Symbol(r9arg2, Decl(subtypingWithCallSignatures2.ts, 128, 3)) var r9b = [r9arg2, r9arg1]; >r9b : Symbol(r9b, Decl(subtypingWithCallSignatures2.ts, 131, 3)) >r9arg2 : Symbol(r9arg2, Decl(subtypingWithCallSignatures2.ts, 128, 3)) >r9arg1 : Symbol(r9arg1, Decl(subtypingWithCallSignatures2.ts, 127, 3)) var r10arg1 = (...x: T[]) => x[0]; >r10arg1 : Symbol(r10arg1, Decl(subtypingWithCallSignatures2.ts, 133, 3)) >T : Symbol(T, Decl(subtypingWithCallSignatures2.ts, 133, 15)) >Derived : Symbol(Derived, Decl(subtypingWithCallSignatures2.ts, 2, 27)) >x : Symbol(x, Decl(subtypingWithCallSignatures2.ts, 133, 34)) >T : Symbol(T, Decl(subtypingWithCallSignatures2.ts, 133, 15)) >x : Symbol(x, Decl(subtypingWithCallSignatures2.ts, 133, 34)) var r10arg2 = (...x: Derived[]) => null; >r10arg2 : Symbol(r10arg2, Decl(subtypingWithCallSignatures2.ts, 134, 3)) >x : Symbol(x, Decl(subtypingWithCallSignatures2.ts, 134, 15)) >Derived : Symbol(Derived, Decl(subtypingWithCallSignatures2.ts, 2, 27)) >Derived : Symbol(Derived, Decl(subtypingWithCallSignatures2.ts, 2, 27)) var r10 = foo10(r10arg1); // any >r10 : Symbol(r10, Decl(subtypingWithCallSignatures2.ts, 135, 3)) >foo10 : Symbol(foo10, Decl(subtypingWithCallSignatures2.ts, 32, 35), Decl(subtypingWithCallSignatures2.ts, 34, 66)) >r10arg1 : Symbol(r10arg1, Decl(subtypingWithCallSignatures2.ts, 133, 3)) var r10a = [r10arg1, r10arg2]; >r10a : Symbol(r10a, Decl(subtypingWithCallSignatures2.ts, 136, 3)) >r10arg1 : Symbol(r10arg1, Decl(subtypingWithCallSignatures2.ts, 133, 3)) >r10arg2 : Symbol(r10arg2, Decl(subtypingWithCallSignatures2.ts, 134, 3)) var r10b = [r10arg2, r10arg1]; >r10b : Symbol(r10b, Decl(subtypingWithCallSignatures2.ts, 137, 3)) >r10arg2 : Symbol(r10arg2, Decl(subtypingWithCallSignatures2.ts, 134, 3)) >r10arg1 : Symbol(r10arg1, Decl(subtypingWithCallSignatures2.ts, 133, 3)) var r11arg1 = (x: T, y: T) => x; >r11arg1 : Symbol(r11arg1, Decl(subtypingWithCallSignatures2.ts, 139, 3)) >T : Symbol(T, Decl(subtypingWithCallSignatures2.ts, 139, 15)) >Base : Symbol(Base, Decl(subtypingWithCallSignatures2.ts, 0, 0)) >x : Symbol(x, Decl(subtypingWithCallSignatures2.ts, 139, 31)) >T : Symbol(T, Decl(subtypingWithCallSignatures2.ts, 139, 15)) >y : Symbol(y, Decl(subtypingWithCallSignatures2.ts, 139, 36)) >T : Symbol(T, Decl(subtypingWithCallSignatures2.ts, 139, 15)) >x : Symbol(x, Decl(subtypingWithCallSignatures2.ts, 139, 31)) var r11arg2 = (x: { foo: string }, y: { foo: string; bar: string }) => null; >r11arg2 : Symbol(r11arg2, Decl(subtypingWithCallSignatures2.ts, 140, 3)) >x : Symbol(x, Decl(subtypingWithCallSignatures2.ts, 140, 15)) >foo : Symbol(foo, Decl(subtypingWithCallSignatures2.ts, 140, 19)) >y : Symbol(y, Decl(subtypingWithCallSignatures2.ts, 140, 34)) >foo : Symbol(foo, Decl(subtypingWithCallSignatures2.ts, 140, 39)) >bar : Symbol(bar, Decl(subtypingWithCallSignatures2.ts, 140, 52)) >Base : Symbol(Base, Decl(subtypingWithCallSignatures2.ts, 0, 0)) var r11 = foo11(r11arg1); // any >r11 : Symbol(r11, Decl(subtypingWithCallSignatures2.ts, 141, 3)) >foo11 : Symbol(foo11, Decl(subtypingWithCallSignatures2.ts, 35, 36), Decl(subtypingWithCallSignatures2.ts, 37, 99)) >r11arg1 : Symbol(r11arg1, Decl(subtypingWithCallSignatures2.ts, 139, 3)) var r11a = [r11arg1, r11arg2]; >r11a : Symbol(r11a, Decl(subtypingWithCallSignatures2.ts, 142, 3)) >r11arg1 : Symbol(r11arg1, Decl(subtypingWithCallSignatures2.ts, 139, 3)) >r11arg2 : Symbol(r11arg2, Decl(subtypingWithCallSignatures2.ts, 140, 3)) var r11b = [r11arg2, r11arg1]; >r11b : Symbol(r11b, Decl(subtypingWithCallSignatures2.ts, 143, 3)) >r11arg2 : Symbol(r11arg2, Decl(subtypingWithCallSignatures2.ts, 140, 3)) >r11arg1 : Symbol(r11arg1, Decl(subtypingWithCallSignatures2.ts, 139, 3)) var r12arg1 = >(x: Array, y: T) => >null; >r12arg1 : Symbol(r12arg1, Decl(subtypingWithCallSignatures2.ts, 145, 3)) >T : Symbol(T, Decl(subtypingWithCallSignatures2.ts, 145, 15)) >Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) >Base : Symbol(Base, Decl(subtypingWithCallSignatures2.ts, 0, 0)) >x : Symbol(x, Decl(subtypingWithCallSignatures2.ts, 145, 38)) >Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) >Base : Symbol(Base, Decl(subtypingWithCallSignatures2.ts, 0, 0)) >y : Symbol(y, Decl(subtypingWithCallSignatures2.ts, 145, 53)) >T : Symbol(T, Decl(subtypingWithCallSignatures2.ts, 145, 15)) >Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) >Derived : Symbol(Derived, Decl(subtypingWithCallSignatures2.ts, 2, 27)) var r12arg2 = (x: Array, y: Array) => >null; >r12arg2 : Symbol(r12arg2, Decl(subtypingWithCallSignatures2.ts, 146, 3)) >x : Symbol(x, Decl(subtypingWithCallSignatures2.ts, 146, 15)) >Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) >Base : Symbol(Base, Decl(subtypingWithCallSignatures2.ts, 0, 0)) >y : Symbol(y, Decl(subtypingWithCallSignatures2.ts, 146, 30)) >Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) >Derived2 : Symbol(Derived2, Decl(subtypingWithCallSignatures2.ts, 3, 43)) >Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) >Derived : Symbol(Derived, Decl(subtypingWithCallSignatures2.ts, 2, 27)) var r12 = foo12(r12arg1); // any >r12 : Symbol(r12, Decl(subtypingWithCallSignatures2.ts, 147, 3)) >foo12 : Symbol(foo12, Decl(subtypingWithCallSignatures2.ts, 38, 36), Decl(subtypingWithCallSignatures2.ts, 40, 92)) >r12arg1 : Symbol(r12arg1, Decl(subtypingWithCallSignatures2.ts, 145, 3)) var r12a = [r12arg1, r12arg2]; >r12a : Symbol(r12a, Decl(subtypingWithCallSignatures2.ts, 148, 3)) >r12arg1 : Symbol(r12arg1, Decl(subtypingWithCallSignatures2.ts, 145, 3)) >r12arg2 : Symbol(r12arg2, Decl(subtypingWithCallSignatures2.ts, 146, 3)) var r12b = [r12arg2, r12arg1]; >r12b : Symbol(r12b, Decl(subtypingWithCallSignatures2.ts, 149, 3)) >r12arg2 : Symbol(r12arg2, Decl(subtypingWithCallSignatures2.ts, 146, 3)) >r12arg1 : Symbol(r12arg1, Decl(subtypingWithCallSignatures2.ts, 145, 3)) var r13arg1 = >(x: Array, y: T) => y; >r13arg1 : Symbol(r13arg1, Decl(subtypingWithCallSignatures2.ts, 151, 3)) >T : Symbol(T, Decl(subtypingWithCallSignatures2.ts, 151, 15)) >Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) >Derived : Symbol(Derived, Decl(subtypingWithCallSignatures2.ts, 2, 27)) >x : Symbol(x, Decl(subtypingWithCallSignatures2.ts, 151, 41)) >Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) >Base : Symbol(Base, Decl(subtypingWithCallSignatures2.ts, 0, 0)) >y : Symbol(y, Decl(subtypingWithCallSignatures2.ts, 151, 56)) >T : Symbol(T, Decl(subtypingWithCallSignatures2.ts, 151, 15)) >y : Symbol(y, Decl(subtypingWithCallSignatures2.ts, 151, 56)) var r13arg2 = (x: Array, y: Array) => >null; >r13arg2 : Symbol(r13arg2, Decl(subtypingWithCallSignatures2.ts, 152, 3)) >x : Symbol(x, Decl(subtypingWithCallSignatures2.ts, 152, 15)) >Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) >Base : Symbol(Base, Decl(subtypingWithCallSignatures2.ts, 0, 0)) >y : Symbol(y, Decl(subtypingWithCallSignatures2.ts, 152, 30)) >Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) >Derived : Symbol(Derived, Decl(subtypingWithCallSignatures2.ts, 2, 27)) >Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) >Derived : Symbol(Derived, Decl(subtypingWithCallSignatures2.ts, 2, 27)) var r13 = foo13(r13arg1); // any >r13 : Symbol(r13, Decl(subtypingWithCallSignatures2.ts, 153, 3)) >foo13 : Symbol(foo13, Decl(subtypingWithCallSignatures2.ts, 41, 36), Decl(subtypingWithCallSignatures2.ts, 43, 91)) >r13arg1 : Symbol(r13arg1, Decl(subtypingWithCallSignatures2.ts, 151, 3)) var r13a = [r13arg1, r13arg2]; >r13a : Symbol(r13a, Decl(subtypingWithCallSignatures2.ts, 154, 3)) >r13arg1 : Symbol(r13arg1, Decl(subtypingWithCallSignatures2.ts, 151, 3)) >r13arg2 : Symbol(r13arg2, Decl(subtypingWithCallSignatures2.ts, 152, 3)) var r13b = [r13arg2, r13arg1]; >r13b : Symbol(r13b, Decl(subtypingWithCallSignatures2.ts, 155, 3)) >r13arg2 : Symbol(r13arg2, Decl(subtypingWithCallSignatures2.ts, 152, 3)) >r13arg1 : Symbol(r13arg1, Decl(subtypingWithCallSignatures2.ts, 151, 3)) var r14arg1 = (x: { a: T; b: T }) => x.a; >r14arg1 : Symbol(r14arg1, Decl(subtypingWithCallSignatures2.ts, 157, 3)) >T : Symbol(T, Decl(subtypingWithCallSignatures2.ts, 157, 15)) >x : Symbol(x, Decl(subtypingWithCallSignatures2.ts, 157, 18)) >a : Symbol(a, Decl(subtypingWithCallSignatures2.ts, 157, 22)) >T : Symbol(T, Decl(subtypingWithCallSignatures2.ts, 157, 15)) >b : Symbol(b, Decl(subtypingWithCallSignatures2.ts, 157, 28)) >T : Symbol(T, Decl(subtypingWithCallSignatures2.ts, 157, 15)) >x.a : Symbol(a, Decl(subtypingWithCallSignatures2.ts, 157, 22)) >x : Symbol(x, Decl(subtypingWithCallSignatures2.ts, 157, 18)) >a : Symbol(a, Decl(subtypingWithCallSignatures2.ts, 157, 22)) var r14arg2 = (x: { a: string; b: number }) => null; >r14arg2 : Symbol(r14arg2, Decl(subtypingWithCallSignatures2.ts, 158, 3)) >x : Symbol(x, Decl(subtypingWithCallSignatures2.ts, 158, 15)) >a : Symbol(a, Decl(subtypingWithCallSignatures2.ts, 158, 19)) >b : Symbol(b, Decl(subtypingWithCallSignatures2.ts, 158, 30)) >Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) var r14 = foo14(r14arg1); // any >r14 : Symbol(r14, Decl(subtypingWithCallSignatures2.ts, 159, 3)) >foo14 : Symbol(foo14, Decl(subtypingWithCallSignatures2.ts, 44, 36), Decl(subtypingWithCallSignatures2.ts, 46, 77)) >r14arg1 : Symbol(r14arg1, Decl(subtypingWithCallSignatures2.ts, 157, 3)) var r14a = [r14arg1, r14arg2]; >r14a : Symbol(r14a, Decl(subtypingWithCallSignatures2.ts, 160, 3)) >r14arg1 : Symbol(r14arg1, Decl(subtypingWithCallSignatures2.ts, 157, 3)) >r14arg2 : Symbol(r14arg2, Decl(subtypingWithCallSignatures2.ts, 158, 3)) var r14b = [r14arg2, r14arg1]; >r14b : Symbol(r14b, Decl(subtypingWithCallSignatures2.ts, 161, 3)) >r14arg2 : Symbol(r14arg2, Decl(subtypingWithCallSignatures2.ts, 158, 3)) >r14arg1 : Symbol(r14arg1, Decl(subtypingWithCallSignatures2.ts, 157, 3)) var r15arg1 = (x: T) => null >r15arg1 : Symbol(r15arg1, Decl(subtypingWithCallSignatures2.ts, 163, 3)) >T : Symbol(T, Decl(subtypingWithCallSignatures2.ts, 163, 15)) >x : Symbol(x, Decl(subtypingWithCallSignatures2.ts, 163, 18)) >T : Symbol(T, Decl(subtypingWithCallSignatures2.ts, 163, 15)) >T : Symbol(T, Decl(subtypingWithCallSignatures2.ts, 163, 15)) var r15 = foo15(r15arg1); // any >r15 : Symbol(r15, Decl(subtypingWithCallSignatures2.ts, 164, 3)) >foo15 : Symbol(foo15, Decl(subtypingWithCallSignatures2.ts, 47, 36), Decl(subtypingWithCallSignatures2.ts, 52, 13)) >r15arg1 : Symbol(r15arg1, Decl(subtypingWithCallSignatures2.ts, 163, 3)) var r16arg1 = (x: T) => [1]; >r16arg1 : Symbol(r16arg1, Decl(subtypingWithCallSignatures2.ts, 165, 3)) >T : Symbol(T, Decl(subtypingWithCallSignatures2.ts, 165, 15)) >Base : Symbol(Base, Decl(subtypingWithCallSignatures2.ts, 0, 0)) >x : Symbol(x, Decl(subtypingWithCallSignatures2.ts, 165, 31)) >T : Symbol(T, Decl(subtypingWithCallSignatures2.ts, 165, 15)) var r16 = foo16(r16arg1); >r16 : Symbol(r16, Decl(subtypingWithCallSignatures2.ts, 166, 3)) >foo16 : Symbol(foo16, Decl(subtypingWithCallSignatures2.ts, 53, 36), Decl(subtypingWithCallSignatures2.ts, 58, 13)) >r16arg1 : Symbol(r16arg1, Decl(subtypingWithCallSignatures2.ts, 165, 3)) var r17arg1 = (x: (a: T) => T) => null; >r17arg1 : Symbol(r17arg1, Decl(subtypingWithCallSignatures2.ts, 167, 3)) >T : Symbol(T, Decl(subtypingWithCallSignatures2.ts, 167, 15)) >x : Symbol(x, Decl(subtypingWithCallSignatures2.ts, 167, 18)) >a : Symbol(a, Decl(subtypingWithCallSignatures2.ts, 167, 22)) >T : Symbol(T, Decl(subtypingWithCallSignatures2.ts, 167, 15)) >T : Symbol(T, Decl(subtypingWithCallSignatures2.ts, 167, 15)) >T : Symbol(T, Decl(subtypingWithCallSignatures2.ts, 167, 15)) var r17 = foo17(r17arg1); // any >r17 : Symbol(r17, Decl(subtypingWithCallSignatures2.ts, 168, 3)) >foo17 : Symbol(foo17, Decl(subtypingWithCallSignatures2.ts, 59, 36), Decl(subtypingWithCallSignatures2.ts, 64, 13)) >r17arg1 : Symbol(r17arg1, Decl(subtypingWithCallSignatures2.ts, 167, 3)) var r18arg1 = (x: (a: T) => T) => null; >r18arg1 : Symbol(r18arg1, Decl(subtypingWithCallSignatures2.ts, 169, 3)) >T : Symbol(T, Decl(subtypingWithCallSignatures2.ts, 169, 15)) >x : Symbol(x, Decl(subtypingWithCallSignatures2.ts, 169, 18)) >a : Symbol(a, Decl(subtypingWithCallSignatures2.ts, 169, 22)) >T : Symbol(T, Decl(subtypingWithCallSignatures2.ts, 169, 15)) >T : Symbol(T, Decl(subtypingWithCallSignatures2.ts, 169, 15)) >T : Symbol(T, Decl(subtypingWithCallSignatures2.ts, 169, 15)) var r18 = foo18(r18arg1); >r18 : Symbol(r18, Decl(subtypingWithCallSignatures2.ts, 170, 3)) >foo18 : Symbol(foo18, Decl(subtypingWithCallSignatures2.ts, 65, 36), Decl(subtypingWithCallSignatures2.ts, 76, 13)) >r18arg1 : Symbol(r18arg1, Decl(subtypingWithCallSignatures2.ts, 169, 3))