@@ -190,12 +190,15 @@ run_with_location_change(File, E, Callback) ->
190190def_to_clauses (_Kind , Meta , Args , [], nil , E ) ->
191191 check_args_for_bodiless_clause (Meta , Args , E ),
192192 [];
193- def_to_clauses (Kind , Meta , _Args , _Guards , nil , E ) ->
194- elixir_errors :form_error (Meta , ? key (E , file ), elixir_expand , {missing_option , Kind , [do ]});
195193def_to_clauses (_Kind , Meta , Args , Guards , [{do , Body }], _E ) ->
196194 [{Meta , Args , Guards , Body }];
197- def_to_clauses (Kind , Meta , Args , Guards , Body , _E ) ->
198- [{Meta , Args , Guards , {'try' , [{origin , Kind } | Meta ], [Body ]}}].
195+ def_to_clauses (Kind , Meta , Args , Guards , Body , E ) ->
196+ case is_list (Body ) andalso lists :keyfind (do , 1 , Body ) of
197+ {do , _ } ->
198+ [{Meta , Args , Guards , {'try' , [{origin , Kind } | Meta ], [Body ]}}];
199+ false ->
200+ elixir_errors :form_error (Meta , ? key (E , file ), elixir_expand , {missing_option , Kind , [do ]})
201+ end .
199202
200203run_on_definition_callbacks (Kind , Module , Name , Args , Guards , Body , E ) ->
201204 Callbacks = ets :lookup_element (elixir_module :data_table (Module ), on_definition , 2 ),
0 commit comments