╭─────────────╮ │scroll to top│ ╰─────────────╯ ╭ print_value.zig ──────────────────────────────────────────────╮ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ╰───────────────────────────────────────────────────────────────╯
╭ find file ─ ─ ─ ─ ─ ─ ─ ─ ─ ─╮ ╭────╮ ╭ clone ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ╮ │ │ │http│ ssh │ │ ╰ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─╯ ╰────╯ ╰ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ╯
450 break :root root; 451 }, 452 453 .offset_and_cast => |oac| if (oac.byte_offset == 0) root: { 454 try writer.print("@as({f}, @ptrCast(", .{oac.new_ptr_ty.fmt(pt)}); 455 const root = try printPtrDerivation(oac.parent.*, writer, pt, .rvalue, root_strat, ptr_depth - 1); 456 try writer.writeAll("))"); 457 break :root root; 458 } else root: { 459 try writer.print("@as({f}, @ptrFromInt(@intFromPtr(", .{oac.new_ptr_ty.fmt(pt)}); 460 const root = try printPtrDerivation(oac.parent.*, writer, pt, .rvalue, root_strat, ptr_depth - 1); 461 try writer.print(") + {d}))", .{oac.byte_offset}); 462 break :root root; 463 }, 464 465 .int, .nav_ptr, .uav_ptr, .comptime_alloc_ptr, .comptime_field_ptr => null, 466 }; 467 468 if (root_or_null == null) switch (root_strat) { 469 .str => |x| try writer.writeAll(x), 470 .print_val => |x| switch (derivation) { 471 .int => |int| try writer.print("@as({f}, @ptrFromInt(0x{x}))", .{ int.ptr_ty.fmt(pt), int.addr }), 472 .nav_ptr => |nav| try writer.print("{f}", .{ip.getNav(nav).fqn.fmt(ip)}), 473 .uav_ptr => |uav| { 474 const ty = Value.fromInterned(uav.val).typeOf(zcu); 475 try writer.print("@as({f}, ", .{ty.fmt(pt)}); 476 if (x.level == 0) { 477 try writer.writeAll("..."); 478 } else { 479 try print(Value.fromInterned(uav.val), writer, x.level - 1, pt, x.opt_sema); 480 } 481 try writer.writeByte(')'); 482 }, 483 .comptime_alloc_ptr => |info| { 484 try writer.print("@as({f}, ", .{info.val.typeOf(zcu).fmt(pt)}); 485 if (x.level == 0) { 486 try writer.writeAll("..."); 487 } else { 488 try print(info.val, writer, x.level - 1, pt, x.opt_sema); 489 } 490 try writer.writeByte(')'); 491 }, 492 .comptime_field_ptr => |val| { 493 const ty = val.typeOf(zcu); 494 try writer.print("@as({f}, ", .{ty.fmt(pt)}); 495 if (x.level == 0) { 496 try writer.writeAll("..."); 497 } else { 498 try print(val, writer, x.level - 1, pt, x.opt_sema); 499 } 500 try writer.writeByte(')'); 501 }, 502 else => unreachable, 503 }, 504 }; 505 506 if (need_kind == .lvalue and result_kind == .rvalue) { 507 try writer.writeAll(".*"); 508 } 509 510 return root_or_null orelse derivation; 511 } 512