aboutsummaryrefslogtreecommitdiff
path: root/test/cases/compile_errors/integer_cast_truncates_bits.zig
blob: afe3484a418f7871bbf6c636f0285f7dfeea8c6e (plain)
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
export fn entry1() void {
    const spartan_count: u16 = 300;
    const byte: u8 = @intCast(spartan_count);
    _ = byte;
}
export fn entry2() void {
    const spartan_count: u16 = 300;
    const byte: u8 = spartan_count;
    _ = byte;
}
export fn entry3() void {
    var spartan_count: u16 = 300;
    var byte: u8 = spartan_count;
    _ = .{ &spartan_count, &byte };
}
export fn entry4() void {
    var signed: i8 = -1;
    var unsigned: u64 = signed;
    _ = .{ &signed, &unsigned };
}

// error
// backend=stage2
// target=native
//
// :3:31: error: type 'u8' cannot represent integer value '300'
// :8:22: error: type 'u8' cannot represent integer value '300'
// :13:20: error: expected type 'u8', found 'u16'
// :13:20: note: unsigned 8-bit int cannot represent all possible unsigned 16-bit values
// :18:25: error: expected type 'u64', found 'i8'
// :18:25: note: unsigned 64-bit int cannot represent all possible signed 8-bit values