@@ -331,7 +331,8 @@ expand({'cond', Meta, [Opts]}, S, E) ->
331331 assert_no_match_or_guard_scope (Meta , " cond" , S , E ),
332332 assert_no_underscore_clause_in_cond (Opts , E ),
333333 {EClauses , SC , EC } = elixir_clauses :'cond' (Meta , Opts , S , E ),
334- {{'cond' , Meta , [EClauses ]}, SC , EC };
334+ # elixir_ex {version = Counter } = SC ,
335+ {{'cond' , [{version , Counter } | Meta ], [EClauses ]}, SC # elixir_ex {version = Counter + 1 }, EC };
335336
336337expand ({'case' , Meta , [Expr , Options ]}, S , E ) ->
337338 assert_no_match_or_guard_scope (Meta , " case" , S , E ),
@@ -340,12 +341,14 @@ expand({'case', Meta, [Expr, Options]}, S, E) ->
340341expand ({'receive' , Meta , [Opts ]}, S , E ) ->
341342 assert_no_match_or_guard_scope (Meta , " receive" , S , E ),
342343 {EClauses , SC , EC } = elixir_clauses :'receive' (Meta , Opts , S , E ),
343- {{'receive' , Meta , [EClauses ]}, SC , EC };
344+ # elixir_ex {version = Counter } = SC ,
345+ {{'receive' , [{version , Counter } | Meta ], [EClauses ]}, SC # elixir_ex {version = Counter + 1 }, EC };
344346
345347expand ({'try' , Meta , [Opts ]}, S , E ) ->
346348 assert_no_match_or_guard_scope (Meta , " try" , S , E ),
347349 {EClauses , SC , EC } = elixir_clauses :'try' (Meta , Opts , S , E ),
348- {{'try' , Meta , [EClauses ]}, SC , EC };
350+ # elixir_ex {version = Counter } = SC ,
351+ {{'try' , [{version , Counter } | Meta ], [EClauses ]}, SC # elixir_ex {version = Counter + 1 }, EC };
349352
350353% % Comprehensions
351354
@@ -857,9 +860,9 @@ expand_for({for, Meta, [_ | _] = Args}, S, E, Return) ->
857860 {error , Error } -> {file_error (Meta , E , ? MODULE , Error ), EOpts }
858861 end ,
859862
860- {{ for , Meta , ECases ++ [[{ do , EExpr } | NormalizedOpts ]]} ,
861- elixir_env : merge_and_check_unused_vars ( SE , S , EE ) ,
862- E }.
863+ # elixir_ex { version = Counter } = SF = elixir_env : merge_and_check_unused_vars ( SE , S , EE ) ,
864+ {{ for , [{ version , Counter } | Meta ], ECases ++ [[{ do , EExpr } | NormalizedOpts ]]} ,
865+ SF # elixir_ex { version = Counter + 1 }, E }.
863866
864867validate_for_options ([{into , _ } = Pair | Opts ], _Into , Uniq , Reduce , Return , Meta , E , Acc ) ->
865868 validate_for_options (Opts , Pair , Uniq , Reduce , Return , Meta , E , [Pair | Acc ]);
0 commit comments