如何让透析器忽略某些未导出的功能?

我正在使用啤酒做我的日志记录; 它有一个解析器转换,将lager:warn/1等函数转换为lager:trace...函数。

透析器不处理解析器转换,所以它会通过Call to missing or unexported function lager:warn/1

我如何告诉它这个函数确实存在,而不是警告它?


最好的办法是让dialyzer查看你的编译束文件,只要在编译代码时应用解析变换,并且在你的.plt文件中包含lager就可以了


通过检查meck项目的Makefile中关于透析器的工作,找到了一种方法。 看看:Makefile
关键部分是这样的:

| 
    fgrep -v -f ./dialyzer.ignore-warnings

因此在该文件中:dialyzer.ignore-警告您将看到该做什么。 在我的版本中,我补充道:

呼叫丢失或未导出的函数储存器:警告/ 1
呼叫丢失或未导出的功能啤酒:警告/ 2
调用缺少或未导出的函数lager:info / 1
呼叫丢失或未导出的函数lager:info / 2
调用缺少或未导出的函数lager:error / 1
调用缺少或未导出的函数lager:error / 2

我得到的警告消失了。 我当然在我的rebar.config中有这个条目:

{erl_opts, [{parse_transform, lager_transform}]}. 
链接地址: http://www.djcxy.com/p/76081.html

上一篇: How do I get dialyzer to ignore certain unexported functions?

下一篇: SQL Most effective way to store every word in a document separately