dialyzer problem with exceptions

Anthony Shipman <>
Sun Jul 18 17:04:43 CEST 2010


This is release 12B4 with options  -Wno_unused -Wno_return

It appears that the second branch of reportMissing is ignored when determining 
the success typing, perhaps because it always raises an exception.

bssBoss.erl:182: The call
bssBoss:reportMissing(["operator"],FuncName::
[1..255,...],Pos::any(),State::any())
will fail since it differs in argument position 1 from the success typing
arguments: ([],[1..255,...],any(),any())

bssBoss.erl:197: The call
bssBoss:reportMissing(["user"],FuncName::[1..255,...],Pos::any(),State::any())
will fail since it differs in argument position 1 from the success typing
arguments: ([],[1..255,...],any(),any())



reportMissing([], _FuncName, _Pos, _State) ->
    ok;

reportMissing(Keys, FuncName, Pos, State) ->
    Names = util:join(Keys, ", "),
    valueError("missing keys: " ++ Names, FuncName, Pos, State).


valueError(Text, FuncName, Pos, State) ->
    Msg = io_lib:format("~s() ~s", [FuncName, Text]),
    except:raiseBuiltinWithMsg(<<"ValueError">>, Msg, Pos, State).


-- 
Anthony Shipman                    Mamas don't let your babies 
                   grow up to be outsourced.


More information about the erlang-questions mailing list