Commit 5b9579845d

Nguyễn Gia Phong <cnx@loang.net>
2024-04-08 05:01:30
Document packed struct's backing int declaration
1 parent 271d896
Changed files (1)
doc/langref.html.in
@@ -3320,6 +3320,16 @@ fn doTheTest() !void {
             try expect(ordered[1] == 0x12);
         },
     }
+}
+      {#code_end#}
+      <p>
+      The backing integer is inferred from the fields' total bit width.
+      Optionally, it can be explicitly provided and enforced at compile time:
+      </p>
+      {#code_begin|test_err|test_missized_packed_struct|backing integer type 'u32' has bit size 32 but the struct fields have a total bit size of 24#}
+test "missized packed struct" {
+    const S = packed struct(u32) { a: u16, b: u8 };
+    _ = S{ .a = 4, .b = 2 };
 }
       {#code_end#}
       <p>