authorgravatar for git@vexu.euVeikka Tuominen <git@vexu.eu> 2023-01-21 23:12:12+02:00
committergravatar for git@vexu.euVeikka Tuominen <git@vexu.eu> 2023-01-22 00:12:37+02:00
log5259d11e3b75b9b910fa1b0a479aedb702e256f6
tree692b93f290209be17548cde6c2cea2d32fd678e8
parent5f5ab491684f0f5dd235189416f9c3d85e8e9be0

Sema: resolve fields before checking tuple len

Closes #14400

2 files changed, 6 insertions(+), 0 deletions(-)

src/Sema.zig+1
......@@ -3948,6 +3948,7 @@ fn validateArrayInitTy(
39483948 return;
39493949 },
39503950 .Struct => if (ty.isTuple()) {
3951 _ = try sema.resolveTypeFields(ty);
39513952 const array_len = ty.arrayLen();
39523953 if (extra.init_count > array_len) {
39533954 return sema.fail(block, src, "expected at most {d} tuple fields; found {d}", .{
test/behavior/struct.zig+5
......@@ -1573,3 +1573,8 @@ test "struct fields get automatically reordered" {
15731573 };
15741574 try expect(@sizeOf(S1) == @sizeOf(S2));
15751575}
1576
1577test "directly initiating tuple like struct" {
1578 const a = struct { u8 }{8};
1579 try expect(a[0] == 8);
1580}