| ... | ... | @@ -4666,20 +4666,18 @@ fn analyzeCall( |
| 4666 | 4666 | const bare_return_type = try sema.analyzeAsType(&child_block, ret_ty_src, ret_ty_inst); |
| 4667 | 4667 | // Create a fresh inferred error set type for inline/comptime calls. |
| 4668 | 4668 | const fn_ret_ty = blk: { |
| 4669 | | if (func_ty_info.return_type.castTag(.error_union)) |payload| { |
| 4670 | | if (payload.data.error_set.tag() == .error_set_inferred) { |
| 4671 | | const node = try sema.gpa.create(Module.Fn.InferredErrorSetListNode); |
| 4672 | | node.data = .{ .func = module_fn }; |
| 4673 | | if (parent_func) |some| { |
| 4674 | | some.inferred_error_sets.prepend(node); |
| 4675 | | } |
| 4676 | | |
| 4677 | | const error_set_ty = try Type.Tag.error_set_inferred.create(sema.arena, &node.data); |
| 4678 | | break :blk try Type.Tag.error_union.create(sema.arena, .{ |
| 4679 | | .error_set = error_set_ty, |
| 4680 | | .payload = bare_return_type, |
| 4681 | | }); |
| 4669 | if (module_fn.hasInferredErrorSet()) { |
| 4670 | const node = try sema.gpa.create(Module.Fn.InferredErrorSetListNode); |
| 4671 | node.data = .{ .func = module_fn }; |
| 4672 | if (parent_func) |some| { |
| 4673 | some.inferred_error_sets.prepend(node); |
| 4682 | 4674 | } |
| 4675 | |
| 4676 | const error_set_ty = try Type.Tag.error_set_inferred.create(sema.arena, &node.data); |
| 4677 | break :blk try Type.Tag.error_union.create(sema.arena, .{ |
| 4678 | .error_set = error_set_ty, |
| 4679 | .payload = bare_return_type, |
| 4680 | }); |
| 4683 | 4681 | } |
| 4684 | 4682 | break :blk bare_return_type; |
| 4685 | 4683 | }; |