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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
|
//// [tests/cases/compiler/recursiveConditionalCrash4.ts] ////
=== recursiveConditionalCrash4.ts ===
// Repros from #53783
type LengthDown<
>LengthDown : Symbol(LengthDown, Decl(recursiveConditionalCrash4.ts, 0, 0))
Str extends string,
>Str : Symbol(Str, Decl(recursiveConditionalCrash4.ts, 2, 16))
Length extends number | bigint,
>Length : Symbol(Length, Decl(recursiveConditionalCrash4.ts, 3, 21))
It
>It : Symbol(It, Decl(recursiveConditionalCrash4.ts, 4, 33))
> = It extends StrIter.Iterator
>It : Symbol(It, Decl(recursiveConditionalCrash4.ts, 4, 33))
>StrIter : Symbol(StrIter)
>Iterator : Symbol(StrIter.Iterator)
? StrIter.CutAt<Str, It> extends `${infer $Rest}`
>StrIter : Symbol(StrIter)
>CutAt : Symbol(StrIter.CutAt)
>Str : Symbol(Str, Decl(recursiveConditionalCrash4.ts, 2, 16))
>It : Symbol(It, Decl(recursiveConditionalCrash4.ts, 4, 33))
>$Rest : Symbol($Rest, Decl(recursiveConditionalCrash4.ts, 7, 43))
? LengthDown<$Rest, Add<Length, StrIter.Value<It>>, It>
>LengthDown : Symbol(LengthDown, Decl(recursiveConditionalCrash4.ts, 0, 0))
>$Rest : Symbol($Rest, Decl(recursiveConditionalCrash4.ts, 7, 43))
>Add : Symbol(Add)
>Length : Symbol(Length, Decl(recursiveConditionalCrash4.ts, 3, 21))
>StrIter : Symbol(StrIter)
>Value : Symbol(StrIter.Value)
>It : Symbol(It, Decl(recursiveConditionalCrash4.ts, 4, 33))
>It : Symbol(It, Decl(recursiveConditionalCrash4.ts, 4, 33))
: LengthDown<Str, Length, StrIter.Prev<It>>
>LengthDown : Symbol(LengthDown, Decl(recursiveConditionalCrash4.ts, 0, 0))
>Str : Symbol(Str, Decl(recursiveConditionalCrash4.ts, 2, 16))
>Length : Symbol(Length, Decl(recursiveConditionalCrash4.ts, 3, 21))
>StrIter : Symbol(StrIter)
>Prev : Symbol(StrIter.Prev)
>It : Symbol(It, Decl(recursiveConditionalCrash4.ts, 4, 33))
: Length;
>Length : Symbol(Length, Decl(recursiveConditionalCrash4.ts, 3, 21))
type Foo<T> = T extends unknown
>Foo : Symbol(Foo, Decl(recursiveConditionalCrash4.ts, 10, 11))
>T : Symbol(T, Decl(recursiveConditionalCrash4.ts, 12, 9))
>T : Symbol(T, Decl(recursiveConditionalCrash4.ts, 12, 9))
? unknown extends `${infer $Rest}`
>$Rest : Symbol($Rest, Decl(recursiveConditionalCrash4.ts, 13, 28))
? Foo<T>
>Foo : Symbol(Foo, Decl(recursiveConditionalCrash4.ts, 10, 11))
>T : Symbol(T, Decl(recursiveConditionalCrash4.ts, 12, 9))
: Foo<unknown>
>Foo : Symbol(Foo, Decl(recursiveConditionalCrash4.ts, 10, 11))
: unknown;
|