| ... | ... | @@ -495,6 +495,22 @@ pub fn formatType( |
| 495 | 495 | } |
| 496 | 496 | }, |
| 497 | 497 | .Struct => |info| { |
| 498 | if (info.is_tuple) { |
| 499 | // Skip the type and field names when formatting tuples. |
| 500 | if (max_depth == 0) { |
| 501 | return writer.writeAll("{ ... }"); |
| 502 | } |
| 503 | try writer.writeAll("{"); |
| 504 | inline for (info.fields) |f, i| { |
| 505 | if (i == 0) { |
| 506 | try writer.writeAll(" "); |
| 507 | } else { |
| 508 | try writer.writeAll(", "); |
| 509 | } |
| 510 | try formatType(@field(value, f.name), ANY, options, writer, max_depth - 1); |
| 511 | } |
| 512 | return writer.writeAll(" }"); |
| 513 | } |
| 498 | 514 | try writer.writeAll(@typeName(T)); |
| 499 | 515 | if (max_depth == 0) { |
| 500 | 516 | return writer.writeAll("{ ... }"); |
| ... | ... | @@ -2164,6 +2180,10 @@ test "struct" { |
| 2164 | 2180 | }; |
| 2165 | 2181 | |
| 2166 | 2182 | try expectFmt("S{ .a = 456, .b = error.Unused }", "{}", .{inst}); |
| 2183 | // Tuples |
| 2184 | try expectFmt("{ }", "{}", .{.{}}); |
| 2185 | try expectFmt("{ -1 }", "{}", .{.{-1}}); |
| 2186 | try expectFmt("{ -1, 42, 2.5e+04 }", "{}", .{.{ -1, 42, 0.25e5 }}); |
| 2167 | 2187 | } |
| 2168 | 2188 | |
| 2169 | 2189 | test "union" { |