【发布时间】:2013-12-22 16:43:47
【问题描述】:
我正在使用贮藏啤酒进行日志记录;它有一个解析器转换,可将lager:warn/1 等函数转换为lager:trace... 函数。
dialyzer 不处理解析器转换,因此会以Call to missing or unexported function lager:warn/1 发出警告。
我如何告诉它这个函数确实存在,而不是警告它?
【问题讨论】:
-
AFAIK 透析器检查光束文件,而不是 src (erl),所以您的 src 文件可能是在没有 parse_transform 标志的情况下编译的?我使用 Erlang r16b01、lager 2.0.0 和透析器,一切正常。
-
"Dialyzer 从调试编译的 BEAM 字节码或 Erlang 源代码开始分析。" -- erlang.org/doc/man/dialyzer.html
-
我正在使用混凝土中的透析器目标,github.com/opscode/concrete
-
我检查了混凝土。它工作正常。你确定你添加了
-compile([{parse_transform, lager_transform}]).? -
它在
erl_opts在apps/Foo/rebar.config。