fix: ir generation for divert arguments

This commit is contained in:
Brett Broadhurst 2026-03-26 10:20:27 -06:00
parent 37ab29947a
commit cbcc796f1e
Failed to generate hash of commit
3 changed files with 19 additions and 18 deletions

View file

@ -226,33 +226,36 @@ pub fn dumpKnot(self: *Dumper, w: *std.Io.Writer, knot: *const Object.Knot) !voi
var stitch_iter = knot.members.iterator();
var count: usize = 0;
while (stitch_iter.next()) |entry| : (count += 1) {
const key = entry.key_ptr.*;
const stitch: *Object.Knot = @ptrCast(entry.value_ptr.*);
try w.splatByteAll(' ', self.indent_level);
try w.print("Stitch #{d}: \"{s}\"\n", .{ count, entry.key_ptr.* });
try w.print("Stitch #{d}: \"{s}\"\n", .{ count, key });
self.indent_level += 2;
try w.splatByteAll(' ', self.indent_level);
try w.print("Arguments: {d}\n", .{knot.code.args_count});
try w.print("Arguments: {d}\n", .{stitch.code.args_count});
try w.splatByteAll(' ', self.indent_level);
try w.print("Locals: {d}\n", .{knot.code.locals_count});
try w.print("Locals: {d}\n", .{stitch.code.locals_count});
try w.splatByteAll(' ', self.indent_level);
try w.print("Stack Size: {d}\n", .{knot.code.stack_size});
try w.print("Stack Size: {d}\n", .{stitch.code.stack_size});
try w.splatByteAll(' ', self.indent_level);
try w.writeAll("Constants: ");
try dumpKnotConstants(w, knot);
try dumpKnotConstants(w, stitch);
try w.writeAll("\n");
try w.splatByteAll(' ', self.indent_level);
try w.writeAll("Children: ");
try dumpKnotChildren(w, knot);
try dumpKnotChildren(w, stitch);
try w.writeAll("\n");
try w.splatByteAll(' ', self.indent_level);
try w.writeAll("Bytecode: \n");
self.indent_level += 2;
try self.dumpKnotBytecode(w, @ptrCast(entry.value_ptr.*));
try self.dumpKnotBytecode(w, stitch);
try w.writeAll("\n");
self.indent_level -= 4;