[erlang-questions] dialyzer and re(3)

Paul Guyot <>
Thu Nov 13 08:04:47 CET 2008


Le 11 nov. 08 à 17:34, Kostis Sagonas a écrit :

>>> While we appreciate dialyzer very much and we rely on it,
>>> we are somewhat disappointed by its current limitations
>
> Can you please be a bit more specific about "its current  
> limitations" ?
> (perhaps even off the list if you think that's more appropriate).

All limitations we noticed were mentioned here. For example, there is  
the lack of support for recursive types, or the contract induction  
that is sometimes too liberal. But we gave up on recursive types and  
being too liberal just means that dialyzer might miss bugs, which it  
always will anyway.

Like many other erlang users, we wish there was a generalized support  
for types in stdlib, with a merge of edoc and -spec syntaxes, which is  
planned for R13 I read. A generalized support for parametrized types  
would also improve dialyzers' scope. For example a gb_sets where all  
elements are of a single type X would allow dialyzer to check  
operations such as gb_sets:add_element/2. We'd also love an extended  
support for apply/2 and apply/3 (which is more tricky) and for  
behaviour callbacks. For example, we implemented a parse_transform  
that checks at compile time that gen_server:call and cast calls match  
the handle_call and handle_cast callbacks, but this typically could be  
checked by dialyzer.

Paul




More information about the erlang-questions mailing list