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 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82
|
//// [tests/cases/conformance/controlFlow/controlFlowNoIntermediateErrors.ts] ////
=== controlFlowNoIntermediateErrors.ts ===
// Repros from #46475
function f1() {
>f1 : () => void
let code: 0 | 1 | 2 = 0;
>code : 0 | 1 | 2
>0 : 0
const otherCodes: (0 | 1 | 2)[] = [2, 0, 1, 0, 2, 2, 2, 0, 1, 0, 2, 1, 1, 0, 2, 1];
>otherCodes : (0 | 1 | 2)[]
>[2, 0, 1, 0, 2, 2, 2, 0, 1, 0, 2, 1, 1, 0, 2, 1] : (0 | 1 | 2)[]
>2 : 2
>0 : 0
>1 : 1
>0 : 0
>2 : 2
>2 : 2
>2 : 2
>0 : 0
>1 : 1
>0 : 0
>2 : 2
>1 : 1
>1 : 1
>0 : 0
>2 : 2
>1 : 1
for (const code2 of otherCodes) {
>code2 : 0 | 1 | 2
>otherCodes : (0 | 1 | 2)[]
if (code2 === 0) {
>code2 === 0 : boolean
>code2 : 0 | 1 | 2
>0 : 0
code = code === 2 ? 1 : 0;
>code = code === 2 ? 1 : 0 : 0 | 1
>code : 0 | 1 | 2
>code === 2 ? 1 : 0 : 0 | 1
>code === 2 : boolean
>code : 0 | 1 | 2
>2 : 2
>1 : 1
>0 : 0
}
else {
code = 2;
>code = 2 : 2
>code : 0 | 1 | 2
>2 : 2
}
}
}
function f2() {
>f2 : () => void
let code: 0 | 1 = 0;
>code : 0 | 1
>0 : 0
while (true) {
>true : true
code = code === 1 ? 0 : 1;
>code = code === 1 ? 0 : 1 : 0 | 1
>code : 0 | 1
>code === 1 ? 0 : 1 : 0 | 1
>code === 1 : boolean
>code : 0 | 1
>1 : 1
>0 : 0
>1 : 1
}
}
|