我正在使用啤酒来做我的伐木;它有一个解析器转换,可将lager:warn/1
等函数转换为lager:trace...
函数。
透析器不处理解析器转换,因此它会以Call to missing or unexported function lager:warn/1
发出警告。
我如何告诉它 这个函数是否存在,而不是警告它?
答案 0 :(得分:3)
最好的方法是让透析器查看编译光束文件,只要在编译代码时应用解析转换并在.plt文件中包含lager就可以了
答案 1 :(得分:1)
通过查看meck项目关于透析器的Makefile中的操作,偶然发现了一条路。看看:Makefile
关键部分是:
| \
fgrep -v -f ./dialyzer.ignore-warnings
因此,在该文件中:dialyzer.ignore-warnings您将看到该怎么做。在我的版本中,我添加了:
调用丢失或未导出的功能标签:警告/ 1
调用丢失或未导出的功能贮存器:警告/ 2
调用缺失或未导出的函数lager:info / 1
调用缺失或未导出的函数lager:info / 2
调用缺失或未导出的函数lager:error / 1
调用缺少或未导出的函数lager:error / 2
我的警告消失了。我当然在我的rebar.config中输入了这个条目:
{erl_opts, [{parse_transform, lager_transform}]}.