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 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110
|
=== tests/cases/compiler/blockScopedBindingsReassignedInLoop6.ts ===
function f1() {
>f1 : () => void
for (let [x, y] = [1, 2]; x < y; ++x, --y) {
>x : number
>y : number
>[1, 2] : [number, number]
>1 : 1
>2 : 2
>x < y : boolean
>x : number
>y : number
>++x, --y : number
>++x : number
>x : number
>--y : number
>y : number
let a = () => x++ + y++;
>a : () => number
>() => x++ + y++ : () => number
>x++ + y++ : number
>x++ : number
>x : number
>y++ : number
>y : number
if (x == 1)
>x == 1 : boolean
>x : number
>1 : 1
break;
else if (y == 2)
>y == 2 : boolean
>y : number
>2 : 2
y = 5;
>y = 5 : 5
>y : number
>5 : 5
else
return;
}
}
function f2() {
>f2 : () => void
for (let [{a: x, b: {c: y}}] = [{a: 1, b: {c: 2}}]; x < y; ++x, --y) {
>a : any
>x : number
>b : any
>c : any
>y : number
>[{a: 1, b: {c: 2}}] : [{ a: number; b: { c: number; }; }]
>{a: 1, b: {c: 2}} : { a: number; b: { c: number; }; }
>a : number
>1 : 1
>b : { c: number; }
>{c: 2} : { c: number; }
>c : number
>2 : 2
>x < y : boolean
>x : number
>y : number
>++x, --y : number
>++x : number
>x : number
>--y : number
>y : number
let a = () => x++ + y++;
>a : () => number
>() => x++ + y++ : () => number
>x++ + y++ : number
>x++ : number
>x : number
>y++ : number
>y : number
if (x == 1)
>x == 1 : boolean
>x : number
>1 : 1
break;
else if (y == 2)
>y == 2 : boolean
>y : number
>2 : 2
y = 5;
>y = 5 : 5
>y : number
>5 : 5
else
return;
}
}
|