From a31fe0ff12270ba2f957c2a957941a23f2143ad5 Mon Sep 17 00:00:00 2001 From: Veikka Tuominen Date: Mon, 21 Mar 2022 14:48:47 +0200 Subject: stage2: add way to print values with types --- src/type.zig | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) (limited to 'src/type.zig') diff --git a/src/type.zig b/src/type.zig index a29dc19f8d..6d27150412 100644 --- a/src/type.zig +++ b/src/type.zig @@ -1633,7 +1633,7 @@ pub const Type = extern union { }, .array_sentinel => { const payload = ty.castTag(.array_sentinel).?.data; - try writer.print("[{d}:{}]", .{ payload.len, payload.sentinel }); + try writer.print("[{d}:{}]", .{ payload.len, payload.sentinel.fmtValue(payload.elem_type) }); ty = payload.elem_type; continue; }, @@ -1648,8 +1648,7 @@ pub const Type = extern union { } try field_ty.format("", .{}, writer); if (val.tag() != .unreachable_value) { - try writer.writeAll(" = "); - try val.format("", .{}, writer); + try writer.print(" = {}", .{val.fmtValue(field_ty)}); } } try writer.writeAll("}"); @@ -1668,8 +1667,7 @@ pub const Type = extern union { try writer.writeAll(": "); try field_ty.format("", .{}, writer); if (val.tag() != .unreachable_value) { - try writer.writeAll(" = "); - try val.format("", .{}, writer); + try writer.print(" = {}", .{val.fmtValue(field_ty)}); } } try writer.writeAll("}"); @@ -1754,8 +1752,8 @@ pub const Type = extern union { const payload = ty.castTag(.pointer).?.data; if (payload.sentinel) |some| switch (payload.size) { .One, .C => unreachable, - .Many => try writer.print("[*:{}]", .{some}), - .Slice => try writer.print("[:{}]", .{some}), + .Many => try writer.print("[*:{}]", .{some.fmtValue(payload.pointee_type)}), + .Slice => try writer.print("[:{}]", .{some.fmtValue(payload.pointee_type)}), } else switch (payload.size) { .One => try writer.writeAll("*"), .Many => try writer.writeAll("[*]"), -- cgit v1.2.3