[erlang-questions] clarify: Dialyzer error/warinng for ssl_accept

Kostis Sagonas kostis@REDACTED
Fri Dec 23 12:18:46 CET 2011


On 12/23/11 12:00, Bengt Kleberg wrote:
> Greetings,
>
> To get working code we need to keep 'ok', but can we at the same time
> persuade Dialyzer not to complain?
>
> There are some emails that discuss the problem with Dialyzer
> error/warning for ssl_accept. They seem to concentrate upon the changed
> behaviour of ssl_accept/1 in different Erlang versions. So fist things
> first:
> We are running Erlang R14B01 (erts-5.8.2) [smp:2:2] [rq:2]
> [async-threads:0] [kernel-poll:false]
>
> Our code looks like this:
> case ssl:ssl_accept(Socket) of
> 	ok ->
> ...
> 	{error, Error} ->
> end
>
> Dialyzer says:
> sip_transport.erl:2207: The pattern 'ok' can never match the type
> {'error',_} | {'ok',{'sslsocket',_,_}}


There is no way to pursuade dialyzer not to complain without modifying 
the sources of R14B01.  If you want to do something like this, first 
check what the specs of the 'ssl' module specify and if the problem does 
not go away then check whether the wrong information is somewhere in 
erl_types.erl.

Kostis



More information about the erlang-questions mailing list