2011-12-21 12 views
5

Ejecuto el dializador para mi proyecto. Tengo:Erlang dializador La diversión creada no tiene retorno local

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

En la línea 97 que tengo:

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

¿Qué pasa?

Gracias.

+1

Usando sólo el código proporcionado no puedo reproducir esta advertencia. Proporcione más contexto. – aronisstav

Respuesta

11

Parece que dialyzer ha encontrado que TestList puede contener algo más que {_, _, SomeBoolFlag} tuplas.

Y también se puede simplificar este código un poco:

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

o:

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