| ... | ... | @@ -29023,33 +29023,6 @@ fn coerceExtra( |
| 29023 | 29023 | else => {}, |
| 29024 | 29024 | }, |
| 29025 | 29025 | .error_union => switch (inst_ty.zigTypeTag(zcu)) { |
| 29026 | | .error_union => eu: { |
| 29027 | | if (maybe_inst_val) |inst_val| { |
| 29028 | | switch (inst_val.toIntern()) { |
| 29029 | | .undef => return pt.undefRef(dest_ty), |
| 29030 | | else => switch (zcu.intern_pool.indexToKey(inst_val.toIntern())) { |
| 29031 | | .error_union => |error_union| switch (error_union.val) { |
| 29032 | | .err_name => |err_name| { |
| 29033 | | const error_set_ty = inst_ty.errorUnionSet(zcu); |
| 29034 | | const error_set_val = Air.internedToRef((try pt.intern(.{ .err = .{ |
| 29035 | | .ty = error_set_ty.toIntern(), |
| 29036 | | .name = err_name, |
| 29037 | | } }))); |
| 29038 | | return sema.wrapErrorUnionSet(block, dest_ty, error_set_val, inst_src); |
| 29039 | | }, |
| 29040 | | .payload => |payload| { |
| 29041 | | const payload_val = Air.internedToRef(payload); |
| 29042 | | return sema.wrapErrorUnionPayload(block, dest_ty, payload_val, inst_src) catch |err| switch (err) { |
| 29043 | | error.NotCoercible => break :eu, |
| 29044 | | else => |e| return e, |
| 29045 | | }; |
| 29046 | | }, |
| 29047 | | }, |
| 29048 | | else => unreachable, |
| 29049 | | }, |
| 29050 | | } |
| 29051 | | } |
| 29052 | | }, |
| 29053 | 29026 | .error_set => { |
| 29054 | 29027 | // E to E!T |
| 29055 | 29028 | return sema.wrapErrorUnionSet(block, dest_ty, inst, inst_src); |