zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

commit 50a1ca24ca2a4311097132d660b8244f252da82f (tree)
parent 1f76b4c6b84c1fd7d370bde75b8e37822bd85086
Author: Cody Tapscott <topolarity@tapscott.me>
Date:   Mon, 14 Mar 2022 10:37:23 -0700

Add test for issue #11139

Diffstat:
Mtest/behavior.zig | 1+
Atest/behavior/bugs/11139.zig | 25+++++++++++++++++++++++++
2 files changed, 26 insertions(+), 0 deletions(-)

diff --git a/test/behavior.zig b/test/behavior.zig @@ -62,6 +62,7 @@ test { _ = @import("behavior/bugs/11100.zig"); _ = @import("behavior/bugs/10970.zig"); _ = @import("behavior/bugs/11046.zig"); + _ = @import("behavior/bugs/11139.zig"); _ = @import("behavior/bugs/11165.zig"); _ = @import("behavior/call.zig"); _ = @import("behavior/cast.zig"); diff --git a/test/behavior/bugs/11139.zig b/test/behavior/bugs/11139.zig @@ -0,0 +1,25 @@ +const std = @import("std"); +const builtin = @import("builtin"); +const expect = std.testing.expect; + +test "store array of array of structs at comptime" { + if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; + if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; + if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; + + try expect(storeArrayOfArrayOfStructs() == 15); + comptime try expect(storeArrayOfArrayOfStructs() == 15); +} + +fn storeArrayOfArrayOfStructs() u8 { + const S = struct { + x: u8, + }; + + var cases = [_][1]S{ + [_]S{ + S{ .x = 15 }, + }, + }; + return cases[0][0].x; +}