master
1const UnionContainer = union {
2 buf: [2]i32,
3};
4
5fn getUnionSlice() []i32 {
6 var c = UnionContainer{ .buf = .{ 1, 2 } };
7 return c.buf[0..2];
8}
9
10const StructContainer = struct {
11 buf: [2]i32,
12};
13
14fn getStructSlice() []i32 {
15 var c = StructContainer{ .buf = .{ 3, 4 } };
16 return c.buf[0..2];
17}
18
19comptime {
20 @compileLog(getUnionSlice());
21 @compileLog(getStructSlice());
22}
23
24pub fn main() !void {}
25
26// TODO: the output here has been regressed by #19414.
27// Restoring useful output here will require providing a Sema to TypedValue.print.
28
29// error
30//
31// :20:5: error: found compile log statement
32//
33// Compile Log Output:
34// @as([]i32, @as([*]i32, @ptrCast(&@as(tmp.UnionContainer, .{ .buf = .{ 1, 2 } }).buf))[0..2])
35// @as([]i32, @as([*]i32, @ptrCast(&@as(tmp.StructContainer, .{ .buf = .{ 3, 4 } }).buf))[0..2])