| ... | @@ -374,9 +374,10 @@ pub fn formatType( | ... | @@ -374,9 +374,10 @@ pub fn formatType( |
| 374 | return output(context, "{ ... }"); | 374 | return output(context, "{ ... }"); |
| 375 | } | 375 | } |
| 376 | comptime var field_i = 0; | 376 | comptime var field_i = 0; |
| | 377 | try output(context, "{"); |
| 377 | inline while (field_i < @memberCount(T)) : (field_i += 1) { | 378 | inline while (field_i < @memberCount(T)) : (field_i += 1) { |
| 378 | if (field_i == 0) { | 379 | if (field_i == 0) { |
| 379 | try output(context, "{ ."); | 380 | try output(context, " ."); |
| 380 | } else { | 381 | } else { |
| 381 | try output(context, ", ."); | 382 | try output(context, ", ."); |
| 382 | } | 383 | } |
| ... | @@ -1439,6 +1440,21 @@ test "struct.self-referential" { | ... | @@ -1439,6 +1440,21 @@ test "struct.self-referential" { |
| 1439 | try testFmt("S{ .a = S{ .a = S{ .a = S{ ... } } } }", "{}", inst); | 1440 | try testFmt("S{ .a = S{ .a = S{ .a = S{ ... } } } }", "{}", inst); |
| 1440 | } | 1441 | } |
| 1441 | | 1442 | |
| | 1443 | test "struct.zero-size" { |
| | 1444 | const A = struct { |
| | 1445 | fn foo() void {} |
| | 1446 | }; |
| | 1447 | const B = struct { |
| | 1448 | a: A, |
| | 1449 | c: i32, |
| | 1450 | }; |
| | 1451 | |
| | 1452 | const a = A{}; |
| | 1453 | const b = B{ .a = a, .c = 0 }; |
| | 1454 | |
| | 1455 | try testFmt("B{ .a = A{ }, .c = 0 }", "{}", b); |
| | 1456 | } |
| | 1457 | |
| 1442 | test "bytes.hex" { | 1458 | test "bytes.hex" { |
| 1443 | const some_bytes = "\xCA\xFE\xBA\xBE"; | 1459 | const some_bytes = "\xCA\xFE\xBA\xBE"; |
| 1444 | try testFmt("lowercase: cafebabe\n", "lowercase: {x}\n", some_bytes); | 1460 | try testFmt("lowercase: cafebabe\n", "lowercase: {x}\n", some_bytes); |