Erlang dialyzer Созданное веселье не имеет локального возврата - PullRequest
6 голосов
/ 21 декабря 2011

Я запускаю диализатор для моего проекта.Я получил:

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

В строке 97 у меня есть:

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

Что не так?

Спасибо.

1 Ответ

11 голосов
/ 21 декабря 2011

Кажется, dialyzer обнаружил, что TestList может содержать что-то отличное от {_, _, SomeBoolFlag} кортежей.

А также вы можете немного упростить этот код:

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

или

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