=== tests/cases/compiler/contextualSignatureInstantiationWithTypeParameterConstrainedToOuterTypeParameter.ts === function f() { >f : () => (u: U) => U >T : T function g(u: U): U { return null } >g : (u: U) => U >U : U >T : T >u : U >U : U >U : U >null : null return g; >g : (u: U) => U } var h: (v: V, func: (v: V) => W) => W; >h : (v: V, func: (v: V) => W) => W >V : V >W : W >v : V >V : V >func : (v: V) => W >v : V >V : V >W : W >W : W var x = h("", f()); // Call should succeed and x should be string. All type parameters should be instantiated to string >x : string >h("", f()) : string >h : (v: V, func: (v: V) => W) => W >"" : string >f() : (u: U) => U >f : () => (u: U) => U