mirror of
https://github.com/ziglang/zig.git
synced 2026-02-12 20:37:54 +00:00
AstGen: fix crash in debug printing ZIR field types
The printing code did not properly set the parent Decl node field, so the source location calculations were wrong. closes #8825
This commit is contained in:
parent
f4a9e0530a
commit
4f900e68d3
@ -3561,6 +3561,8 @@ const Writer = struct {
|
||||
assert(body.len == 0);
|
||||
try stream.writeAll("{}, {})");
|
||||
} else {
|
||||
const prev_parent_decl_node = self.parent_decl_node;
|
||||
if (src_node) |off| self.parent_decl_node = self.relativeToNodeIndex(off);
|
||||
self.indent += 2;
|
||||
if (body.len == 0) {
|
||||
try stream.writeAll("{}, {\n");
|
||||
@ -3623,6 +3625,7 @@ const Writer = struct {
|
||||
try stream.writeAll(",\n");
|
||||
}
|
||||
|
||||
self.parent_decl_node = prev_parent_decl_node;
|
||||
self.indent -= 2;
|
||||
try stream.writeByteNTimes(' ', self.indent);
|
||||
try stream.writeAll("})");
|
||||
@ -3691,6 +3694,8 @@ const Writer = struct {
|
||||
const body = self.code.extra[extra_index..][0..body_len];
|
||||
extra_index += body.len;
|
||||
|
||||
const prev_parent_decl_node = self.parent_decl_node;
|
||||
if (src_node) |off| self.parent_decl_node = self.relativeToNodeIndex(off);
|
||||
self.indent += 2;
|
||||
if (body.len == 0) {
|
||||
try stream.writeAll("{}, {\n");
|
||||
@ -3756,6 +3761,7 @@ const Writer = struct {
|
||||
try stream.writeAll(",\n");
|
||||
}
|
||||
|
||||
self.parent_decl_node = prev_parent_decl_node;
|
||||
self.indent -= 2;
|
||||
try stream.writeByteNTimes(' ', self.indent);
|
||||
try stream.writeAll("})");
|
||||
@ -3911,6 +3917,8 @@ const Writer = struct {
|
||||
assert(body.len == 0);
|
||||
try stream.writeAll("{}, {})");
|
||||
} else {
|
||||
const prev_parent_decl_node = self.parent_decl_node;
|
||||
if (src_node) |off| self.parent_decl_node = self.relativeToNodeIndex(off);
|
||||
self.indent += 2;
|
||||
if (body.len == 0) {
|
||||
try stream.writeAll("{}, {\n");
|
||||
@ -3951,6 +3959,7 @@ const Writer = struct {
|
||||
}
|
||||
try stream.writeAll(",\n");
|
||||
}
|
||||
self.parent_decl_node = prev_parent_decl_node;
|
||||
self.indent -= 2;
|
||||
try stream.writeByteNTimes(' ', self.indent);
|
||||
try stream.writeAll("})");
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user