| ... | @@ -29023,33 +29023,6 @@ fn coerceExtra( | ... | @@ -29023,33 +29023,6 @@ fn coerceExtra( |
| 29023 | else => {}, | 29023 | else => {}, |
| 29024 | }, | 29024 | }, |
| 29025 | .error_union => switch (inst_ty.zigTypeTag(zcu)) { | 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 | .error_set => { | 29026 | .error_set => { |
| 29054 | // E to E!T | 29027 | // E to E!T |
| 29055 | return sema.wrapErrorUnionSet(block, dest_ty, inst, inst_src); | 29028 | return sema.wrapErrorUnionSet(block, dest_ty, inst, inst_src); |