Skip to content

Commit 63f672d

Browse files
committed
Sema: fix missed union access OPV
1 parent cb6702f commit 63f672d

File tree

1 file changed

+6
-0
lines changed

1 file changed

+6
-0
lines changed

src/Sema.zig

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28083,10 +28083,16 @@ fn unionFieldVal(
2808328083
const active_tag = try block.addTyOp(.get_union_tag, .fromInterned(union_obj.enum_tag_ty), union_byval);
2808428084
try sema.addSafetyCheckInactiveUnionField(block, src, active_tag, wanted_tag);
2808528085
}
28086+
2808628087
if (field_ty.zigTypeTag(zcu) == .noreturn) {
2808728088
_ = try block.addNoOp(.unreach);
2808828089
return .unreachable_value;
2808928090
}
28091+
28092+
if (try sema.typeHasOnePossibleValue(field_ty)) |field_only_value| {
28093+
return Air.internedToRef(field_only_value.toIntern());
28094+
}
28095+
2809028096
try field_ty.resolveLayout(pt);
2809128097
return block.addStructFieldVal(union_byval, field_index, field_ty);
2809228098
}

0 commit comments

Comments
 (0)