Skip to content

Commit 5c6c1a3

Browse files
committed
Add regression test
1 parent 49e3f17 commit 5c6c1a3

File tree

1 file changed

+12
-0
lines changed

1 file changed

+12
-0
lines changed

tests/cases/compiler/infiniteConstraints.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,3 +36,15 @@ const shouldBeError = ensureNoDuplicates({main: value("dup"), alternate: value("
3636

3737
type Cond<T> = T extends number ? number : never;
3838
declare function function1<T extends {[K in keyof T]: Cond<T[K]>}>(): T[keyof T]["foo"];
39+
40+
// Repro from #31823
41+
42+
export type Prepend<Elm, T extends unknown[]> =
43+
T extends unknown ?
44+
((arg: Elm, ...rest: T) => void) extends ((...args: infer T2) => void) ? T2 :
45+
never :
46+
never;
47+
export type ExactExtract<T, U> = T extends U ? U extends T ? T : never : never;
48+
49+
type Conv<T, U = T> =
50+
{ 0: [T]; 1: Prepend<T, Conv<ExactExtract<U, T>>>;}[U extends T ? 0 : 1];

0 commit comments

Comments
 (0)