lists:concat/1 spec inconsistent with implementation or bug in Dialyzer?
Rickard Olsson
rickard@REDACTED
Wed Jul 21 18:10:26 CEST 2010
Hi,
When running Dialyzer on the code below I get the following messages: "The
call lists:concat([['a,...],...]) breaks the contract ([concat_thing()]) ->
string()" and "Function unused_function/1 will never be called"
Test code:
-export([parse/0]).
parse()->
concat(),
unused_function(a).
concat() ->
lists:concat([[a]]).
unused_function(A) ->
A.
The line: "lists:concat([[a]])." runs fine in the shell, but seems to cause
the dialyzer to stop, which I assume is the reason it warns that
unused_function/1 will never be used, even though it is used. If the arity
is changed to 0 and the arguments removed from the call, the warning seems
to disapear though.
Is it a bug in the lists:concat/1's spec or in Dialyzer?
Running:
openSUSE 11.0 (X86-64)
Erlang R14A (erts-5.8) [source] [64-bit]
Dialyzer v2.3.0
Regards,
Rickard Olsson
Erlang Solutions
More information about the erlang-bugs
mailing list