Sema: resolve fields before checking tuple len

Closes #14400
This commit is contained in:
Veikka Tuominen 2023-01-21 23:12:12 +02:00
parent 5f5ab49168
commit 5259d11e3b
2 changed files with 6 additions and 0 deletions

View File

@ -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}", .{

View File

@ -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);
}