authorgravatar for jacobly@ziglang.orgJacob Young <jacobly@ziglang.org> 2026-06-23 09:09:43-04:00
committergravatar for jacobly@ziglang.orgJacob Young <jacobly@ziglang.org> 2026-07-27 14:35:12-04:00
log9e7f40db3a83242e12db853431cea0701446f5fb
tree99b7c0dab4f6d4389b487ecc3c187cc60d8fa181
parente26a70cb96bbdeb633314dec8afa9daf3029b894

InternPool: update `Tag.encodings` to fix lldb pretty printing


3 files changed, 30 insertions(+), 30 deletions(-)

lib/std/hash_map.zig+1-1
......@@ -1518,7 +1518,7 @@ fn Custom(
15181518 self.available = 0;
15191519 }
15201520
1521 /// This function is used in the debugger pretty formatters in tools/ to fetch the
1521 /// This function is used in the debugger pretty formatters in lib/lldb/ to fetch the
15221522 /// header type to facilitate fancy debug printing for this type.
15231523 fn dbHelper(self: *Self, hdr: *Header, entry: *Entry) void {
15241524 _ = self;
lib/std/multi_array_list.zig+2-2
......@@ -163,7 +163,7 @@ pub fn MultiArrayList(comptime T: type) type {
163163 };
164164 }
165165
166 /// This function is used in the debugger pretty formatters in tools/ to fetch the
166 /// This function is used in the debugger pretty formatters in lib/lldb/ to fetch the
167167 /// child field order and entry type to facilitate fancy debug printing for this type.
168168 fn dbHelper(self: *Slice, child: *Elem, field: *Field, entry: *Entry) void {
169169 _ = self;
......@@ -681,7 +681,7 @@ pub fn MultiArrayList(comptime T: type) type {
681681 }
682682 break :entry @Struct(.@"extern", null, &entry_field_names, &entry_field_types, &entry_field_attrs);
683683 };
684 /// This function is used in the debugger pretty formatters in tools/ to fetch the
684 /// This function is used in the debugger pretty formatters in lib/lldb/ to fetch the
685685 /// child field order and entry type to facilitate fancy debug printing for this type.
686686 fn dbHelper(self: *Self, child: *Elem, field: *Field, entry: *Entry) void {
687687 _ = self;
src/InternPool.zig+27-27
......@@ -4193,7 +4193,7 @@ pub const Index = enum(u32) {
41934193 };
41944194 }
41954195
4196 /// This function is used in the debugger pretty formatters in tools/ to fetch the
4196 /// This function is used in the debugger pretty formatters in lib/lldb/ to fetch the
41974197 /// Tag to encoding mapping to facilitate fancy debug printing for this type.
41984198 fn dbHelper(self: *Index, tag_to_encoding_map: *struct {
41994199 const DataIsIndex = struct { data: Index };
......@@ -4219,26 +4219,17 @@ pub const Index = enum(u32) {
42194219 type_inferred_error_set: DataIsIndex,
42204220 simple_type: void,
42214221 type_function: struct {
4222 const @"data.flags.has_comptime_bits" = opaque {};
4223 const @"data.flags.has_noalias_bits" = opaque {};
4224 const @"data.flags.cc.extraLen()" = opaque {};
42254222 const @"data.params_len" = opaque {};
42264223 data: *Tag.TypeFunction,
4227 @"trailing.comptime_bits.len": *@"data.flags.has_comptime_bits",
4228 @"trailing.noalias_bits.len": *@"data.flags.has_noalias_bits",
4229 @"trailing.cc_bits.len": *@"data.flags.cc.extraLen()",
42304224 @"trailing.param_types.len": *@"data.params_len",
4231 trailing: struct { comptime_bits: []u32, noalias_bits: []u32, cc_bits: []u32, param_types: []Index },
4225 trailing: struct { param_types: []Index },
42324226 },
42334227 type_tuple: struct {
42344228 const @"data.fields_len" = opaque {};
42354229 data: *TypeTuple,
42364230 @"trailing.types.len": *@"data.fields_len",
42374231 @"trailing.values.len": *@"data.fields_len",
4238 trailing: struct {
4239 types: []Index,
4240 values: []Index,
4241 },
4232 trailing: struct { types: []Index, values: []Index },
42424233 },
42434234
42444235 type_struct: struct { data: *Tag.TypeStruct },
......@@ -4350,7 +4341,7 @@ pub const Index = enum(u32) {
43504341 const encoding = @field(Tag.encodings, tag_name);
43514342 if (@hasField(@TypeOf(encoding), "trailing")) {
43524343 const trailing_info = @typeInfo(encoding.trailing).@"struct";
4353 for (trailing_info.field_names, trailing_info.field_types) |field_name, field_type| {
4344 for (trailing_info.field_names, trailing_info.field_types) |trailing_field_name, trailing_field_type| {
43544345 struct {
43554346 fn checkConfig(name: []const u8) void {
43564347 if (!@hasField(@TypeOf(encoding.config), name)) @compileError("missing field: " ++ @typeName(Tag) ++ ".encodings." ++ tag_name ++ ".config.@\"" ++ name ++ "\"");
......@@ -4359,22 +4350,30 @@ pub const Index = enum(u32) {
43594350 }
43604351 fn checkField(name: []const u8, Type: type) void {
43614352 switch (@typeInfo(Type)) {
4362 .int => {},
4363 .@"enum" => {},
4364 .@"struct" => |info| assert(info.layout == .@"packed"),
4353 .int, .@"enum" => return,
4354 .@"struct" => |info| switch (info.layout) {
4355 .auto => unreachable,
4356 .@"extern" => {
4357 for (info.field_names, info.field_types) |field_name, field_type| checkField(name ++ "." ++ field_name, field_type);
4358 return;
4359 },
4360 .@"packed" => return,
4361 },
43654362 .optional => |info| {
43664363 checkConfig(name ++ ".?");
43674364 checkField(name ++ ".?", info.child);
4365 return;
43684366 },
4369 .pointer => |info| {
4370 assert(info.size == .slice);
4367 .pointer => |info| if (info.size == .slice) {
43714368 checkConfig(name ++ ".len");
43724369 checkField(name ++ "[0]", info.child);
4370 return;
43734371 },
4374 else => @compileError("unsupported type: " ++ @typeName(Tag) ++ ".encodings." ++ tag_name ++ "." ++ name ++ ": " ++ @typeName(Type)),
4372 else => {},
43754373 }
4374 @compileError("unsupported type: " ++ @typeName(Tag) ++ ".encodings." ++ tag_name ++ "." ++ name ++ ": " ++ @typeName(Type));
43764375 }
4377 }.checkField("trailing." ++ field_name, field_type);
4376 }.checkField("trailing." ++ trailing_field_name, trailing_field_type);
43784377 }
43794378 }
43804379 },
......@@ -5186,17 +5185,18 @@ pub const Tag = enum(u8) {
51865185 .trailing = struct {
51875186 param_comptime_bits: ?[]u32,
51885187 param_noalias_bits: ?[]u32,
5189 param_cc_bits: ?[]u32,
5190 param_type: []Index,
5188 spirv_kernel_options: ?extern struct { x: u32, y: u32, z: u32 },
5189 spirv_mesh_options: ?extern struct { max_primitives: u32, max_vertices: u32 },
5190 param_types: []Index,
51915191 },
51925192 .config = .{
51935193 .@"trailing.param_comptime_bits.?" = .@"payload.flags.has_comptime_bits",
51945194 .@"trailing.param_comptime_bits.?.len" = .@"(payload.params_len + 31) / 32",
51955195 .@"trailing.param_noalias_bits.?" = .@"payload.flags.has_noalias_bits",
51965196 .@"trailing.param_noalias_bits.?.len" = .@"(payload.params_len + 31) / 32",
5197 .@"trailing.param_cc_bits.?" = .@"payload.flags.cc.extraLen() != 0",
5198 .@"trailing.param_cc_bits.?.len" = .@"payload.flags.cc.extraLen()",
5199 .@"trailing.param_type.len" = .@"payload.params_len",
5197 .@"trailing.spirv_kernel_options.?" = .@"payload.flags.cc.tag == .spirv_kernel or payload.flags.cc.tag == .spirv_task",
5198 .@"trailing.spirv_mesh_options.?" = .@"payload.flags.cc.tag == .spirv_mesh",
5199 .@"trailing.param_types.len" = .@"payload.params_len",
52005200 },
52015201 },
52025202
......@@ -5225,7 +5225,7 @@ pub const Tag = enum(u8) {
52255225 .@"trailing.field_defaults.?" = .@"payload.flags.any_field_defaults",
52265226 .@"trailing.field_defaults.?.len" = .@"payload.fields_len",
52275227 .@"trailing.field_aligns.?" = .@"payload.flags.any_field_aligns",
5228 .@"trailing.field_aligns.?.len" = .@"payload.fields_len",
5228 .@"trailing.field_aligns.?.len" = .@"(payload.fields_len + 3) / 4",
52295229 .@"trailing.field_is_comptime_bits.?" = .@"payload.flags.any_comptime_fields",
52305230 .@"trailing.field_is_comptime_bits.?.len" = .@"(payload.fields_len + 31) / 32",
52315231 .@"trailing.field_runtime_order.?" = .@"payload.flags.layout == .auto",
......@@ -5254,7 +5254,7 @@ pub const Tag = enum(u8) {
52545254 .@"trailing.captures.?.len" = .@"trailing.captures_len.?",
52555255 .@"trailing.field_types.len" = .@"payload.fields_len",
52565256 .@"trailing.field_aligns.?" = .@"payloads.flags.any_field_aligns",
5257 .@"trailing.field_aligns.?.len" = .@"payload.fields_len",
5257 .@"trailing.field_aligns.?.len" = .@"(payload.fields_len + 3) / 4",
52585258 },
52595259 },
52605260 .type_union_packed_auto = union_packed_encoding,