aboutsummaryrefslogtreecommitdiff
path: root/src/type.zig
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2023-05-07 22:36:57 -0700
committerAndrew Kelley <andrew@ziglang.org>2023-06-10 20:42:30 -0700
commitad06b249b6e4253f553e7255dd5530172a14a70f (patch)
tree4144f5916116f369df1002035d8d0c444d539882 /src/type.zig
parent8587e510e46f98e321fbad30bb235e5eed33f1ba (diff)
downloadzig-ad06b249b6e4253f553e7255dd5530172a14a70f.tar.gz
zig-ad06b249b6e4253f553e7255dd5530172a14a70f.zip
Sema: introduce Value.enum_field_0
and use it to fix typeHasOnePossibleValue logic in two different places.
Diffstat (limited to 'src/type.zig')
-rw-r--r--src/type.zig6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/type.zig b/src/type.zig
index b088f58f0a..4ef5da57ea 100644
--- a/src/type.zig
+++ b/src/type.zig
@@ -4027,7 +4027,7 @@ pub const Type = struct {
switch (enum_full.fields.count()) {
0 => return Value.@"unreachable",
1 => if (enum_full.values.count() == 0) {
- return try mod.intValue(ty, 0); // auto-numbered
+ return Value.enum_field_0; // auto-numbered
} else {
return enum_full.values.keys()[0];
},
@@ -4038,14 +4038,14 @@ pub const Type = struct {
const enum_simple = ty.castTag(.enum_simple).?.data;
switch (enum_simple.fields.count()) {
0 => return Value.@"unreachable",
- 1 => return try mod.intValue(ty, 0),
+ 1 => return Value.enum_field_0,
else => return null,
}
},
.enum_nonexhaustive => {
const tag_ty = ty.castTag(.enum_nonexhaustive).?.data.tag_ty;
if (!tag_ty.hasRuntimeBits(mod)) {
- return try mod.intValue(ty, 0);
+ return Value.enum_field_0;
} else {
return null;
}