diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2022-09-21 02:56:21 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-09-21 02:56:21 -0400 |
| commit | 902f6db67b2d25f238fb13e458a12e06df62dadb (patch) | |
| tree | 5736f130758bcdc22babb60ac2ded441d43eb28e /src/AstGen.zig | |
| parent | 62ecc154d9ad065aee57d81afd3a478dd8360fb7 (diff) | |
| parent | d7d21672b83b64fd522a5998780bfde6ef724557 (diff) | |
| download | zig-902f6db67b2d25f238fb13e458a12e06df62dadb.tar.gz zig-902f6db67b2d25f238fb13e458a12e06df62dadb.zip | |
Merge pull request #12889 from ziglang/unwrap-error-switch
safety: show error return trace when unwrapping error in switch
Diffstat (limited to 'src/AstGen.zig')
| -rw-r--r-- | src/AstGen.zig | 29 |
1 files changed, 0 insertions, 29 deletions
diff --git a/src/AstGen.zig b/src/AstGen.zig index 132525e4d4..0f04cd4b08 100644 --- a/src/AstGen.zig +++ b/src/AstGen.zig @@ -884,33 +884,6 @@ fn expr(gz: *GenZir, scope: *Scope, rl: ResultLoc, node: Ast.Node.Index) InnerEr catch_token + 2 else null; - - var rhs = node_datas[node].rhs; - while (true) switch (node_tags[rhs]) { - .grouped_expression => rhs = node_datas[rhs].lhs, - .unreachable_literal => { - if (payload_token != null and mem.eql(u8, tree.tokenSlice(payload_token.?), "_")) { - return astgen.failTok(payload_token.?, "discard of error capture; omit it instead", .{}); - } else if (payload_token != null) { - return astgen.failTok(payload_token.?, "unused capture", .{}); - } - const lhs = node_datas[node].lhs; - - const operand = try reachableExpr(gz, scope, switch (rl) { - .ref => .ref, - else => .none, - }, lhs, lhs); - const result = try gz.addUnNode(switch (rl) { - .ref => .err_union_payload_safe_ptr, - else => .err_union_payload_safe, - }, operand, node); - switch (rl) { - .none, .coerced_ty, .discard, .ref => return result, - else => return rvalue(gz, rl, result, lhs), - } - }, - else => break, - }; switch (rl) { .ref => return orelseCatchExpr( gz, @@ -2375,9 +2348,7 @@ fn addEnsureResult(gz: *GenZir, maybe_unused_result: Zir.Inst.Ref, statement: As .optional_payload_unsafe, .optional_payload_safe_ptr, .optional_payload_unsafe_ptr, - .err_union_payload_safe, .err_union_payload_unsafe, - .err_union_payload_safe_ptr, .err_union_payload_unsafe_ptr, .err_union_code, .err_union_code_ptr, |
