=== tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignatures5.ts === // checking assignment compat for function types. No errors in this file class Base { foo: string; } >Base : Base, Symbol(Base, Decl(assignmentCompatWithCallSignatures5.ts, 0, 0)) >foo : string, Symbol(foo, Decl(assignmentCompatWithCallSignatures5.ts, 2, 12)) class Derived extends Base { bar: string; } >Derived : Derived, Symbol(Derived, Decl(assignmentCompatWithCallSignatures5.ts, 2, 27)) >Base : Base, Symbol(Base, Decl(assignmentCompatWithCallSignatures5.ts, 0, 0)) >bar : string, Symbol(bar, Decl(assignmentCompatWithCallSignatures5.ts, 3, 28)) class Derived2 extends Derived { baz: string; } >Derived2 : Derived2, Symbol(Derived2, Decl(assignmentCompatWithCallSignatures5.ts, 3, 43)) >Derived : Derived, Symbol(Derived, Decl(assignmentCompatWithCallSignatures5.ts, 2, 27)) >baz : string, Symbol(baz, Decl(assignmentCompatWithCallSignatures5.ts, 4, 32)) class OtherDerived extends Base { bing: string; } >OtherDerived : OtherDerived, Symbol(OtherDerived, Decl(assignmentCompatWithCallSignatures5.ts, 4, 47)) >Base : Base, Symbol(Base, Decl(assignmentCompatWithCallSignatures5.ts, 0, 0)) >bing : string, Symbol(bing, Decl(assignmentCompatWithCallSignatures5.ts, 5, 33)) var a: (x: T) => T[]; >a : (x: T) => T[], Symbol(a, Decl(assignmentCompatWithCallSignatures5.ts, 7, 3)) >T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 7, 8)) >x : T, Symbol(x, Decl(assignmentCompatWithCallSignatures5.ts, 7, 11)) >T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 7, 8)) >T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 7, 8)) var a2: (x: T) => string[]; >a2 : (x: T) => string[], Symbol(a2, Decl(assignmentCompatWithCallSignatures5.ts, 8, 3)) >T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 8, 9)) >x : T, Symbol(x, Decl(assignmentCompatWithCallSignatures5.ts, 8, 12)) >T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 8, 9)) var a3: (x: T) => void; >a3 : (x: T) => void, Symbol(a3, Decl(assignmentCompatWithCallSignatures5.ts, 9, 3)) >T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 9, 9)) >x : T, Symbol(x, Decl(assignmentCompatWithCallSignatures5.ts, 9, 12)) >T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 9, 9)) var a4: (x: T, y: U) => string; >a4 : (x: T, y: U) => string, Symbol(a4, Decl(assignmentCompatWithCallSignatures5.ts, 10, 3)) >T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 10, 9)) >U : U, Symbol(U, Decl(assignmentCompatWithCallSignatures5.ts, 10, 11)) >x : T, Symbol(x, Decl(assignmentCompatWithCallSignatures5.ts, 10, 14)) >T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 10, 9)) >y : U, Symbol(y, Decl(assignmentCompatWithCallSignatures5.ts, 10, 19)) >U : U, Symbol(U, Decl(assignmentCompatWithCallSignatures5.ts, 10, 11)) var a5: (x: (arg: T) => U) => T; >a5 : (x: (arg: T) => U) => T, Symbol(a5, Decl(assignmentCompatWithCallSignatures5.ts, 11, 3)) >T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 11, 9)) >U : U, Symbol(U, Decl(assignmentCompatWithCallSignatures5.ts, 11, 11)) >x : (arg: T) => U, Symbol(x, Decl(assignmentCompatWithCallSignatures5.ts, 11, 14)) >arg : T, Symbol(arg, Decl(assignmentCompatWithCallSignatures5.ts, 11, 18)) >T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 11, 9)) >U : U, Symbol(U, Decl(assignmentCompatWithCallSignatures5.ts, 11, 11)) >T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 11, 9)) var a6: (x: (arg: T) => Derived) => T; >a6 : (x: (arg: T) => Derived) => T, Symbol(a6, Decl(assignmentCompatWithCallSignatures5.ts, 12, 3)) >T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 12, 9)) >Base : Base, Symbol(Base, Decl(assignmentCompatWithCallSignatures5.ts, 0, 0)) >x : (arg: T) => Derived, Symbol(x, Decl(assignmentCompatWithCallSignatures5.ts, 12, 25)) >arg : T, Symbol(arg, Decl(assignmentCompatWithCallSignatures5.ts, 12, 29)) >T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 12, 9)) >Derived : Derived, Symbol(Derived, Decl(assignmentCompatWithCallSignatures5.ts, 2, 27)) >T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 12, 9)) var a11: (x: { foo: T }, y: { foo: T; bar: T }) => Base; >a11 : (x: { foo: T; }, y: { foo: T; bar: T; }) => Base, Symbol(a11, Decl(assignmentCompatWithCallSignatures5.ts, 13, 3)) >T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 13, 10)) >x : { foo: T; }, Symbol(x, Decl(assignmentCompatWithCallSignatures5.ts, 13, 13)) >foo : T, Symbol(foo, Decl(assignmentCompatWithCallSignatures5.ts, 13, 17)) >T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 13, 10)) >y : { foo: T; bar: T; }, Symbol(y, Decl(assignmentCompatWithCallSignatures5.ts, 13, 27)) >foo : T, Symbol(foo, Decl(assignmentCompatWithCallSignatures5.ts, 13, 32)) >T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 13, 10)) >bar : T, Symbol(bar, Decl(assignmentCompatWithCallSignatures5.ts, 13, 40)) >T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 13, 10)) >Base : Base, Symbol(Base, Decl(assignmentCompatWithCallSignatures5.ts, 0, 0)) var a15: (x: { a: T; b: T }) => T[]; >a15 : (x: { a: T; b: T; }) => T[], Symbol(a15, Decl(assignmentCompatWithCallSignatures5.ts, 14, 3)) >T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 14, 10)) >x : { a: T; b: T; }, Symbol(x, Decl(assignmentCompatWithCallSignatures5.ts, 14, 13)) >a : T, Symbol(a, Decl(assignmentCompatWithCallSignatures5.ts, 14, 17)) >T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 14, 10)) >b : T, Symbol(b, Decl(assignmentCompatWithCallSignatures5.ts, 14, 23)) >T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 14, 10)) >T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 14, 10)) var a16: (x: { a: T; b: T }) => T[]; >a16 : (x: { a: T; b: T; }) => T[], Symbol(a16, Decl(assignmentCompatWithCallSignatures5.ts, 15, 3)) >T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 15, 10)) >Base : Base, Symbol(Base, Decl(assignmentCompatWithCallSignatures5.ts, 0, 0)) >x : { a: T; b: T; }, Symbol(x, Decl(assignmentCompatWithCallSignatures5.ts, 15, 26)) >a : T, Symbol(a, Decl(assignmentCompatWithCallSignatures5.ts, 15, 30)) >T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 15, 10)) >b : T, Symbol(b, Decl(assignmentCompatWithCallSignatures5.ts, 15, 36)) >T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 15, 10)) >T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 15, 10)) var a17: { >a17 : { (x: (a: T) => T): T[]; (x: (a: T) => T): T[]; }, Symbol(a17, Decl(assignmentCompatWithCallSignatures5.ts, 16, 3)) (x: (a: T) => T): T[]; >T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 17, 5)) >Derived : Derived, Symbol(Derived, Decl(assignmentCompatWithCallSignatures5.ts, 2, 27)) >x : (a: T) => T, Symbol(x, Decl(assignmentCompatWithCallSignatures5.ts, 17, 24)) >a : T, Symbol(a, Decl(assignmentCompatWithCallSignatures5.ts, 17, 28)) >T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 17, 5)) >T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 17, 5)) >T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 17, 5)) (x: (a: T) => T): T[]; >T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 18, 5)) >Base : Base, Symbol(Base, Decl(assignmentCompatWithCallSignatures5.ts, 0, 0)) >x : (a: T) => T, Symbol(x, Decl(assignmentCompatWithCallSignatures5.ts, 18, 21)) >a : T, Symbol(a, Decl(assignmentCompatWithCallSignatures5.ts, 18, 25)) >T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 18, 5)) >T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 18, 5)) >T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 18, 5)) }; var a18: { >a18 : { (x: { (a: T): T; (a: T): T; }): any[]; (x: { (a: T): T; (a: T): T; }): any[]; }, Symbol(a18, Decl(assignmentCompatWithCallSignatures5.ts, 20, 3)) (x: { >x : { (a: T): T; (a: T): T; }, Symbol(x, Decl(assignmentCompatWithCallSignatures5.ts, 21, 5)) (a: T): T; >T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 22, 9)) >Derived : Derived, Symbol(Derived, Decl(assignmentCompatWithCallSignatures5.ts, 2, 27)) >a : T, Symbol(a, Decl(assignmentCompatWithCallSignatures5.ts, 22, 28)) >T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 22, 9)) >T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 22, 9)) (a: T): T; >T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 23, 9)) >Base : Base, Symbol(Base, Decl(assignmentCompatWithCallSignatures5.ts, 0, 0)) >a : T, Symbol(a, Decl(assignmentCompatWithCallSignatures5.ts, 23, 25)) >T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 23, 9)) >T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 23, 9)) }): any[]; (x: { >x : { (a: T): T; (a: T): T; }, Symbol(x, Decl(assignmentCompatWithCallSignatures5.ts, 25, 5)) (a: T): T; >T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 26, 9)) >Derived2 : Derived2, Symbol(Derived2, Decl(assignmentCompatWithCallSignatures5.ts, 3, 43)) >a : T, Symbol(a, Decl(assignmentCompatWithCallSignatures5.ts, 26, 29)) >T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 26, 9)) >T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 26, 9)) (a: T): T; >T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 27, 9)) >Base : Base, Symbol(Base, Decl(assignmentCompatWithCallSignatures5.ts, 0, 0)) >a : T, Symbol(a, Decl(assignmentCompatWithCallSignatures5.ts, 27, 25)) >T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 27, 9)) >T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 27, 9)) }): any[]; }; var b: (x: T) => T[]; >b : (x: T) => T[], Symbol(b, Decl(assignmentCompatWithCallSignatures5.ts, 31, 3)) >T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 31, 8)) >x : T, Symbol(x, Decl(assignmentCompatWithCallSignatures5.ts, 31, 11)) >T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 31, 8)) >T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 31, 8)) a = b; // ok >a = b : (x: T) => T[] >a : (x: T) => T[], Symbol(a, Decl(assignmentCompatWithCallSignatures5.ts, 7, 3)) >b : (x: T) => T[], Symbol(b, Decl(assignmentCompatWithCallSignatures5.ts, 31, 3)) b = a; // ok >b = a : (x: T) => T[] >b : (x: T) => T[], Symbol(b, Decl(assignmentCompatWithCallSignatures5.ts, 31, 3)) >a : (x: T) => T[], Symbol(a, Decl(assignmentCompatWithCallSignatures5.ts, 7, 3)) var b2: (x: T) => string[]; >b2 : (x: T) => string[], Symbol(b2, Decl(assignmentCompatWithCallSignatures5.ts, 34, 3)) >T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 34, 9)) >x : T, Symbol(x, Decl(assignmentCompatWithCallSignatures5.ts, 34, 12)) >T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 34, 9)) a2 = b2; // ok >a2 = b2 : (x: T) => string[] >a2 : (x: T) => string[], Symbol(a2, Decl(assignmentCompatWithCallSignatures5.ts, 8, 3)) >b2 : (x: T) => string[], Symbol(b2, Decl(assignmentCompatWithCallSignatures5.ts, 34, 3)) b2 = a2; // ok >b2 = a2 : (x: T) => string[] >b2 : (x: T) => string[], Symbol(b2, Decl(assignmentCompatWithCallSignatures5.ts, 34, 3)) >a2 : (x: T) => string[], Symbol(a2, Decl(assignmentCompatWithCallSignatures5.ts, 8, 3)) var b3: (x: T) => T; >b3 : (x: T) => T, Symbol(b3, Decl(assignmentCompatWithCallSignatures5.ts, 37, 3)) >T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 37, 9)) >x : T, Symbol(x, Decl(assignmentCompatWithCallSignatures5.ts, 37, 12)) >T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 37, 9)) >T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 37, 9)) a3 = b3; // ok >a3 = b3 : (x: T) => T >a3 : (x: T) => void, Symbol(a3, Decl(assignmentCompatWithCallSignatures5.ts, 9, 3)) >b3 : (x: T) => T, Symbol(b3, Decl(assignmentCompatWithCallSignatures5.ts, 37, 3)) b3 = a3; // ok >b3 = a3 : (x: T) => void >b3 : (x: T) => T, Symbol(b3, Decl(assignmentCompatWithCallSignatures5.ts, 37, 3)) >a3 : (x: T) => void, Symbol(a3, Decl(assignmentCompatWithCallSignatures5.ts, 9, 3)) var b4: (x: T, y: U) => string; >b4 : (x: T, y: U) => string, Symbol(b4, Decl(assignmentCompatWithCallSignatures5.ts, 40, 3)) >T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 40, 9)) >U : U, Symbol(U, Decl(assignmentCompatWithCallSignatures5.ts, 40, 11)) >x : T, Symbol(x, Decl(assignmentCompatWithCallSignatures5.ts, 40, 15)) >T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 40, 9)) >y : U, Symbol(y, Decl(assignmentCompatWithCallSignatures5.ts, 40, 20)) >U : U, Symbol(U, Decl(assignmentCompatWithCallSignatures5.ts, 40, 11)) a4 = b4; // ok >a4 = b4 : (x: T, y: U) => string >a4 : (x: T, y: U) => string, Symbol(a4, Decl(assignmentCompatWithCallSignatures5.ts, 10, 3)) >b4 : (x: T, y: U) => string, Symbol(b4, Decl(assignmentCompatWithCallSignatures5.ts, 40, 3)) b4 = a4; // ok >b4 = a4 : (x: T, y: U) => string >b4 : (x: T, y: U) => string, Symbol(b4, Decl(assignmentCompatWithCallSignatures5.ts, 40, 3)) >a4 : (x: T, y: U) => string, Symbol(a4, Decl(assignmentCompatWithCallSignatures5.ts, 10, 3)) var b5: (x: (arg: T) => U) => T; >b5 : (x: (arg: T) => U) => T, Symbol(b5, Decl(assignmentCompatWithCallSignatures5.ts, 43, 3)) >T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 43, 9)) >U : U, Symbol(U, Decl(assignmentCompatWithCallSignatures5.ts, 43, 11)) >x : (arg: T) => U, Symbol(x, Decl(assignmentCompatWithCallSignatures5.ts, 43, 15)) >arg : T, Symbol(arg, Decl(assignmentCompatWithCallSignatures5.ts, 43, 19)) >T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 43, 9)) >U : U, Symbol(U, Decl(assignmentCompatWithCallSignatures5.ts, 43, 11)) >T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 43, 9)) a5 = b5; // ok >a5 = b5 : (x: (arg: T) => U) => T >a5 : (x: (arg: T) => U) => T, Symbol(a5, Decl(assignmentCompatWithCallSignatures5.ts, 11, 3)) >b5 : (x: (arg: T) => U) => T, Symbol(b5, Decl(assignmentCompatWithCallSignatures5.ts, 43, 3)) b5 = a5; // ok >b5 = a5 : (x: (arg: T) => U) => T >b5 : (x: (arg: T) => U) => T, Symbol(b5, Decl(assignmentCompatWithCallSignatures5.ts, 43, 3)) >a5 : (x: (arg: T) => U) => T, Symbol(a5, Decl(assignmentCompatWithCallSignatures5.ts, 11, 3)) var b6: (x: (arg: T) => U) => T; >b6 : (x: (arg: T) => U) => T, Symbol(b6, Decl(assignmentCompatWithCallSignatures5.ts, 46, 3)) >T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 46, 9)) >Base : Base, Symbol(Base, Decl(assignmentCompatWithCallSignatures5.ts, 0, 0)) >U : U, Symbol(U, Decl(assignmentCompatWithCallSignatures5.ts, 46, 24)) >Derived : Derived, Symbol(Derived, Decl(assignmentCompatWithCallSignatures5.ts, 2, 27)) >x : (arg: T) => U, Symbol(x, Decl(assignmentCompatWithCallSignatures5.ts, 46, 44)) >arg : T, Symbol(arg, Decl(assignmentCompatWithCallSignatures5.ts, 46, 48)) >T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 46, 9)) >U : U, Symbol(U, Decl(assignmentCompatWithCallSignatures5.ts, 46, 24)) >T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 46, 9)) a6 = b6; // ok >a6 = b6 : (x: (arg: T) => U) => T >a6 : (x: (arg: T) => Derived) => T, Symbol(a6, Decl(assignmentCompatWithCallSignatures5.ts, 12, 3)) >b6 : (x: (arg: T) => U) => T, Symbol(b6, Decl(assignmentCompatWithCallSignatures5.ts, 46, 3)) b6 = a6; // ok >b6 = a6 : (x: (arg: T) => Derived) => T >b6 : (x: (arg: T) => U) => T, Symbol(b6, Decl(assignmentCompatWithCallSignatures5.ts, 46, 3)) >a6 : (x: (arg: T) => Derived) => T, Symbol(a6, Decl(assignmentCompatWithCallSignatures5.ts, 12, 3)) var b11: (x: { foo: T }, y: { foo: U; bar: U }) => Base; >b11 : (x: { foo: T; }, y: { foo: U; bar: U; }) => Base, Symbol(b11, Decl(assignmentCompatWithCallSignatures5.ts, 49, 3)) >T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 49, 10)) >U : U, Symbol(U, Decl(assignmentCompatWithCallSignatures5.ts, 49, 12)) >x : { foo: T; }, Symbol(x, Decl(assignmentCompatWithCallSignatures5.ts, 49, 16)) >foo : T, Symbol(foo, Decl(assignmentCompatWithCallSignatures5.ts, 49, 20)) >T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 49, 10)) >y : { foo: U; bar: U; }, Symbol(y, Decl(assignmentCompatWithCallSignatures5.ts, 49, 30)) >foo : U, Symbol(foo, Decl(assignmentCompatWithCallSignatures5.ts, 49, 35)) >U : U, Symbol(U, Decl(assignmentCompatWithCallSignatures5.ts, 49, 12)) >bar : U, Symbol(bar, Decl(assignmentCompatWithCallSignatures5.ts, 49, 43)) >U : U, Symbol(U, Decl(assignmentCompatWithCallSignatures5.ts, 49, 12)) >Base : Base, Symbol(Base, Decl(assignmentCompatWithCallSignatures5.ts, 0, 0)) a11 = b11; // ok >a11 = b11 : (x: { foo: T; }, y: { foo: U; bar: U; }) => Base >a11 : (x: { foo: T; }, y: { foo: T; bar: T; }) => Base, Symbol(a11, Decl(assignmentCompatWithCallSignatures5.ts, 13, 3)) >b11 : (x: { foo: T; }, y: { foo: U; bar: U; }) => Base, Symbol(b11, Decl(assignmentCompatWithCallSignatures5.ts, 49, 3)) b11 = a11; // ok >b11 = a11 : (x: { foo: T; }, y: { foo: T; bar: T; }) => Base >b11 : (x: { foo: T; }, y: { foo: U; bar: U; }) => Base, Symbol(b11, Decl(assignmentCompatWithCallSignatures5.ts, 49, 3)) >a11 : (x: { foo: T; }, y: { foo: T; bar: T; }) => Base, Symbol(a11, Decl(assignmentCompatWithCallSignatures5.ts, 13, 3)) var b15: (x: { a: U; b: V; }) => U[]; >b15 : (x: { a: U; b: V; }) => U[], Symbol(b15, Decl(assignmentCompatWithCallSignatures5.ts, 52, 3)) >U : U, Symbol(U, Decl(assignmentCompatWithCallSignatures5.ts, 52, 10)) >V : V, Symbol(V, Decl(assignmentCompatWithCallSignatures5.ts, 52, 12)) >x : { a: U; b: V; }, Symbol(x, Decl(assignmentCompatWithCallSignatures5.ts, 52, 16)) >a : U, Symbol(a, Decl(assignmentCompatWithCallSignatures5.ts, 52, 20)) >U : U, Symbol(U, Decl(assignmentCompatWithCallSignatures5.ts, 52, 10)) >b : V, Symbol(b, Decl(assignmentCompatWithCallSignatures5.ts, 52, 26)) >V : V, Symbol(V, Decl(assignmentCompatWithCallSignatures5.ts, 52, 12)) >U : U, Symbol(U, Decl(assignmentCompatWithCallSignatures5.ts, 52, 10)) a15 = b15; // ok, T = U, T = V >a15 = b15 : (x: { a: U; b: V; }) => U[] >a15 : (x: { a: T; b: T; }) => T[], Symbol(a15, Decl(assignmentCompatWithCallSignatures5.ts, 14, 3)) >b15 : (x: { a: U; b: V; }) => U[], Symbol(b15, Decl(assignmentCompatWithCallSignatures5.ts, 52, 3)) b15 = a15; // ok >b15 = a15 : (x: { a: T; b: T; }) => T[] >b15 : (x: { a: U; b: V; }) => U[], Symbol(b15, Decl(assignmentCompatWithCallSignatures5.ts, 52, 3)) >a15 : (x: { a: T; b: T; }) => T[], Symbol(a15, Decl(assignmentCompatWithCallSignatures5.ts, 14, 3)) var b16: (x: { a: T; b: T }) => T[]; >b16 : (x: { a: T; b: T; }) => T[], Symbol(b16, Decl(assignmentCompatWithCallSignatures5.ts, 55, 3)) >T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 55, 10)) >x : { a: T; b: T; }, Symbol(x, Decl(assignmentCompatWithCallSignatures5.ts, 55, 13)) >a : T, Symbol(a, Decl(assignmentCompatWithCallSignatures5.ts, 55, 17)) >T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 55, 10)) >b : T, Symbol(b, Decl(assignmentCompatWithCallSignatures5.ts, 55, 23)) >T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 55, 10)) >T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 55, 10)) a15 = b16; // ok >a15 = b16 : (x: { a: T; b: T; }) => T[] >a15 : (x: { a: T; b: T; }) => T[], Symbol(a15, Decl(assignmentCompatWithCallSignatures5.ts, 14, 3)) >b16 : (x: { a: T; b: T; }) => T[], Symbol(b16, Decl(assignmentCompatWithCallSignatures5.ts, 55, 3)) b15 = a16; // ok >b15 = a16 : (x: { a: T; b: T; }) => T[] >b15 : (x: { a: U; b: V; }) => U[], Symbol(b15, Decl(assignmentCompatWithCallSignatures5.ts, 52, 3)) >a16 : (x: { a: T; b: T; }) => T[], Symbol(a16, Decl(assignmentCompatWithCallSignatures5.ts, 15, 3)) var b17: (x: (a: T) => T) => T[]; >b17 : (x: (a: T) => T) => T[], Symbol(b17, Decl(assignmentCompatWithCallSignatures5.ts, 58, 3)) >T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 58, 10)) >x : (a: T) => T, Symbol(x, Decl(assignmentCompatWithCallSignatures5.ts, 58, 13)) >a : T, Symbol(a, Decl(assignmentCompatWithCallSignatures5.ts, 58, 17)) >T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 58, 10)) >T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 58, 10)) >T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 58, 10)) a17 = b17; // ok >a17 = b17 : (x: (a: T) => T) => T[] >a17 : { (x: (a: T) => T): T[]; (x: (a: T) => T): T[]; }, Symbol(a17, Decl(assignmentCompatWithCallSignatures5.ts, 16, 3)) >b17 : (x: (a: T) => T) => T[], Symbol(b17, Decl(assignmentCompatWithCallSignatures5.ts, 58, 3)) b17 = a17; // ok >b17 = a17 : { (x: (a: T) => T): T[]; (x: (a: T) => T): T[]; } >b17 : (x: (a: T) => T) => T[], Symbol(b17, Decl(assignmentCompatWithCallSignatures5.ts, 58, 3)) >a17 : { (x: (a: T) => T): T[]; (x: (a: T) => T): T[]; }, Symbol(a17, Decl(assignmentCompatWithCallSignatures5.ts, 16, 3)) var b18: (x: (a: T) => T) => any[]; >b18 : (x: (a: T) => T) => any[], Symbol(b18, Decl(assignmentCompatWithCallSignatures5.ts, 61, 3)) >x : (a: T) => T, Symbol(x, Decl(assignmentCompatWithCallSignatures5.ts, 61, 10)) >T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 61, 14)) >a : T, Symbol(a, Decl(assignmentCompatWithCallSignatures5.ts, 61, 17)) >T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 61, 14)) >T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 61, 14)) a18 = b18; // ok >a18 = b18 : (x: (a: T) => T) => any[] >a18 : { (x: { (a: T): T; (a: T): T; }): any[]; (x: { (a: T): T; (a: T): T; }): any[]; }, Symbol(a18, Decl(assignmentCompatWithCallSignatures5.ts, 20, 3)) >b18 : (x: (a: T) => T) => any[], Symbol(b18, Decl(assignmentCompatWithCallSignatures5.ts, 61, 3)) b18 = a18; // ok >b18 = a18 : { (x: { (a: T): T; (a: T): T; }): any[]; (x: { (a: T): T; (a: T): T; }): any[]; } >b18 : (x: (a: T) => T) => any[], Symbol(b18, Decl(assignmentCompatWithCallSignatures5.ts, 61, 3)) >a18 : { (x: { (a: T): T; (a: T): T; }): any[]; (x: { (a: T): T; (a: T): T; }): any[]; }, Symbol(a18, Decl(assignmentCompatWithCallSignatures5.ts, 20, 3))