Skip to content

Commit 67db771

Browse files
author
José Valim
committed
Do not warn on unused variables in rescue, closes #6287
Signed-off-by: José Valim <jose.valim@plataformatec.com.br>
1 parent f94477b commit 67db771

File tree

2 files changed

+223
-197
lines changed

2 files changed

+223
-197
lines changed

lib/elixir/src/elixir_erl_try.erl

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -23,19 +23,21 @@ each_clause({'catch', Meta, Raw, Expr}, S) ->
2323

2424
Condition = [{'{}', Meta, Final}],
2525
{TC, TS} = elixir_erl_clauses:clause(Meta, fun elixir_erl_pass:translate_args/2,
26-
Condition, Expr, Guards, S),
26+
Condition, Expr, Guards, S),
2727
{[TC], TS};
2828

2929
each_clause({rescue, Meta, [{in, _, [Left, Right]}], Expr}, S) ->
30-
{VarName, _, CS} = elixir_erl_var:build('_', S),
31-
Var = {VarName, Meta, nil},
32-
{Parts, Safe, FS} = rescue_guards(Meta, Var, Right, CS),
33-
Body = rescue_clause_body(Left, Expr, Safe, Var, Meta),
30+
{TempName, _, CS} = elixir_erl_var:build('_', S),
31+
TempVar = {TempName, Meta, nil},
32+
{Parts, Safe, FS} = rescue_guards(Meta, TempVar, Right, CS),
33+
Body = rescue_clause_body(Left, Expr, Safe, TempVar, Meta),
3434
build_rescue(Meta, Parts, Body, FS);
3535

36-
each_clause({rescue, Meta, [{VarName, _, Atom} = Var], Expr}, S) when is_atom(VarName), is_atom(Atom) ->
37-
Body = rescue_clause_body(Var, Expr, false, Var, Meta),
38-
build_rescue(Meta, _Parts = [{Var, []}], Body, S).
36+
each_clause({rescue, Meta, [{VarName, _, Context} = Left], Expr}, S) when is_atom(VarName), is_atom(Context) ->
37+
{TempName, _, CS} = elixir_erl_var:build('_', S),
38+
TempVar = {TempName, Meta, nil},
39+
Body = rescue_clause_body(Left, Expr, false, TempVar, Meta),
40+
build_rescue(Meta, [{TempVar, []}], Body, CS).
3941

4042
rescue_clause_body({'_', _, Atom}, Expr, _Safe, _Var, _Meta) when is_atom(Atom) ->
4143
Expr;
@@ -54,7 +56,7 @@ build_rescue(Meta, Parts, Body, S) ->
5456

5557
{{clause, Line, TMatches, _, TBody}, TS} =
5658
elixir_erl_clauses:clause(Meta, fun elixir_erl_pass:translate_args/2,
57-
Matches, Body, [], S),
59+
Matches, Body, [], S),
5860

5961
TClauses =
6062
[begin

0 commit comments

Comments
 (0)