gen_statem:start_monitor dialyzer warning

Matt Kowalczyk <[email protected]>
Newsgroups gmane.comp.lang.erlang.general
Message-ID <[email protected]>
Having a hard time understanding why the following sample code generates
a dialyzer warning,

-module(foo).

-behaviour(gen_statem).

-export([start_monitor/0,callback_mode/0,init/1,start/3]).

-spec start_monitor() -> {ok, {pid(), reference()}}.
start_monitor() ->
    gen_statem:start_monitor(?MODULE, [], []).

callback_mode() ->
    state_functions.

init(_Args) ->
    {ok, start, []}.

start(_EventType, _EventContent, Data) ->
    {keep_state, Data}.

The warning is,

foo.erl:7: Invalid type specification for function foo:start_monitor/0.
The success typing is
          () -> 'ignore' | {'error', _}

What's puzzling me is that this doesn't happen when calling
gen_statem:start or gen_statem:start_link which are also annotated with
the 'ignore' | {'error', _} clauses.  Also, when the spec statement of
foo:start_monitor/0 is changed to, -spec start_monitor() -> ignore
dialyzer passes successfully.

Thanks!

-- 
Matt Kowalczyk
publickey - [email protected] - 2ce7beba.asc (application/pgp-keys, 3 KB)
-----BEGIN PGP PUBLIC KEY BLOCK-----

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
=KZmI
-----END PGP PUBLIC KEY BLOCK-----
signature.asc (application/pgp-signature, 839 B)
-----BEGIN PGP SIGNATURE-----
Version: ProtonMail

wsFmBAEBCAAQBQJgDXKeCRBLDNa+1BbZ6AAKCRBLDNa+1BbZ6CIfD/wOkJh3
E1kD+Ls2ENHkQZjTKwiNeiR4Brjl5SAy7Os4ITz218qo9lO8OQV7Nso2lcuz
/fxdYjVhhww2LPwMfSiL425MpnCbUplQQzYdwGPvJvVUw2r23hRxPI9m2e2g
MwA2/cCVS3ZjjzsQXsta4d06w4Zvg9xK9piO7iRflGQfZ2gs3pz+9+sDVKUS
y1wUswtGRO0KBbqVeuLi5YQz/wSsEiw2B8uvDFExGMVt0Gsxjirj9yx647nI
F+twu5OfmYO/aJn0guDSSukHHzyJV1el/zazIO7qRR95ShzqYhtg65xYmcgG
HwNMNLyFnvLzPKTqKtaJ+7tmFQYSTuHk7vROksz8EeJ0Oz51eZxiwdiWhOTW
OR/8ieUPx3O8R7ah+Ri2cny4RjPnzBQncmF86XtVN5aD6FCHRjC2lcNopCJn
Ga8FBYrPdaADBellMOLZMIVd+oCNM7n0cpZswO7s6m+nRvAwengSjKgjhn1D
gAi9g5iIvHTh7cmnmT14936+ERL751whIJzkjIltt1VikMssosnU7YtcMPBY
gITAd2jDsbaN+zytsq9EAkMwxKLM80e21fM4B3e4TULdcIgR1lQhFgkbl1TX
/hl3sX/HWbBa3+1b0ekx/4/AQQ/hhFESKJWJ3VTqv4myx07YuYdVsOdYCz/I
B/n+fe+O6zCfLkRs/g==
=zdq8
-----END PGP SIGNATURE-----
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.