| ... | ... | @@ -28083,10 +28083,16 @@ fn unionFieldVal( |
| 28083 | 28083 | const active_tag = try block.addTyOp(.get_union_tag, .fromInterned(union_obj.enum_tag_ty), union_byval); |
| 28084 | 28084 | try sema.addSafetyCheckInactiveUnionField(block, src, active_tag, wanted_tag); |
| 28085 | 28085 | } |
| 28086 | |
| 28086 | 28087 | if (field_ty.zigTypeTag(zcu) == .noreturn) { |
| 28087 | 28088 | _ = try block.addNoOp(.unreach); |
| 28088 | 28089 | return .unreachable_value; |
| 28089 | 28090 | } |
| 28091 | |
| 28092 | if (try sema.typeHasOnePossibleValue(field_ty)) |field_only_value| { |
| 28093 | return Air.internedToRef(field_only_value.toIntern()); |
| 28094 | } |
| 28095 | |
| 28090 | 28096 | try field_ty.resolveLayout(pt); |
| 28091 | 28097 | return block.addStructFieldVal(union_byval, field_index, field_ty); |
| 28092 | 28098 | } |