【发布时间】:2022-08-04 23:56:43
【问题描述】:
我可以在这里问一个新手问题:
为什么 Dialyzer 只检查函数的第一种情况?
-spec f(integer()) -> integer().
f(0) -> 0;
f(_) -> test.
进行分析...在 0m0.25s 内完成 完成(成功通过)
带有 \"case\" 的版本也通过了检查:
-spec f(integer()) -> integer().
f(N) ->
case N of
0 -> 1;
_ -> test
end.
透析器版本是 4.4.3
-
虽然这个例子是在 Elixir 而不是 Erlang 中,但这个 issue 非常相似。使用
missing_return标志应该可以捕捉到这一点。