=== tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithCallSignatures.ts === module CallSignature { >CallSignature : Symbol(CallSignature, Decl(subtypingWithCallSignatures.ts, 0, 0)) declare function foo1(cb: (x: number) => void): typeof cb; >foo1 : Symbol(foo1, Decl(subtypingWithCallSignatures.ts, 0, 22), Decl(subtypingWithCallSignatures.ts, 1, 62)) >cb : Symbol(cb, Decl(subtypingWithCallSignatures.ts, 1, 26)) >x : Symbol(x, Decl(subtypingWithCallSignatures.ts, 1, 31)) >cb : Symbol(cb, Decl(subtypingWithCallSignatures.ts, 1, 26)) declare function foo1(cb: any): any; >foo1 : Symbol(foo1, Decl(subtypingWithCallSignatures.ts, 0, 22), Decl(subtypingWithCallSignatures.ts, 1, 62)) >cb : Symbol(cb, Decl(subtypingWithCallSignatures.ts, 2, 26)) var r = foo1((x: number) => 1); // ok because base returns void >r : Symbol(r, Decl(subtypingWithCallSignatures.ts, 3, 7)) >foo1 : Symbol(foo1, Decl(subtypingWithCallSignatures.ts, 0, 22), Decl(subtypingWithCallSignatures.ts, 1, 62)) >x : Symbol(x, Decl(subtypingWithCallSignatures.ts, 3, 18)) var r2 = foo1((x: T) => ''); // ok because base returns void >r2 : Symbol(r2, Decl(subtypingWithCallSignatures.ts, 4, 7)) >foo1 : Symbol(foo1, Decl(subtypingWithCallSignatures.ts, 0, 22), Decl(subtypingWithCallSignatures.ts, 1, 62)) >T : Symbol(T, Decl(subtypingWithCallSignatures.ts, 4, 19)) >x : Symbol(x, Decl(subtypingWithCallSignatures.ts, 4, 22)) >T : Symbol(T, Decl(subtypingWithCallSignatures.ts, 4, 19)) declare function foo2(cb: (x: number, y: number) => void): typeof cb; >foo2 : Symbol(foo2, Decl(subtypingWithCallSignatures.ts, 4, 35), Decl(subtypingWithCallSignatures.ts, 6, 73)) >cb : Symbol(cb, Decl(subtypingWithCallSignatures.ts, 6, 26)) >x : Symbol(x, Decl(subtypingWithCallSignatures.ts, 6, 31)) >y : Symbol(y, Decl(subtypingWithCallSignatures.ts, 6, 41)) >cb : Symbol(cb, Decl(subtypingWithCallSignatures.ts, 6, 26)) declare function foo2(cb: any): any; >foo2 : Symbol(foo2, Decl(subtypingWithCallSignatures.ts, 4, 35), Decl(subtypingWithCallSignatures.ts, 6, 73)) >cb : Symbol(cb, Decl(subtypingWithCallSignatures.ts, 7, 26)) var r3 = foo2((x: number, y: number) => 1); // ok because base returns void >r3 : Symbol(r3, Decl(subtypingWithCallSignatures.ts, 8, 7)) >foo2 : Symbol(foo2, Decl(subtypingWithCallSignatures.ts, 4, 35), Decl(subtypingWithCallSignatures.ts, 6, 73)) >x : Symbol(x, Decl(subtypingWithCallSignatures.ts, 8, 19)) >y : Symbol(y, Decl(subtypingWithCallSignatures.ts, 8, 29)) var r4 = foo2((x: T) => ''); // ok because base returns void >r4 : Symbol(r4, Decl(subtypingWithCallSignatures.ts, 9, 7)) >foo2 : Symbol(foo2, Decl(subtypingWithCallSignatures.ts, 4, 35), Decl(subtypingWithCallSignatures.ts, 6, 73)) >T : Symbol(T, Decl(subtypingWithCallSignatures.ts, 9, 19)) >x : Symbol(x, Decl(subtypingWithCallSignatures.ts, 9, 22)) >T : Symbol(T, Decl(subtypingWithCallSignatures.ts, 9, 19)) }