diff options
| author | emma <39064859+ieeemma@users.noreply.github.com> | 2022-07-07 19:38:32 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-07-07 21:38:32 +0300 |
| commit | 81bbefe9b837dc439a68458ca91d522c1c49b96b (patch) | |
| tree | 796fd5138faa9b6312e5464ecd9266db5339f079 /src | |
| parent | c9006d9479c619d9ed555164831e11a04d88d382 (diff) | |
| download | zig-81bbefe9b837dc439a68458ca91d522c1c49b96b.tar.gz zig-81bbefe9b837dc439a68458ca91d522c1c49b96b.zip | |
AstGen: fix catch payoad not checking for shadowing
Diffstat (limited to 'src')
| -rw-r--r-- | src/AstGen.zig | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/AstGen.zig b/src/AstGen.zig index a0ff7a0e6e..bd72e2d1cc 100644 --- a/src/AstGen.zig +++ b/src/AstGen.zig @@ -4997,10 +4997,14 @@ fn orelseCatchExpr( var err_val_scope: Scope.LocalVal = undefined; const else_sub_scope = blk: { const payload = payload_token orelse break :blk &else_scope.base; - if (mem.eql(u8, tree.tokenSlice(payload), "_")) { + const err_str = tree.tokenSlice(payload); + if (mem.eql(u8, err_str, "_")) { return astgen.failTok(payload, "discard of error capture; omit it instead", .{}); } const err_name = try astgen.identAsString(payload); + + try astgen.detectLocalShadowing(scope, err_name, payload, err_str); + err_val_scope = .{ .parent = &else_scope.base, .gen_zir = &else_scope, |
