| ... | ... | @@ -456,10 +456,10 @@ const ANY = "any"; |
| 456 | 456 | |
| 457 | 457 | pub fn defaultSpec(comptime T: type) [:0]const u8 { |
| 458 | 458 | switch (@typeInfo(T)) { |
| 459 | | .array => |_| return ANY, |
| 459 | .array, .vector => return ANY, |
| 460 | 460 | .pointer => |ptr_info| switch (ptr_info.size) { |
| 461 | 461 | .One => switch (@typeInfo(ptr_info.child)) { |
| 462 | | .array => |_| return ANY, |
| 462 | .array => return ANY, |
| 463 | 463 | else => {}, |
| 464 | 464 | }, |
| 465 | 465 | .Many, .C => return "*", |
| ... | ... | @@ -680,7 +680,7 @@ pub fn formatType( |
| 680 | 680 | try writer.writeAll("{ "); |
| 681 | 681 | var i: usize = 0; |
| 682 | 682 | while (i < info.len) : (i += 1) { |
| 683 | | try formatValue(value[i], actual_fmt, options, writer); |
| 683 | try formatType(value[i], actual_fmt, options, writer, max_depth - 1); |
| 684 | 684 | if (i < info.len - 1) { |
| 685 | 685 | try writer.writeAll(", "); |
| 686 | 686 | } |
| ... | ... | @@ -2608,6 +2608,22 @@ test "vector" { |
| 2608 | 2608 | try expectFmt("{ -2, -1, +0, +1 }", "{d:5}", .{vi64}); |
| 2609 | 2609 | try expectFmt("{ 1000, 2000, 3000, 4000 }", "{}", .{vu64}); |
| 2610 | 2610 | try expectFmt("{ 3e8, 7d0, bb8, fa0 }", "{x}", .{vu64}); |
| 2611 | |
| 2612 | const x: [4]u64 = undefined; |
| 2613 | const vp: @Vector(4, *const u64) = [_]*const u64{ &x[0], &x[1], &x[2], &x[3] }; |
| 2614 | const vop: @Vector(4, ?*const u64) = [_]?*const u64{ &x[0], null, null, &x[3] }; |
| 2615 | |
| 2616 | var expect_buffer: [@sizeOf(usize) * 2 * 4 + 64]u8 = undefined; |
| 2617 | try expectFmt(try bufPrint( |
| 2618 | &expect_buffer, |
| 2619 | "{{ {}, {}, {}, {} }}", |
| 2620 | .{ &x[0], &x[1], &x[2], &x[3] }, |
| 2621 | ), "{}", .{vp}); |
| 2622 | try expectFmt(try bufPrint( |
| 2623 | &expect_buffer, |
| 2624 | "{{ {?}, null, null, {?} }}", |
| 2625 | .{ &x[0], &x[3] }, |
| 2626 | ), "{any}", .{vop}); |
| 2611 | 2627 | } |
| 2612 | 2628 | |
| 2613 | 2629 | test "enum-literal" { |