| ... | ... | @@ -574,3 +574,25 @@ test "tuple to array handles sentinel" { |
| 574 | 574 | }; |
| 575 | 575 | try expect(S.b[0] == 1); |
| 576 | 576 | } |
| 577 | |
| 578 | test "array init of container level array variable" { |
| 579 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO |
| 580 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO |
| 581 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| 582 | |
| 583 | const S = struct { |
| 584 | var pair: [2]usize = .{ 1, 2 }; |
| 585 | noinline fn foo(x: usize, y: usize) void { |
| 586 | pair = [2]usize{ x, y }; |
| 587 | } |
| 588 | noinline fn bar(x: usize, y: usize) void { |
| 589 | var tmp: [2]usize = .{ x, y }; |
| 590 | pair = tmp; |
| 591 | } |
| 592 | }; |
| 593 | try expectEqual([2]usize{ 1, 2 }, S.pair); |
| 594 | S.foo(3, 4); |
| 595 | try expectEqual([2]usize{ 3, 4 }, S.pair); |
| 596 | S.bar(5, 6); |
| 597 | try expectEqual([2]usize{ 5, 6 }, S.pair); |
| 598 | } |