1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
=== tests/cases/compiler/recursiveConditionalCrash4.ts ===
// Repros from #53783
type LengthDown<
>LengthDown : LengthDown<Str, Length, It>
Str extends string,
Length extends number | bigint,
It
> = It extends StrIter.Iterator
>StrIter : any
? StrIter.CutAt<Str, It> extends `${infer $Rest}`
>StrIter : any
? LengthDown<$Rest, Add<Length, StrIter.Value<It>>, It>
>StrIter : any
: LengthDown<Str, Length, StrIter.Prev<It>>
>StrIter : any
: Length;
type Foo<T> = T extends unknown
>Foo : Foo<T>
? unknown extends `${infer $Rest}`
? Foo<T>
: Foo<unknown>
: unknown;
|