[erlang-bugs] Different Dialyzer results for no_return() and none()

Loïc Hoguin <>
Thu Oct 4 10:55:47 CEST 2012


Not sure it still happens in HEAD, I only have R15B01 handy at the moment.

I found a small issue: none() doesn't behave the same as no_return().

I am implementing a special process as described by this:


I include "-Werror_handling" in my Dialyzer options.

I of course get a warning about system_terminate exiting. These two 
specs don't behave the same:

-spec system_terminate(_, _, _, _) -> no_return().
-spec system_terminate(_, _, _, _) -> none().

Only the first suppresses the warning.

Typespecs documentation 
(http://www.erlang.org/doc/reference_manual/typespec.html) tells me 
no_return() stands for none() though.

Loïc Hoguin
Erlang Cowboy
Nine Nines

More information about the erlang-bugs mailing list