| author | |
| committer | |
| log | 5259d11e3b75b9b910fa1b0a479aedb702e256f6 |
| tree | 692b93f290209be17548cde6c2cea2d32fd678e8 |
| parent | 5f5ab491684f0f5dd235189416f9c3d85e8e9be0 |
Closes #144002 files changed, 6 insertions(+), 0 deletions(-)
src/Sema.zig+1| ... | @@ -3948,6 +3948,7 @@ fn validateArrayInitTy( | ... | @@ -3948,6 +3948,7 @@ fn validateArrayInitTy( |
| 3948 | return; | 3948 | return; |
| 3949 | }, | 3949 | }, |
| 3950 | .Struct => if (ty.isTuple()) { | 3950 | .Struct => if (ty.isTuple()) { |
| 3951 | _ = try sema.resolveTypeFields(ty); | ||
| 3951 | const array_len = ty.arrayLen(); | 3952 | const array_len = ty.arrayLen(); |
| 3952 | if (extra.init_count > array_len) { | 3953 | if (extra.init_count > array_len) { |
| 3953 | return sema.fail(block, src, "expected at most {d} tuple fields; found {d}", .{ | 3954 | 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" { | ... | @@ -1573,3 +1573,8 @@ test "struct fields get automatically reordered" { |
| 1573 | }; | 1573 | }; |
| 1574 | try expect(@sizeOf(S1) == @sizeOf(S2)); | 1574 | try expect(@sizeOf(S1) == @sizeOf(S2)); |
| 1575 | } | 1575 | } |
| 1576 | |||
| 1577 | test "directly initiating tuple like struct" { | ||
| 1578 | const a = struct { u8 }{8}; | ||
| 1579 | try expect(a[0] == 8); | ||
| 1580 | } |