diff --git a/tests/baselines/reference/genericFunctionInference1.errors.txt b/tests/baselines/reference/genericFunctionInference1.errors.txt index fd423a4ea5a..e00e8ad4121 100644 --- a/tests/baselines/reference/genericFunctionInference1.errors.txt +++ b/tests/baselines/reference/genericFunctionInference1.errors.txt @@ -198,4 +198,9 @@ tests/cases/compiler/genericFunctionInference1.ts(83,14): error TS2345: Argument foo2(() => {}); foo2(identity); foo2(identity, 1); + + // Repro from #30324 + + declare function times(fn: (i: number) => T): (n: number) => T[]; + const a2 = times(identity)(5); // => [0, 1, 2, 3, 4] \ No newline at end of file diff --git a/tests/baselines/reference/genericFunctionInference1.js b/tests/baselines/reference/genericFunctionInference1.js index bfca871a6c9..548acbe11c1 100644 --- a/tests/baselines/reference/genericFunctionInference1.js +++ b/tests/baselines/reference/genericFunctionInference1.js @@ -191,6 +191,11 @@ declare function foo2(fn: T, a?: U, b?: U): [T, U]; foo2(() => {}); foo2(identity); foo2(identity, 1); + +// Repro from #30324 + +declare function times(fn: (i: number) => T): (n: number) => T[]; +const a2 = times(identity)(5); // => [0, 1, 2, 3, 4] //// [genericFunctionInference1.js] @@ -276,3 +281,4 @@ const fn62 = pipe(getArray, x => x, x => first(x)); foo2(() => { }); foo2(identity); foo2(identity, 1); +const a2 = times(identity)(5); // => [0, 1, 2, 3, 4] diff --git a/tests/baselines/reference/genericFunctionInference1.symbols b/tests/baselines/reference/genericFunctionInference1.symbols index cad4d862d9c..64d3e623872 100644 --- a/tests/baselines/reference/genericFunctionInference1.symbols +++ b/tests/baselines/reference/genericFunctionInference1.symbols @@ -875,3 +875,19 @@ foo2(identity, 1); >foo2 : Symbol(foo2, Decl(genericFunctionInference1.ts, 183, 2)) >identity : Symbol(identity, Decl(genericFunctionInference1.ts, 154, 13)) +// Repro from #30324 + +declare function times(fn: (i: number) => T): (n: number) => T[]; +>times : Symbol(times, Decl(genericFunctionInference1.ts, 191, 18)) +>T : Symbol(T, Decl(genericFunctionInference1.ts, 195, 23)) +>fn : Symbol(fn, Decl(genericFunctionInference1.ts, 195, 26)) +>i : Symbol(i, Decl(genericFunctionInference1.ts, 195, 31)) +>T : Symbol(T, Decl(genericFunctionInference1.ts, 195, 23)) +>n : Symbol(n, Decl(genericFunctionInference1.ts, 195, 50)) +>T : Symbol(T, Decl(genericFunctionInference1.ts, 195, 23)) + +const a2 = times(identity)(5); // => [0, 1, 2, 3, 4] +>a2 : Symbol(a2, Decl(genericFunctionInference1.ts, 196, 5)) +>times : Symbol(times, Decl(genericFunctionInference1.ts, 191, 18)) +>identity : Symbol(identity, Decl(genericFunctionInference1.ts, 154, 13)) + diff --git a/tests/baselines/reference/genericFunctionInference1.types b/tests/baselines/reference/genericFunctionInference1.types index a06ad6cffc5..059108f3b68 100644 --- a/tests/baselines/reference/genericFunctionInference1.types +++ b/tests/baselines/reference/genericFunctionInference1.types @@ -823,3 +823,19 @@ foo2(identity, 1); >identity : (value: T) => T >1 : 1 +// Repro from #30324 + +declare function times(fn: (i: number) => T): (n: number) => T[]; +>times : (fn: (i: number) => T) => (n: number) => T[] +>fn : (i: number) => T +>i : number +>n : number + +const a2 = times(identity)(5); // => [0, 1, 2, 3, 4] +>a2 : number[] +>times(identity)(5) : number[] +>times(identity) : (n: number) => number[] +>times : (fn: (i: number) => T) => (n: number) => T[] +>identity : (value: T) => T +>5 : 5 +