Skip to content

Commit 4e6a0a2

Browse files
Vexuandrewrk
authored andcommitted
Sema: do not add calls to returnError for comptime known non-error values
1 parent c1cc7b9 commit 4e6a0a2

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed

src/Sema.zig

+5-2
Original file line numberDiff line numberDiff line change
@@ -13011,10 +13011,13 @@ fn analyzeRet(
1301113011
const backend_supports_error_return_tracing =
1301213012
sema.mod.comp.bin_file.options.use_llvm;
1301313013

13014-
if ((sema.fn_ret_ty.zigTypeTag() == .ErrorSet or sema.typeOf(uncasted_operand).zigTypeTag() == .ErrorUnion) and
13014+
if (sema.fn_ret_ty.isError() and
1301513015
sema.mod.comp.bin_file.options.error_return_tracing and
1301613016
backend_supports_error_return_tracing)
13017-
{
13017+
ret_err: {
13018+
if (try sema.resolveMaybeUndefVal(block, src, operand)) |ret_val| {
13019+
if (ret_val.tag() != .@"error") break :ret_err;
13020+
}
1301813021
const return_err_fn = try sema.getBuiltin(block, src, "returnError");
1301913022
const unresolved_stack_trace_ty = try sema.getBuiltinType(block, src, "StackTrace");
1302013023
const stack_trace_ty = try sema.resolveTypeFields(block, src, unresolved_stack_trace_ty);

0 commit comments

Comments
 (0)