authorgravatar for jacobly@ziglang.orgJacob Young <jacobly@ziglang.org> 2023-05-21 03:57:23-04:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2023-06-10 20:47:54-07:00
log84099e50fc0af3719f3819c6c2d37dedba1aaae4
tree0c6fa9d0659b219fbca3c854b6339680044dfc1d
parentbe1b23120648dff5e23d67b089c10b479564bffd

TypedValue: fix debug print crashes


1 files changed, 11 insertions(+), 0 deletions(-)

src/TypedValue.zig+11
...@@ -295,6 +295,9 @@ pub fn print(...@@ -295,6 +295,9 @@ pub fn print(
295 },295 },
296 .eu_payload_ptr => {296 .eu_payload_ptr => {
297 try writer.writeAll("&");297 try writer.writeAll("&");
298 if (level == 0) {
299 return writer.writeAll("(ptr)");
300 }
298301
299 const data = val.castTag(.eu_payload_ptr).?.data;302 const data = val.castTag(.eu_payload_ptr).?.data;
300303
...@@ -320,6 +323,10 @@ pub fn print(...@@ -320,6 +323,10 @@ pub fn print(
320 return;323 return;
321 },324 },
322 .opt_payload_ptr => {325 .opt_payload_ptr => {
326 if (level == 0) {
327 return writer.writeAll("&(ptr)");
328 }
329
323 const data = val.castTag(.opt_payload_ptr).?.data;330 const data = val.castTag(.opt_payload_ptr).?.data;
324331
325 var ty_val: Value.Payload.Ty = .{332 var ty_val: Value.Payload.Ty = .{
...@@ -359,6 +366,10 @@ pub fn print(...@@ -359,6 +366,10 @@ pub fn print(
359 inline .u64, .i64, .big_int => |x| return writer.print("{}", .{x}),366 inline .u64, .i64, .big_int => |x| return writer.print("{}", .{x}),
360 },367 },
361 .enum_tag => |enum_tag| {368 .enum_tag => |enum_tag| {
369 if (level == 0) {
370 return writer.writeAll("(enum)");
371 }
372
362 try writer.writeAll("@intToEnum(");373 try writer.writeAll("@intToEnum(");
363 try print(.{374 try print(.{
364 .ty = Type.type,375 .ty = Type.type,