diff options
| author | Veikka Tuominen <git@vexu.eu> | 2022-11-04 17:47:53 +0200 |
|---|---|---|
| committer | Veikka Tuominen <git@vexu.eu> | 2022-11-04 23:13:49 +0200 |
| commit | 35afa3fd8bdc140baf9d135711833e836de04d86 (patch) | |
| tree | 37ad1c960d929b520da6ef336c5ea0a237292f38 /test/behavior | |
| parent | 799a558e393d1c8286e8faec2bf8930138d8b1f4 (diff) | |
| download | zig-35afa3fd8bdc140baf9d135711833e836de04d86.tar.gz zig-35afa3fd8bdc140baf9d135711833e836de04d86.zip | |
Sema: correct condition in validateArrayInit
Closes #13425
Diffstat (limited to 'test/behavior')
| -rw-r--r-- | test/behavior/array.zig | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/test/behavior/array.zig b/test/behavior/array.zig index 6311c4cd30..f1dcb3b95d 100644 --- a/test/behavior/array.zig +++ b/test/behavior/array.zig @@ -574,3 +574,25 @@ test "tuple to array handles sentinel" { }; try expect(S.b[0] == 1); } + +test "array init of container level array variable" { + if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO + + const S = struct { + var pair: [2]usize = .{ 1, 2 }; + noinline fn foo(x: usize, y: usize) void { + pair = [2]usize{ x, y }; + } + noinline fn bar(x: usize, y: usize) void { + var tmp: [2]usize = .{ x, y }; + pair = tmp; + } + }; + try expectEqual([2]usize{ 1, 2 }, S.pair); + S.foo(3, 4); + try expectEqual([2]usize{ 3, 4 }, S.pair); + S.bar(5, 6); + try expectEqual([2]usize{ 5, 6 }, S.pair); +} |
