aleppo
aleppo copied to clipboard
Defines not supported inside guard expressions
It looks like, defines is not properly substituded in guard expressions.
-module(ar_test_controller, [Req]).
-define(is_ok(X), is_list(X)).
test('GET', [X]) when ?is_ok(X) ->
ok.
rebar compile cause following error:
ERROR: pre_compile failed while processing /home/user/chicagoboss/ar:
{'EXIT',{{badmatch,{error,[{"/home/user/chicagoboss/ar/src/controller/ar_test_controller.erl",
[{{5,24},erl_lint,illegal_guard_expr}]}]}},
[{boss_load,load_all_modules,3,
[{file,"src/boss/boss_load.erl"},{line,28}]},
{boss_load,load_all_modules_and_emit_app_file,2,
[{file,"src/boss/boss_load.erl"},{line,42}]},
{boss_rebar,compile,4,
[{file,"../ChicagoBoss/priv/rebar/boss_rebar.erl"},
{line,85}]},
{boss_plugin,pre_compile,2,
[{file,"priv/rebar/boss_plugin.erl"},{line,105}]},
{rebar_core,run_modules,4,[]},
{rebar_core,execute,4,[]},
{rebar_core,process_dir0,6,[]},
{rebar_core,process_commands,2,[]}]}}
make: *** [erl] Error 1
Guard expressions for case clauses produces same errors.
Thanks. I am aware of the problem. Right now macros are compiled to funs (which aren't allowed in guards) but this behavior should change.