Erlang dialyzer创造的乐趣没有本地回报

时间:2011-12-21 08:02:47

标签: erlang static-analysis

我为我的项目运行透析器。我得到了:

test.erl:97: The created fun has no local return

在97行我有:

    List = lists:filter(fun(X) ->
                               {_, _, SomeBoolFlag} = X,
                               SomeBoolFlag == false
                        end,
                TestList)

怎么了?

谢谢。

1 个答案:

答案 0 :(得分:11)

似乎dialyzer发现TestList可以包含{_, _, SomeBoolFlag}元组以外的其他内容。

你也可以简化这段代码:

List = lists:filter(fun({_, _, Flag}) -> not Flag end, TestList)

或:

List = [Item || Item={_, _, false} <- TestList]