aboutsummaryrefslogtreecommitdiff
path: root/src/type.zig
diff options
context:
space:
mode:
Diffstat (limited to 'src/type.zig')
-rw-r--r--src/type.zig12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/type.zig b/src/type.zig
index b6728b4be0..7b8dd1396b 100644
--- a/src/type.zig
+++ b/src/type.zig
@@ -4519,21 +4519,23 @@ pub const Type = extern union {
if (field.is_comptime) {
return field.default_val;
} else {
- return null;
+ return field.ty.onePossibleValue();
}
},
.tuple => {
- const val = ty.castTag(.tuple).?.data.values[index];
+ const tuple = ty.castTag(.tuple).?.data;
+ const val = tuple.values[index];
if (val.tag() == .unreachable_value) {
- return null;
+ return tuple.types[index].onePossibleValue();
} else {
return val;
}
},
.anon_struct => {
- const val = ty.castTag(.anon_struct).?.data.values[index];
+ const anon_struct = ty.castTag(.anon_struct).?.data;
+ const val = anon_struct.values[index];
if (val.tag() == .unreachable_value) {
- return null;
+ return anon_struct.types[index].onePossibleValue();
} else {
return val;
}