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-----