aboutsummaryrefslogtreecommitdiff
path: root/src/type.zig
diff options
context:
space:
mode:
authorVeikka Tuominen <git@vexu.eu>2022-03-21 14:48:47 +0200
committerVeikka Tuominen <git@vexu.eu>2022-03-21 15:03:42 +0200
commita31fe0ff12270ba2f957c2a957941a23f2143ad5 (patch)
tree3381f01ab6a370f0718c24732adf90cb03370a20 /src/type.zig
parent3d8d6c0a6d7a29396725467672023b5ec3adbce6 (diff)
downloadzig-a31fe0ff12270ba2f957c2a957941a23f2143ad5.tar.gz
zig-a31fe0ff12270ba2f957c2a957941a23f2143ad5.zip
stage2: add way to print values with types
Diffstat (limited to 'src/type.zig')
-rw-r--r--src/type.zig12
1 files changed, 5 insertions, 7 deletions
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("[*]"),