=== tests/cases/compiler/typeParameterFixingWithContextSensitiveArguments5.ts === function f(t1: T, u1: U, pf1: (u2: U) => T, pf2: (t2: T) => U): [T, U] { return [t1, pf2(t1)]; } >f : (t1: T, u1: U, pf1: (u2: U) => T, pf2: (t2: T) => U) => [T, U] >T : T >U : U >t1 : T >T : T >u1 : U >U : U >pf1 : (u2: U) => T >u2 : U >U : U >T : T >pf2 : (t2: T) => U >t2 : T >T : T >U : U >T : T >U : U >[t1, pf2(t1)] : [T, U] >t1 : T >pf2(t1) : U >pf2 : (t2: T) => U >t1 : T interface A { a: A; } >A : A >a : A >A : A interface B extends A { b: any; } >B : B >A : A >b : any var a: A, b: B; >a : A >A : A >b : B >B : B var d = f(a, b, u2 => u2.b, t2 => t2); >d : [any, B] >f(a, b, u2 => u2.b, t2 => t2) : [any, B] >f : (t1: T, u1: U, pf1: (u2: U) => T, pf2: (t2: T) => U) => [T, U] >a : A >b : B >u2 => u2.b : (u2: B) => any >u2 : B >u2.b : any >u2 : B >b : any >t2 => t2 : (t2: any) => any >t2 : any >t2 : any