@@ -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
2929each_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
4042rescue_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