diff options
| author | Veikka Tuominen <git@vexu.eu> | 2022-11-22 00:23:08 +0200 |
|---|---|---|
| committer | Veikka Tuominen <git@vexu.eu> | 2022-11-23 12:13:39 +0200 |
| commit | 80575face7a3b1e0f47e413507a6fa8b1d002e57 (patch) | |
| tree | 312aa0ddf6dc53634f626adda28d8fbbfd82ab81 /src/print_zir.zig | |
| parent | 6fb689e97a4ec05fd97dfa05cc203e9bcb7cffa1 (diff) | |
| download | zig-80575face7a3b1e0f47e413507a6fa8b1d002e57.tar.gz zig-80575face7a3b1e0f47e413507a6fa8b1d002e57.zip | |
AstGen: implement tuple declarations
Diffstat (limited to 'src/print_zir.zig')
| -rw-r--r-- | src/print_zir.zig | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/src/print_zir.zig b/src/print_zir.zig index d434abd439..9135c22010 100644 --- a/src/print_zir.zig +++ b/src/print_zir.zig @@ -1262,6 +1262,7 @@ const Writer = struct { try self.writeFlag(stream, "known_non_opv, ", small.known_non_opv); try self.writeFlag(stream, "known_comptime_only, ", small.known_comptime_only); + try self.writeFlag(stream, "tuple, ", small.is_tuple); try stream.print("{s}, ", .{@tagName(small.name_strategy)}); @@ -1335,8 +1336,11 @@ const Writer = struct { const has_type_body = @truncate(u1, cur_bit_bag) != 0; cur_bit_bag >>= 1; - const field_name = self.code.extra[extra_index]; - extra_index += 1; + var field_name: u32 = 0; + if (!small.is_tuple) { + field_name = self.code.extra[extra_index]; + extra_index += 1; + } const doc_comment_index = self.code.extra[extra_index]; extra_index += 1; @@ -1370,13 +1374,16 @@ const Writer = struct { try stream.writeAll("{\n"); self.indent += 2; - for (fields) |field| { - const field_name = self.code.nullTerminatedString(field.name); - + for (fields) |field, i| { try self.writeDocComment(stream, field.doc_comment_index); try stream.writeByteNTimes(' ', self.indent); try self.writeFlag(stream, "comptime ", field.is_comptime); - try stream.print("{}: ", .{std.zig.fmtId(field_name)}); + if (field.name != 0) { + const field_name = self.code.nullTerminatedString(field.name); + try stream.print("{}: ", .{std.zig.fmtId(field_name)}); + } else { + try stream.print("@\"{d}\": ", .{i}); + } if (field.field_type != .none) { try self.writeInstRef(stream, field.field_type); } |
