diff options
| author | Veikka Tuominen <git@vexu.eu> | 2022-12-19 15:07:11 +0200 |
|---|---|---|
| committer | Veikka Tuominen <git@vexu.eu> | 2022-12-19 15:08:49 +0200 |
| commit | 22d46e1d7753ea2a9accc180e8613206120739c5 (patch) | |
| tree | a416ddd2e321e1012a624dd81a13b36804a34bf9 /src/value.zig | |
| parent | 2926d95e6a7c4d83eb197f78de40718e97bc1f1b (diff) | |
| download | zig-22d46e1d7753ea2a9accc180e8613206120739c5.tar.gz zig-22d46e1d7753ea2a9accc180e8613206120739c5.zip | |
value: use int tag type when querying for tag value
Closes #13757
Diffstat (limited to 'src/value.zig')
| -rw-r--r-- | src/value.zig | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/value.zig b/src/value.zig index 839b3d7580..96242331f9 100644 --- a/src/value.zig +++ b/src/value.zig @@ -1072,11 +1072,13 @@ pub const Value = extern union { .enum_simple => Module.EnumFull.ValueMap{}, else => unreachable, }; - break :field_index if (values.entries.len == 0) + if (values.entries.len == 0) { // auto-numbered enum - @intCast(u32, val.toUnsignedInt(mod.getTarget())) - else - @intCast(u32, values.getIndexContext(val, .{ .ty = ty, .mod = mod }).?); + break :field_index @intCast(u32, val.toUnsignedInt(mod.getTarget())); + } + var buffer: Type.Payload.Bits = undefined; + const int_tag_ty = ty.intTagType(&buffer); + break :field_index @intCast(u32, values.getIndexContext(val, .{ .ty = int_tag_ty, .mod = mod }).?); }, }; |
