| author | |
| committer | |
| log | dd4eb86bc1614de29cdbdfee1c5dcbea78eee9c7 |
| tree | 4159c0f6c08749da6feec42652f40d8c65856cf1 |
| parent | c9915e949ebd4aa0d4d24ef5808ba0b1cff2ecfe |
5 files changed, 73 insertions(+), 68 deletions(-)
src/InternPool.zig+14-9| ... | @@ -1887,18 +1887,23 @@ pub const NullTerminatedString = enum(u32) { | ... | @@ -1887,18 +1887,23 @@ pub const NullTerminatedString = enum(u32) { |
| 1887 | const FormatData = struct { | 1887 | const FormatData = struct { |
| 1888 | string: NullTerminatedString, | 1888 | string: NullTerminatedString, |
| 1889 | ip: *const InternPool, | 1889 | ip: *const InternPool, |
| 1890 | id: bool, | ||
| 1890 | }; | 1891 | }; |
| 1891 | fn format(data: FormatData, bw: *std.io.Writer, comptime specifier: []const u8) std.io.Writer.Error!void { | 1892 | fn format(data: FormatData, writer: *std.io.Writer) std.io.Writer.Error!void { |
| 1892 | const slice = data.string.toSlice(data.ip); | 1893 | const slice = data.string.toSlice(data.ip); |
| 1893 | if (comptime std.mem.eql(u8, specifier, "")) { | 1894 | if (!data.id) { |
| 1894 | try bw.writeAll(slice); | 1895 | try writer.writeAll(slice); |
| 1895 | } else if (comptime std.mem.eql(u8, specifier, "i")) { | 1896 | } else { |
| 1896 | try bw.print("{fp}", .{std.zig.fmtId(slice)}); | 1897 | try writer.print("{f}", .{std.zig.fmtIdP(slice)}); |
| 1897 | } else @compileError("invalid format string '" ++ specifier ++ "' for '" ++ @typeName(NullTerminatedString) ++ "'"); | 1898 | } |
| 1899 | } | ||
| 1900 | |||
| 1901 | pub fn fmt(string: NullTerminatedString, ip: *const InternPool) std.fmt.Formatter(FormatData, format) { | ||
| 1902 | return .{ .data = .{ .string = string, .ip = ip, .id = false } }; | ||
| 1898 | } | 1903 | } |
| 1899 | 1904 | ||
| 1900 | pub fn fmt(string: NullTerminatedString, ip: *const InternPool) std.fmt.Formatter(format) { | 1905 | pub fn fmtId(string: NullTerminatedString, ip: *const InternPool) std.fmt.Formatter(FormatData, format) { |
| 1901 | return .{ .data = .{ .string = string, .ip = ip } }; | 1906 | return .{ .data = .{ .string = string, .ip = ip, .id = true } }; |
| 1902 | } | 1907 | } |
| 1903 | 1908 | ||
| 1904 | const debug_state = InternPool.debug_state; | 1909 | const debug_state = InternPool.debug_state; |
| ... | @@ -11409,7 +11414,7 @@ pub fn dumpGenericInstancesFallible(ip: *const InternPool, allocator: Allocator) | ... | @@ -11409,7 +11414,7 @@ pub fn dumpGenericInstancesFallible(ip: *const InternPool, allocator: Allocator) |
| 11409 | var it = instances.iterator(); | 11414 | var it = instances.iterator(); |
| 11410 | while (it.next()) |entry| { | 11415 | while (it.next()) |entry| { |
| 11411 | const generic_fn_owner_nav = ip.getNav(ip.funcDeclInfo(entry.key_ptr.*).owner_nav); | 11416 | const generic_fn_owner_nav = ip.getNav(ip.funcDeclInfo(entry.key_ptr.*).owner_nav); |
| 11412 | try stderr_bw.print("{f} ({}): \n", .{ generic_fn_owner_nav.name.fmt(ip), entry.value_ptr.items.len }); | 11417 | try stderr_bw.print("{f} ({d}): \n", .{ generic_fn_owner_nav.name.fmt(ip), entry.value_ptr.items.len }); |
| 11413 | for (entry.value_ptr.items) |index| { | 11418 | for (entry.value_ptr.items) |index| { |
| 11414 | const unwrapped_index = index.unwrap(ip); | 11419 | const unwrapped_index = index.unwrap(ip); |
| 11415 | const func = ip.extraFuncInstance(unwrapped_index.tid, unwrapped_index.getExtra(ip), unwrapped_index.getData(ip)); | 11420 | const func = ip.extraFuncInstance(unwrapped_index.tid, unwrapped_index.getExtra(ip), unwrapped_index.getData(ip)); |
src/crash_report.zig+40-40| ... | @@ -80,19 +80,19 @@ fn dumpStatusReport() !void { | ... | @@ -80,19 +80,19 @@ fn dumpStatusReport() !void { |
| 80 | var fba = std.heap.FixedBufferAllocator.init(&crash_heap); | 80 | var fba = std.heap.FixedBufferAllocator.init(&crash_heap); |
| 81 | const allocator = fba.allocator(); | 81 | const allocator = fba.allocator(); |
| 82 | 82 | ||
| 83 | var stderr_fw = std.fs.File.stderr().writer(); | 83 | var stderr_fw = std.fs.File.stderr().writer(&.{}); |
| 84 | var stderr_bw = stderr_fw.interface().unbuffered(); | 84 | const stderr = &stderr_fw.interface; |
| 85 | const block: *Sema.Block = anal.block; | 85 | const block: *Sema.Block = anal.block; |
| 86 | const zcu = anal.sema.pt.zcu; | 86 | const zcu = anal.sema.pt.zcu; |
| 87 | 87 | ||
| 88 | const file, const src_base_node = Zcu.LazySrcLoc.resolveBaseNode(block.src_base_inst, zcu) orelse { | 88 | const file, const src_base_node = Zcu.LazySrcLoc.resolveBaseNode(block.src_base_inst, zcu) orelse { |
| 89 | const file = zcu.fileByIndex(block.src_base_inst.resolveFile(&zcu.intern_pool)); | 89 | const file = zcu.fileByIndex(block.src_base_inst.resolveFile(&zcu.intern_pool)); |
| 90 | try stderr_bw.print("Analyzing lost instruction in file '{f}'. This should not happen!\n\n", .{file.path.fmt(zcu.comp)}); | 90 | try stderr.print("Analyzing lost instruction in file '{f}'. This should not happen!\n\n", .{file.path.fmt(zcu.comp)}); |
| 91 | return; | 91 | return; |
| 92 | }; | 92 | }; |
| 93 | 93 | ||
| 94 | try stderr_bw.writeAll("Analyzing "); | 94 | try stderr.writeAll("Analyzing "); |
| 95 | try stderr_bw.print("Analyzing '{f}'\n", .{file.path.fmt(zcu.comp)}); | 95 | try stderr.print("Analyzing '{f}'\n", .{file.path.fmt(zcu.comp)}); |
| 96 | 96 | ||
| 97 | print_zir.renderInstructionContext( | 97 | print_zir.renderInstructionContext( |
| 98 | allocator, | 98 | allocator, |
| ... | @@ -101,12 +101,12 @@ fn dumpStatusReport() !void { | ... | @@ -101,12 +101,12 @@ fn dumpStatusReport() !void { |
| 101 | file, | 101 | file, |
| 102 | src_base_node, | 102 | src_base_node, |
| 103 | 6, // indent | 103 | 6, // indent |
| 104 | &stderr_bw, | 104 | stderr, |
| 105 | ) catch |err| switch (err) { | 105 | ) catch |err| switch (err) { |
| 106 | error.OutOfMemory => try stderr_bw.writeAll(" <out of memory dumping zir>\n"), | 106 | error.OutOfMemory => try stderr.writeAll(" <out of memory dumping zir>\n"), |
| 107 | else => |e| return e, | 107 | else => |e| return e, |
| 108 | }; | 108 | }; |
| 109 | try stderr_bw.print( | 109 | try stderr.print( |
| 110 | \\ For full context, use the command | 110 | \\ For full context, use the command |
| 111 | \\ zig ast-check -t {f} | 111 | \\ zig ast-check -t {f} |
| 112 | \\ | 112 | \\ |
| ... | @@ -117,30 +117,30 @@ fn dumpStatusReport() !void { | ... | @@ -117,30 +117,30 @@ fn dumpStatusReport() !void { |
| 117 | while (parent) |curr| { | 117 | while (parent) |curr| { |
| 118 | fba.reset(); | 118 | fba.reset(); |
| 119 | const cur_block_file = zcu.fileByIndex(curr.block.src_base_inst.resolveFile(&zcu.intern_pool)); | 119 | const cur_block_file = zcu.fileByIndex(curr.block.src_base_inst.resolveFile(&zcu.intern_pool)); |
| 120 | try stderr_bw.print(" in {f}\n", .{cur_block_file.path.fmt(zcu.comp)}); | 120 | try stderr.print(" in {f}\n", .{cur_block_file.path.fmt(zcu.comp)}); |
| 121 | _, const cur_block_src_base_node = Zcu.LazySrcLoc.resolveBaseNode(curr.block.src_base_inst, zcu) orelse { | 121 | _, const cur_block_src_base_node = Zcu.LazySrcLoc.resolveBaseNode(curr.block.src_base_inst, zcu) orelse { |
| 122 | try stderr_bw.writeAll(" > [lost instruction; this should not happen]\n"); | 122 | try stderr.writeAll(" > [lost instruction; this should not happen]\n"); |
| 123 | parent = curr.parent; | 123 | parent = curr.parent; |
| 124 | continue; | 124 | continue; |
| 125 | }; | 125 | }; |
| 126 | try stderr_bw.writeAll(" > "); | 126 | try stderr.writeAll(" > "); |
| 127 | print_zir.renderSingleInstruction( | 127 | print_zir.renderSingleInstruction( |
| 128 | allocator, | 128 | allocator, |
| 129 | curr.body[curr.body_index], | 129 | curr.body[curr.body_index], |
| 130 | cur_block_file, | 130 | cur_block_file, |
| 131 | cur_block_src_base_node, | 131 | cur_block_src_base_node, |
| 132 | 6, // indent | 132 | 6, // indent |
| 133 | &stderr_bw, | 133 | stderr, |
| 134 | ) catch |err| switch (err) { | 134 | ) catch |err| switch (err) { |
| 135 | error.OutOfMemory => try stderr_bw.writeAll(" <out of memory dumping zir>\n"), | 135 | error.OutOfMemory => try stderr.writeAll(" <out of memory dumping zir>\n"), |
| 136 | else => |e| return e, | 136 | else => |e| return e, |
| 137 | }; | 137 | }; |
| 138 | try stderr_bw.writeAll("\n"); | 138 | try stderr.writeAll("\n"); |
| 139 | 139 | ||
| 140 | parent = curr.parent; | 140 | parent = curr.parent; |
| 141 | } | 141 | } |
| 142 | 142 | ||
| 143 | try stderr_bw.writeByte('\n'); | 143 | try stderr.writeByte('\n'); |
| 144 | } | 144 | } |
| 145 | 145 | ||
| 146 | var crash_heap: [16 * 4096]u8 = undefined; | 146 | var crash_heap: [16 * 4096]u8 = undefined; |
| ... | @@ -269,9 +269,9 @@ const StackContext = union(enum) { | ... | @@ -269,9 +269,9 @@ const StackContext = union(enum) { |
| 269 | debug.dumpCurrentStackTrace(ct.ret_addr); | 269 | debug.dumpCurrentStackTrace(ct.ret_addr); |
| 270 | }, | 270 | }, |
| 271 | .exception => |context| { | 271 | .exception => |context| { |
| 272 | var stderr_fw = std.fs.File.stderr().writer(); | 272 | var stderr_fw = std.fs.File.stderr().writer(&.{}); |
| 273 | var stderr_bw = stderr_fw.interface().unbuffered(); | 273 | const stderr = &stderr_fw.interface; |
| 274 | debug.dumpStackTraceFromBase(context, &stderr_bw); | 274 | debug.dumpStackTraceFromBase(context, stderr); |
| 275 | }, | 275 | }, |
| 276 | .not_supported => { | 276 | .not_supported => { |
| 277 | std.fs.File.stderr().writeAll("Stack trace not supported on this platform.\n") catch {}; | 277 | std.fs.File.stderr().writeAll("Stack trace not supported on this platform.\n") catch {}; |
| ... | @@ -381,20 +381,20 @@ const PanicSwitch = struct { | ... | @@ -381,20 +381,20 @@ const PanicSwitch = struct { |
| 381 | 381 | ||
| 382 | state.recover_stage = .release_mutex; | 382 | state.recover_stage = .release_mutex; |
| 383 | 383 | ||
| 384 | var stderr_fw = std.fs.File.stderr().writer(); | 384 | var stderr_fw = std.fs.File.stderr().writer(&.{}); |
| 385 | var stderr_bw = stderr_fw.interface().unbuffered(); | 385 | const stderr = &stderr_fw.interface; |
| 386 | if (builtin.single_threaded) { | 386 | if (builtin.single_threaded) { |
| 387 | stderr_bw.print("panic: ", .{}) catch goTo(releaseMutex, .{state}); | 387 | stderr.print("panic: ", .{}) catch goTo(releaseMutex, .{state}); |
| 388 | } else { | 388 | } else { |
| 389 | const current_thread_id = std.Thread.getCurrentId(); | 389 | const current_thread_id = std.Thread.getCurrentId(); |
| 390 | stderr_bw.print("thread {} panic: ", .{current_thread_id}) catch goTo(releaseMutex, .{state}); | 390 | stderr.print("thread {} panic: ", .{current_thread_id}) catch goTo(releaseMutex, .{state}); |
| 391 | } | 391 | } |
| 392 | stderr_bw.print("{s}\n", .{msg}) catch goTo(releaseMutex, .{state}); | 392 | stderr.print("{s}\n", .{msg}) catch goTo(releaseMutex, .{state}); |
| 393 | 393 | ||
| 394 | state.recover_stage = .report_stack; | 394 | state.recover_stage = .report_stack; |
| 395 | 395 | ||
| 396 | dumpStatusReport() catch |err| { | 396 | dumpStatusReport() catch |err| { |
| 397 | stderr_bw.print("\nIntercepted error.{} while dumping current state. Continuing...\n", .{err}) catch {}; | 397 | stderr.print("\nIntercepted error.{} while dumping current state. Continuing...\n", .{err}) catch {}; |
| 398 | }; | 398 | }; |
| 399 | 399 | ||
| 400 | goTo(reportStack, .{state}); | 400 | goTo(reportStack, .{state}); |
| ... | @@ -409,9 +409,9 @@ const PanicSwitch = struct { | ... | @@ -409,9 +409,9 @@ const PanicSwitch = struct { |
| 409 | recover(state, trace, stack, msg); | 409 | recover(state, trace, stack, msg); |
| 410 | 410 | ||
| 411 | state.recover_stage = .release_mutex; | 411 | state.recover_stage = .release_mutex; |
| 412 | var stderr_fw = std.fs.File.stderr().writer(); | 412 | var stderr_fw = std.fs.File.stderr().writer(&.{}); |
| 413 | var stderr_bw = stderr_fw.interface().unbuffered(); | 413 | const stderr = &stderr_fw.interface; |
| 414 | stderr_bw.writeAll("\nOriginal Error:\n") catch {}; | 414 | stderr.writeAll("\nOriginal Error:\n") catch {}; |
| 415 | goTo(reportStack, .{state}); | 415 | goTo(reportStack, .{state}); |
| 416 | } | 416 | } |
| 417 | 417 | ||
| ... | @@ -481,9 +481,9 @@ const PanicSwitch = struct { | ... | @@ -481,9 +481,9 @@ const PanicSwitch = struct { |
| 481 | recover(state, trace, stack, msg); | 481 | recover(state, trace, stack, msg); |
| 482 | 482 | ||
| 483 | state.recover_stage = .silent_abort; | 483 | state.recover_stage = .silent_abort; |
| 484 | var stderr_fw = std.fs.File.stderr().writer(); | 484 | var stderr_fw = std.fs.File.stderr().writer(&.{}); |
| 485 | var stderr_bw = stderr_fw.interface().unbuffered(); | 485 | const stderr = &stderr_fw.interface; |
| 486 | stderr_bw.writeAll("Aborting...\n") catch {}; | 486 | stderr.writeAll("Aborting...\n") catch {}; |
| 487 | goTo(abort, .{}); | 487 | goTo(abort, .{}); |
| 488 | } | 488 | } |
| 489 | 489 | ||
| ... | @@ -510,11 +510,11 @@ const PanicSwitch = struct { | ... | @@ -510,11 +510,11 @@ const PanicSwitch = struct { |
| 510 | // lower the verbosity, and restore it at the end if we don't panic. | 510 | // lower the verbosity, and restore it at the end if we don't panic. |
| 511 | state.recover_verbosity = .message_only; | 511 | state.recover_verbosity = .message_only; |
| 512 | 512 | ||
| 513 | var stderr_fw = std.fs.File.stderr().writer(); | 513 | var stderr_fw = std.fs.File.stderr().writer(&.{}); |
| 514 | var stderr_bw = stderr_fw.interface().unbuffered(); | 514 | const stderr = &stderr_fw.interface; |
| 515 | stderr_bw.writeAll("\nPanicked during a panic: ") catch {}; | 515 | stderr.writeAll("\nPanicked during a panic: ") catch {}; |
| 516 | stderr_bw.writeAll(msg) catch {}; | 516 | stderr.writeAll(msg) catch {}; |
| 517 | stderr_bw.writeAll("\nInner panic stack:\n") catch {}; | 517 | stderr.writeAll("\nInner panic stack:\n") catch {}; |
| 518 | if (trace) |t| { | 518 | if (trace) |t| { |
| 519 | debug.dumpStackTrace(t.*); | 519 | debug.dumpStackTrace(t.*); |
| 520 | } | 520 | } |
| ... | @@ -525,11 +525,11 @@ const PanicSwitch = struct { | ... | @@ -525,11 +525,11 @@ const PanicSwitch = struct { |
| 525 | .message_only => { | 525 | .message_only => { |
| 526 | state.recover_verbosity = .silent; | 526 | state.recover_verbosity = .silent; |
| 527 | 527 | ||
| 528 | var stderr_fw = std.fs.File.stderr().writer(); | 528 | var stderr_fw = std.fs.File.stderr().writer(&.{}); |
| 529 | var stderr_bw = stderr_fw.interface().unbuffered(); | 529 | const stderr = &stderr_fw.interface; |
| 530 | stderr_bw.writeAll("\nPanicked while dumping inner panic stack: ") catch {}; | 530 | stderr.writeAll("\nPanicked while dumping inner panic stack: ") catch {}; |
| 531 | stderr_bw.writeAll(msg) catch {}; | 531 | stderr.writeAll(msg) catch {}; |
| 532 | stderr_bw.writeByte('\n') catch {}; | 532 | stderr.writeByte('\n') catch {}; |
| 533 | 533 | ||
| 534 | // If we succeed, restore all the way to dumping the stack. | 534 | // If we succeed, restore all the way to dumping the stack. |
| 535 | state.recover_verbosity = .message_and_stack; | 535 | state.recover_verbosity = .message_and_stack; |
src/link/SpirV.zig+3-3| ... | @@ -206,7 +206,7 @@ pub fn flush( | ... | @@ -206,7 +206,7 @@ pub fn flush( |
| 206 | var error_info: std.io.Writer.Allocating = .init(self.object.gpa); | 206 | var error_info: std.io.Writer.Allocating = .init(self.object.gpa); |
| 207 | defer error_info.deinit(); | 207 | defer error_info.deinit(); |
| 208 | 208 | ||
| 209 | try error_info.interface.writeAll("zig_errors:"); | 209 | try error_info.writer.writeAll("zig_errors:"); |
| 210 | const ip = &self.base.comp.zcu.?.intern_pool; | 210 | const ip = &self.base.comp.zcu.?.intern_pool; |
| 211 | for (ip.global_error_set.getNamesFromMainThread()) |name| { | 211 | for (ip.global_error_set.getNamesFromMainThread()) |name| { |
| 212 | // Errors can contain pretty much any character - to encode them in a string we must escape | 212 | // Errors can contain pretty much any character - to encode them in a string we must escape |
| ... | @@ -214,9 +214,9 @@ pub fn flush( | ... | @@ -214,9 +214,9 @@ pub fn flush( |
| 214 | // name if it contains no strange characters is nice for debugging. URI encoding fits the bill. | 214 | // name if it contains no strange characters is nice for debugging. URI encoding fits the bill. |
| 215 | // We're using : as separator, which is a reserved character. | 215 | // We're using : as separator, which is a reserved character. |
| 216 | 216 | ||
| 217 | try error_info.interface.writeByte(':'); | 217 | try error_info.writer.writeByte(':'); |
| 218 | try std.Uri.Component.percentEncode( | 218 | try std.Uri.Component.percentEncode( |
| 219 | &error_info.interface, | 219 | &error_info.writer, |
| 220 | name.toSlice(ip), | 220 | name.toSlice(ip), |
| 221 | struct { | 221 | struct { |
| 222 | fn isValidChar(c: u8) bool { | 222 | fn isValidChar(c: u8) bool { |
src/print_zir.zig+13-13| ... | @@ -42,7 +42,7 @@ pub fn renderAsText(gpa: Allocator, tree: ?Ast, zir: Zir, bw: *std.io.Writer) !v | ... | @@ -42,7 +42,7 @@ pub fn renderAsText(gpa: Allocator, tree: ?Ast, zir: Zir, bw: *std.io.Writer) !v |
| 42 | 42 | ||
| 43 | const import_path = zir.nullTerminatedString(item.data.name); | 43 | const import_path = zir.nullTerminatedString(item.data.name); |
| 44 | try bw.print(" @import(\"{f}\") ", .{ | 44 | try bw.print(" @import(\"{f}\") ", .{ |
| 45 | std.zig.fmtEscapes(import_path), | 45 | std.zig.fmtString(import_path), |
| 46 | }); | 46 | }); |
| 47 | try writer.writeSrcTokAbs(bw, item.data.token); | 47 | try writer.writeSrcTokAbs(bw, item.data.token); |
| 48 | try bw.writeAll("\n"); | 48 | try bw.writeAll("\n"); |
| ... | @@ -785,7 +785,7 @@ const Writer = struct { | ... | @@ -785,7 +785,7 @@ const Writer = struct { |
| 785 | ) Error!void { | 785 | ) Error!void { |
| 786 | const inst_data = self.code.instructions.items(.data)[@intFromEnum(inst)].str; | 786 | const inst_data = self.code.instructions.items(.data)[@intFromEnum(inst)].str; |
| 787 | const str = inst_data.get(self.code); | 787 | const str = inst_data.get(self.code); |
| 788 | try stream.print("\"{f}\")", .{std.zig.fmtEscapes(str)}); | 788 | try stream.print("\"{f}\")", .{std.zig.fmtString(str)}); |
| 789 | } | 789 | } |
| 790 | 790 | ||
| 791 | fn writeSliceStart(self: *Writer, stream: *std.io.Writer, inst: Zir.Inst.Index) !void { | 791 | fn writeSliceStart(self: *Writer, stream: *std.io.Writer, inst: Zir.Inst.Index) !void { |
| ... | @@ -942,7 +942,7 @@ const Writer = struct { | ... | @@ -942,7 +942,7 @@ const Writer = struct { |
| 942 | const extra = self.code.extraData(Zir.Inst.Param, inst_data.payload_index); | 942 | const extra = self.code.extraData(Zir.Inst.Param, inst_data.payload_index); |
| 943 | const body = self.code.bodySlice(extra.end, extra.data.type.body_len); | 943 | const body = self.code.bodySlice(extra.end, extra.data.type.body_len); |
| 944 | try stream.print("\"{f}\", ", .{ | 944 | try stream.print("\"{f}\", ", .{ |
| 945 | std.zig.fmtEscapes(self.code.nullTerminatedString(extra.data.name)), | 945 | std.zig.fmtString(self.code.nullTerminatedString(extra.data.name)), |
| 946 | }); | 946 | }); |
| 947 | 947 | ||
| 948 | if (extra.data.type.is_generic) try stream.writeAll("[generic] "); | 948 | if (extra.data.type.is_generic) try stream.writeAll("[generic] "); |
| ... | @@ -1212,7 +1212,7 @@ const Writer = struct { | ... | @@ -1212,7 +1212,7 @@ const Writer = struct { |
| 1212 | try stream.writeAll(", "); | 1212 | try stream.writeAll(", "); |
| 1213 | } else { | 1213 | } else { |
| 1214 | const asm_source = self.code.nullTerminatedString(extra.data.asm_source); | 1214 | const asm_source = self.code.nullTerminatedString(extra.data.asm_source); |
| 1215 | try stream.print("\"{f}\", ", .{std.zig.fmtEscapes(asm_source)}); | 1215 | try stream.print("\"{f}\", ", .{std.zig.fmtString(asm_source)}); |
| 1216 | } | 1216 | } |
| 1217 | try stream.writeAll(", "); | 1217 | try stream.writeAll(", "); |
| 1218 | 1218 | ||
| ... | @@ -1230,7 +1230,7 @@ const Writer = struct { | ... | @@ -1230,7 +1230,7 @@ const Writer = struct { |
| 1230 | const name = self.code.nullTerminatedString(output.data.name); | 1230 | const name = self.code.nullTerminatedString(output.data.name); |
| 1231 | const constraint = self.code.nullTerminatedString(output.data.constraint); | 1231 | const constraint = self.code.nullTerminatedString(output.data.constraint); |
| 1232 | try stream.print("output({fp}, \"{f}\", ", .{ | 1232 | try stream.print("output({fp}, \"{f}\", ", .{ |
| 1233 | std.zig.fmtId(name), std.zig.fmtEscapes(constraint), | 1233 | std.zig.fmtId(name), std.zig.fmtString(constraint), |
| 1234 | }); | 1234 | }); |
| 1235 | try self.writeFlag(stream, "->", is_type); | 1235 | try self.writeFlag(stream, "->", is_type); |
| 1236 | try self.writeInstRef(stream, output.data.operand); | 1236 | try self.writeInstRef(stream, output.data.operand); |
| ... | @@ -1249,7 +1249,7 @@ const Writer = struct { | ... | @@ -1249,7 +1249,7 @@ const Writer = struct { |
| 1249 | const name = self.code.nullTerminatedString(input.data.name); | 1249 | const name = self.code.nullTerminatedString(input.data.name); |
| 1250 | const constraint = self.code.nullTerminatedString(input.data.constraint); | 1250 | const constraint = self.code.nullTerminatedString(input.data.constraint); |
| 1251 | try stream.print("input({fp}, \"{f}\", ", .{ | 1251 | try stream.print("input({fp}, \"{f}\", ", .{ |
| 1252 | std.zig.fmtId(name), std.zig.fmtEscapes(constraint), | 1252 | std.zig.fmtId(name), std.zig.fmtString(constraint), |
| 1253 | }); | 1253 | }); |
| 1254 | try self.writeInstRef(stream, input.data.operand); | 1254 | try self.writeInstRef(stream, input.data.operand); |
| 1255 | try stream.writeAll(")"); | 1255 | try stream.writeAll(")"); |
| ... | @@ -1308,7 +1308,7 @@ const Writer = struct { | ... | @@ -1308,7 +1308,7 @@ const Writer = struct { |
| 1308 | .field => { | 1308 | .field => { |
| 1309 | const field_name = self.code.nullTerminatedString(extra.data.field_name_start); | 1309 | const field_name = self.code.nullTerminatedString(extra.data.field_name_start); |
| 1310 | try self.writeInstRef(stream, extra.data.obj_ptr); | 1310 | try self.writeInstRef(stream, extra.data.obj_ptr); |
| 1311 | try stream.print(", \"{f}\"", .{std.zig.fmtEscapes(field_name)}); | 1311 | try stream.print(", \"{f}\"", .{std.zig.fmtString(field_name)}); |
| 1312 | }, | 1312 | }, |
| 1313 | } | 1313 | } |
| 1314 | try stream.writeAll(", ["); | 1314 | try stream.writeAll(", ["); |
| ... | @@ -2212,7 +2212,7 @@ const Writer = struct { | ... | @@ -2212,7 +2212,7 @@ const Writer = struct { |
| 2212 | const extra = self.code.extraData(Zir.Inst.Field, inst_data.payload_index).data; | 2212 | const extra = self.code.extraData(Zir.Inst.Field, inst_data.payload_index).data; |
| 2213 | const name = self.code.nullTerminatedString(extra.field_name_start); | 2213 | const name = self.code.nullTerminatedString(extra.field_name_start); |
| 2214 | try self.writeInstRef(stream, extra.lhs); | 2214 | try self.writeInstRef(stream, extra.lhs); |
| 2215 | try stream.print(", \"{f}\") ", .{std.zig.fmtEscapes(name)}); | 2215 | try stream.print(", \"{f}\") ", .{std.zig.fmtString(name)}); |
| 2216 | try self.writeSrcNode(stream, inst_data.src_node); | 2216 | try self.writeSrcNode(stream, inst_data.src_node); |
| 2217 | } | 2217 | } |
| 2218 | 2218 | ||
| ... | @@ -2253,7 +2253,7 @@ const Writer = struct { | ... | @@ -2253,7 +2253,7 @@ const Writer = struct { |
| 2253 | ) Error!void { | 2253 | ) Error!void { |
| 2254 | const inst_data = self.code.instructions.items(.data)[@intFromEnum(inst)].str_tok; | 2254 | const inst_data = self.code.instructions.items(.data)[@intFromEnum(inst)].str_tok; |
| 2255 | const str = inst_data.get(self.code); | 2255 | const str = inst_data.get(self.code); |
| 2256 | try stream.print("\"{f}\") ", .{std.zig.fmtEscapes(str)}); | 2256 | try stream.print("\"{f}\") ", .{std.zig.fmtString(str)}); |
| 2257 | try self.writeSrcTok(stream, inst_data.src_tok); | 2257 | try self.writeSrcTok(stream, inst_data.src_tok); |
| 2258 | } | 2258 | } |
| 2259 | 2259 | ||
| ... | @@ -2261,7 +2261,7 @@ const Writer = struct { | ... | @@ -2261,7 +2261,7 @@ const Writer = struct { |
| 2261 | const inst_data = self.code.instructions.items(.data)[@intFromEnum(inst)].str_op; | 2261 | const inst_data = self.code.instructions.items(.data)[@intFromEnum(inst)].str_op; |
| 2262 | const str = inst_data.getStr(self.code); | 2262 | const str = inst_data.getStr(self.code); |
| 2263 | try self.writeInstRef(stream, inst_data.operand); | 2263 | try self.writeInstRef(stream, inst_data.operand); |
| 2264 | try stream.print(", \"{f}\")", .{std.zig.fmtEscapes(str)}); | 2264 | try stream.print(", \"{f}\")", .{std.zig.fmtString(str)}); |
| 2265 | } | 2265 | } |
| 2266 | 2266 | ||
| 2267 | fn writeFunc( | 2267 | fn writeFunc( |
| ... | @@ -2703,10 +2703,10 @@ const Writer = struct { | ... | @@ -2703,10 +2703,10 @@ const Writer = struct { |
| 2703 | try self.writeInstIndex(stream, ptr_inst); | 2703 | try self.writeInstIndex(stream, ptr_inst); |
| 2704 | }, | 2704 | }, |
| 2705 | .decl_val => |str| try stream.print("decl_val \"{f}\"", .{ | 2705 | .decl_val => |str| try stream.print("decl_val \"{f}\"", .{ |
| 2706 | std.zig.fmtEscapes(self.code.nullTerminatedString(str)), | 2706 | std.zig.fmtString(self.code.nullTerminatedString(str)), |
| 2707 | }), | 2707 | }), |
| 2708 | .decl_ref => |str| try stream.print("decl_ref \"{f}\"", .{ | 2708 | .decl_ref => |str| try stream.print("decl_ref \"{f}\"", .{ |
| 2709 | std.zig.fmtEscapes(self.code.nullTerminatedString(str)), | 2709 | std.zig.fmtString(self.code.nullTerminatedString(str)), |
| 2710 | }), | 2710 | }), |
| 2711 | } | 2711 | } |
| 2712 | } | 2712 | } |
| ... | @@ -2839,7 +2839,7 @@ const Writer = struct { | ... | @@ -2839,7 +2839,7 @@ const Writer = struct { |
| 2839 | const extra = self.code.extraData(Zir.Inst.Import, inst_data.payload_index).data; | 2839 | const extra = self.code.extraData(Zir.Inst.Import, inst_data.payload_index).data; |
| 2840 | try self.writeInstRef(stream, extra.res_ty); | 2840 | try self.writeInstRef(stream, extra.res_ty); |
| 2841 | const import_path = self.code.nullTerminatedString(extra.path); | 2841 | const import_path = self.code.nullTerminatedString(extra.path); |
| 2842 | try stream.print(", \"{f}\") ", .{std.zig.fmtEscapes(import_path)}); | 2842 | try stream.print(", \"{f}\") ", .{std.zig.fmtString(import_path)}); |
| 2843 | try self.writeSrcTok(stream, inst_data.src_tok); | 2843 | try self.writeSrcTok(stream, inst_data.src_tok); |
| 2844 | } | 2844 | } |
| 2845 | }; | 2845 | }; |
src/print_zoir.zig+3-3| ... | @@ -72,8 +72,8 @@ const PrintZon = struct { | ... | @@ -72,8 +72,8 @@ const PrintZon = struct { |
| 72 | }, | 72 | }, |
| 73 | .float_literal => |x| try pz.w.print("float({d})", .{x}), | 73 | .float_literal => |x| try pz.w.print("float({d})", .{x}), |
| 74 | .char_literal => |x| try pz.w.print("char({d})", .{x}), | 74 | .char_literal => |x| try pz.w.print("char({d})", .{x}), |
| 75 | .enum_literal => |x| try pz.w.print("enum_literal({fp})", .{std.zig.fmtId(x.get(zoir))}), | 75 | .enum_literal => |x| try pz.w.print("enum_literal({f})", .{std.zig.fmtIdP(x.get(zoir))}), |
| 76 | .string_literal => |x| try pz.w.print("str(\"{f}\")", .{std.zig.fmtEscapes(x)}), | 76 | .string_literal => |x| try pz.w.print("str(\"{f}\")", .{std.zig.fmtString(x)}), |
| 77 | .empty_literal => try pz.w.writeAll("empty_literal(.{})"), | 77 | .empty_literal => try pz.w.writeAll("empty_literal(.{})"), |
| 78 | .array_literal => |vals| { | 78 | .array_literal => |vals| { |
| 79 | try pz.w.writeAll("array_literal({"); | 79 | try pz.w.writeAll("array_literal({"); |
| ... | @@ -92,7 +92,7 @@ const PrintZon = struct { | ... | @@ -92,7 +92,7 @@ const PrintZon = struct { |
| 92 | pz.indent += 1; | 92 | pz.indent += 1; |
| 93 | for (s.names, 0..s.vals.len) |name, idx| { | 93 | for (s.names, 0..s.vals.len) |name, idx| { |
| 94 | try pz.newline(); | 94 | try pz.newline(); |
| 95 | try pz.w.print("[{fp}] ", .{std.zig.fmtId(name.get(zoir))}); | 95 | try pz.w.print("[{f}] ", .{std.zig.fmtIdP(name.get(zoir))}); |
| 96 | try pz.renderNode(s.vals.at(@intCast(idx))); | 96 | try pz.renderNode(s.vals.at(@intCast(idx))); |
| 97 | try pz.w.writeByte(','); | 97 | try pz.w.writeByte(','); |
| 98 | } | 98 | } |