aboutsummaryrefslogtreecommitdiff
path: root/src/AstGen.zig
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2022-09-21 02:56:21 -0400
committerGitHub <noreply@github.com>2022-09-21 02:56:21 -0400
commit902f6db67b2d25f238fb13e458a12e06df62dadb (patch)
tree5736f130758bcdc22babb60ac2ded441d43eb28e /src/AstGen.zig
parent62ecc154d9ad065aee57d81afd3a478dd8360fb7 (diff)
parentd7d21672b83b64fd522a5998780bfde6ef724557 (diff)
downloadzig-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.zig29
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,