diff --git a/tests/baselines/reference/instantiationExpressionNoTypeParameterLeak1.symbols b/tests/baselines/reference/instantiationExpressionNoTypeParameterLeak1.symbols index 7519e8019cc5d..8e631731fdd06 100644 --- a/tests/baselines/reference/instantiationExpressionNoTypeParameterLeak1.symbols +++ b/tests/baselines/reference/instantiationExpressionNoTypeParameterLeak1.symbols @@ -79,3 +79,21 @@ export const output4 = test4(() => (y: number) => 1); output4(1); >output4 : Symbol(output4, Decl(instantiationExpressionNoTypeParameterLeak1.ts, 19, 12)) +export declare function test5(g: (x: X) => X): typeof g; +>test5 : Symbol(test5, Decl(instantiationExpressionNoTypeParameterLeak1.ts, 20, 11)) +>X : Symbol(X, Decl(instantiationExpressionNoTypeParameterLeak1.ts, 22, 30)) +>g : Symbol(g, Decl(instantiationExpressionNoTypeParameterLeak1.ts, 22, 33)) +>A : Symbol(A, Decl(instantiationExpressionNoTypeParameterLeak1.ts, 22, 37)) +>x : Symbol(x, Decl(instantiationExpressionNoTypeParameterLeak1.ts, 22, 40)) +>X : Symbol(X, Decl(instantiationExpressionNoTypeParameterLeak1.ts, 22, 30)) +>X : Symbol(X, Decl(instantiationExpressionNoTypeParameterLeak1.ts, 22, 30)) +>g : Symbol(g, Decl(instantiationExpressionNoTypeParameterLeak1.ts, 22, 33)) + +export const output5 = test5((y: number) => 1); +>output5 : Symbol(output5, Decl(instantiationExpressionNoTypeParameterLeak1.ts, 23, 12)) +>test5 : Symbol(test5, Decl(instantiationExpressionNoTypeParameterLeak1.ts, 20, 11)) +>y : Symbol(y, Decl(instantiationExpressionNoTypeParameterLeak1.ts, 23, 38)) + +output5(1); +>output5 : Symbol(output5, Decl(instantiationExpressionNoTypeParameterLeak1.ts, 23, 12)) + diff --git a/tests/baselines/reference/instantiationExpressionNoTypeParameterLeak1.types b/tests/baselines/reference/instantiationExpressionNoTypeParameterLeak1.types index ec64af8b3781d..37f5f3c6af693 100644 --- a/tests/baselines/reference/instantiationExpressionNoTypeParameterLeak1.types +++ b/tests/baselines/reference/instantiationExpressionNoTypeParameterLeak1.types @@ -151,3 +151,35 @@ output4(1); >1 : 1 > : ^ +export declare function test5(g: (x: X) => X): typeof g; +>test5 : (g: (x: X) => X) => typeof g +> : ^ ^^ ^^ ^^^^^ +>g : (x: X) => X +> : ^ ^^ ^^ ^^^^^ +>x : X +> : ^ +>g : (x: X) => X +> : ^ ^^ ^^ ^^^^^ + +export const output5 = test5((y: number) => 1); +>output5 : (x: number) => number +> : ^ ^^^^^^^^^^^^^^^^^^^ +>test5((y: number) => 1) : (x: number) => number +> : ^ ^^^^^^^^^^^^^^^^^^^ +>test5 : (g: (x: X) => X) => typeof g +> : ^ ^^ ^^ ^^^^^ +>(y: number) => 1 : (y: number) => number +> : ^ ^^ ^^^^^^^^^^^ +>y : number +> : ^^^^^^ +>1 : 1 +> : ^ + +output5(1); +>output5(1) : number +> : ^^^^^^ +>output5 : (x: number) => number +> : ^ ^^^^^^^^^^^^^^^^^^^ +>1 : 1 +> : ^ + diff --git a/tests/cases/compiler/instantiationExpressionNoTypeParameterLeak1.ts b/tests/cases/compiler/instantiationExpressionNoTypeParameterLeak1.ts index 6984f6c2439e7..6c54c6904b569 100644 --- a/tests/cases/compiler/instantiationExpressionNoTypeParameterLeak1.ts +++ b/tests/cases/compiler/instantiationExpressionNoTypeParameterLeak1.ts @@ -22,3 +22,7 @@ export function test4(g: () => (x: X) => X) { } export const output4 = test4(() => (y: number) => 1); output4(1); + +export declare function test5(g: (x: X) => X): typeof g; +export const output5 = test5((y: number) => 1); +output5(1);