v2 / vlib / v / checker / tests / compare_unsigned_signed.vv
25 lines · 22 sloc · 459 bytes · 169a6b5ce0277fdfc5e2995ed23bc7ac46d5ffad
Raw
1fn main() {
2 if u32(1) < -1 {
3 println('unexpected')
4 }
5
6 if -1 > u32(1) {
7 println('unexpected')
8 }
9 // unsigned == literal
10 _ = u8(-1) == -1 // false!
11 _ = -1 == u16(-1) // false!
12
13 // smaller unsigned == signed, OK
14 _ = u16(-1) == int(-1)
15 _ = int(-1) != u8(-1)
16
17 // smaller signed == unsigned, NG
18 _ = i8(0) == u16(0)
19 _ = i16(0) != u32(0)
20 _ = int(0) == u64(0)
21 _ = i32(0) == u64(0) // FIXME
22 // swap order
23 _ = u16(0) == i8(0)
24 _ = u64(0) == i16(0)
25}
26