131 lines
1.5 KiB
TypeScript
Raw Normal View History

// becomes simplified: val++
// uses a temp. local: ctx = val++
// i8
{
let val: i8 = 127;
let ctx: i8;
val++;
assert(val == -128);
val--;
assert(val == 127);
ctx = val++;
assert(val == -128);
ctx = val--;
assert(val == 127);
++val;
assert(val == -128);
--val;
assert(val == 127);
ctx = ++val;
assert(val == -128);
ctx = --val;
assert(val == 127);
assert(val + 1 == -128);
2018-02-10 09:45:49 +01:00
}
// i16
{
let val: i16 = 32767;
let ctx: i16;
val++;
assert(val == -32768);
val--;
assert(val == 32767);
ctx = val++;
assert(val == -32768);
ctx = val--;
assert(val == 32767);
++val;
assert(val == -32768);
--val;
assert(val == 32767);
ctx = ++val;
assert(val == -32768);
2018-02-10 12:13:07 +01:00
ctx = --val;
assert(val == 32767);
assert(val + 1 == -32768);
2018-02-10 12:13:07 +01:00
}
// u8
{
let val: u8 = 0;
let ctx: u8;
val--;
assert(val == 0xff);
val++;
assert(val == 0);
ctx = val--;
assert(val == 0xff);
ctx = val++;
assert(val == 0);
--val;
assert(val == 0xff);
++val;
assert(val == 0);
ctx = --val;
assert(val == 0xff);
ctx = ++val;
assert(val == 0);
2018-02-10 12:20:19 +01:00
assert(val - 1 == 0xff);
2018-02-10 12:20:19 +01:00
}
// u16
{
let val: u16 = 0;
let ctx: u16;
2018-02-10 12:20:19 +01:00
val--;
assert(val == 0xffff);
2018-02-10 12:20:19 +01:00
val++;
assert(val == 0);
ctx = val--;
assert(val == 0xffff);
ctx = val++;
assert(val == 0);
--val;
assert(val == 0xffff);
++val;
assert(val == 0);
ctx = --val;
assert(val == 0xffff);
ctx = ++val;
assert(val == 0);
assert(val - 1 == 0xffff);
}