[erlang-questions] Somebody please correct my -callback understanding
Wed Dec 14 19:11:37 CET 2011
W dniu 14.12.2011 17:58, Damian Dobroczyński pisze:
> Hi list!
> I have a module "a" defining callback "c":
> -module (a).
> -callback c (integer()) -> integer().
> Now, I have callback module "b" implementing invalid (non-comforming the
> a:c/1 spec) callback "c":
> -module (b).
> -behavior (a).
> -export ([c/1]).
> c (A) when is_atom(A) ->
> Now, I dialyze both modules:
> $ dialyze -n --src a.erl b.erl
> which outputs:
> Proceeding with analysis... done in 0m0.64s
> done (passed successfully)
> What I've expected is the dialyzer warning about invalid b:c/1 function
> (something about breaking the contract for c/1). Am I right?
> -- D.
Wow, It's a miracle! I've just found the answer and (what I understand)
a bug. IT IS "-behavior (...)" which is perfectly understood by the
compiler but not by by the dialyzer! Dialyzer expects "-behaviour (...)"
(note the different spelling).
More information about the erlang-questions