diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2023-09-20 15:11:26 -0700 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2023-09-21 14:48:40 -0700 |
| commit | 2671aa9058b3dcff147ef01dcf3876b0bb231673 (patch) | |
| tree | 054ac2d59d2812f8d7ef630c3396ee2050981ad1 /src | |
| parent | c79da0d731aa6ba5e17da6ae92443c6588740b02 (diff) | |
| download | zig-2671aa9058b3dcff147ef01dcf3876b0bb231673.tar.gz zig-2671aa9058b3dcff147ef01dcf3876b0bb231673.zip | |
InternPool: fix nameIndex for tuples
Diffstat (limited to 'src')
| -rw-r--r-- | src/InternPool.zig | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/InternPool.zig b/src/InternPool.zig index 141e48972c..2aa4fef448 100644 --- a/src/InternPool.zig +++ b/src/InternPool.zig @@ -439,7 +439,11 @@ pub const Key = union(enum) { /// Look up field index based on field name. pub fn nameIndex(self: StructType, ip: *const InternPool, name: NullTerminatedString) ?u32 { - const names_map = self.names_map.unwrap() orelse return null; + const names_map = self.names_map.unwrap() orelse { + const i = name.toUnsigned(ip) orelse return null; + if (i >= self.field_types.len) return null; + return i; + }; const map = &ip.maps.items[@intFromEnum(names_map)]; const adapter: NullTerminatedString.Adapter = .{ .strings = self.field_names.get(ip) }; const field_index = map.getIndexAdapted(name, adapter) orelse return null; |
