aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVeikka Tuominen <git@vexu.eu>2023-01-21 23:12:12 +0200
committerVeikka Tuominen <git@vexu.eu>2023-01-22 00:12:37 +0200
commit5259d11e3b75b9b910fa1b0a479aedb702e256f6 (patch)
tree692b93f290209be17548cde6c2cea2d32fd678e8
parent5f5ab491684f0f5dd235189416f9c3d85e8e9be0 (diff)
downloadzig-5259d11e3b75b9b910fa1b0a479aedb702e256f6.tar.gz
zig-5259d11e3b75b9b910fa1b0a479aedb702e256f6.zip
Sema: resolve fields before checking tuple len
Closes #14400
-rw-r--r--src/Sema.zig1
-rw-r--r--test/behavior/struct.zig5
2 files changed, 6 insertions, 0 deletions
diff --git a/src/Sema.zig b/src/Sema.zig
index a0a071c572..8dc30ebbe5 100644
--- a/src/Sema.zig
+++ b/src/Sema.zig
@@ -3948,6 +3948,7 @@ fn validateArrayInitTy(
return;
},
.Struct => if (ty.isTuple()) {
+ _ = try sema.resolveTypeFields(ty);
const array_len = ty.arrayLen();
if (extra.init_count > array_len) {
return sema.fail(block, src, "expected at most {d} tuple fields; found {d}", .{
diff --git a/test/behavior/struct.zig b/test/behavior/struct.zig
index a32a0ed495..ed3e1ce88f 100644
--- a/test/behavior/struct.zig
+++ b/test/behavior/struct.zig
@@ -1573,3 +1573,8 @@ test "struct fields get automatically reordered" {
};
try expect(@sizeOf(S1) == @sizeOf(S2));
}
+
+test "directly initiating tuple like struct" {
+ const a = struct { u8 }{8};
+ try expect(a[0] == 8);
+}