Erlang 有透析器支持自定义行为

Erlang 有透析器支持自定义行为,erlang,dialyzer,Erlang,Dialyzer,我使用透析器时有一些自定义行为,问题是当我这样做时,透析器会给我以下错误: src/max.erl:3: Callback info about the gen_strategy behaviour is not available 有一件事我搞不清楚,那就是如何创建回调信息。我想将这些信息添加到我的行为中,这样我就可以从透析器中获得更多的测试。从R15B开始,Erlang/OTP编译器进行了升级,现在它可以处理一个新的模块属性,名为-callback。 例如: -callback init(

我使用透析器时有一些自定义行为,问题是当我这样做时,透析器会给我以下错误:

src/max.erl:3: Callback info about the gen_strategy behaviour is not available

有一件事我搞不清楚,那就是如何创建回调信息。我想将这些信息添加到我的行为中,这样我就可以从透析器中获得更多的测试。

从R15B开始,Erlang/OTP编译器进行了升级,现在它可以处理一个新的模块属性,名为
-callback。

例如:

-callback init(Args :: term()) ->
    {ok, State :: term()} | {ok, State :: term(), timeout() | hibernate} |
    {stop, Reason :: term()} | ignore.

关于这一点,我试过了,但似乎没有效果。当我将-callback放入行为模块时,它没有编译。当我把它放进另一个模块时,dailyzer仍然给了我同样的错误,很可能透析器找不到行为的代码/beam文件。如果行为在钢筋库中,请确保将
-r deps
传递给透析器命令。Zachary,您能发布有关“未编译”错误的更多信息吗?我肯定能帮上忙,因为我开发了这个扩展。。。如果模块中有
-callback
属性,并且您将其放入PLT或与具有
-behavior
属性的模块一起分析,透析器应识别该行为并使用该信息进行分析。我在Ward的回复中添加了另一个相关的文档链接。@aronisstav我最近尝试使用带透析器的a-callback,但运气不太好。我创造了一个模型来阐明我的问题。你能看一看,让我知道你的想法吗?@Ceryni我刚看了!