aboutsummaryrefslogtreecommitdiff
path: root/test/behavior/array.zig
diff options
context:
space:
mode:
Diffstat (limited to 'test/behavior/array.zig')
-rw-r--r--test/behavior/array.zig29
1 files changed, 29 insertions, 0 deletions
diff --git a/test/behavior/array.zig b/test/behavior/array.zig
index bc8176aa9c..82313cddc7 100644
--- a/test/behavior/array.zig
+++ b/test/behavior/array.zig
@@ -719,3 +719,32 @@ test "pointer to array has ptr field" {
try std.testing.expect(arr.ptr[3] == 40);
try std.testing.expect(arr.ptr[4] == 50);
}
+
+test "discarded array init preserves result location" {
+ const S = struct {
+ fn f(p: *u32) u16 {
+ p.* += 1;
+ return 0;
+ }
+ };
+
+ var x: u32 = 0;
+ _ = [2]u8{
+ @intCast(S.f(&x)),
+ @intCast(S.f(&x)),
+ };
+
+ // Ensure function was run
+ try expect(x == 2);
+}
+
+test "array init with no result location has result type" {
+ const x = .{ .foo = [2]u16{
+ @intCast(10),
+ @intCast(20),
+ } };
+
+ try expect(x.foo.len == 2);
+ try expect(x.foo[0] == 10);
+ try expect(x.foo[1] == 20);
+}