another bounds example - catched by normal compile but not by dialyzer
Roger Larsson
roger.larsson@REDACTED
Tue Jun 27 09:16:13 CEST 2006
Furter experimentation:
* Static checking of array bounds is a simpler problem than handling dynamic
lists.
So, lets try the same kind of errors with tuples.
Normal compile detects these simple cases. But dialyzer
return some strange messages.
At least the dialyzer output is hard to decipher...
-module(bounds).
-export([detect/0, wrong_match/0]).
detect() -> element(4, {1, 2, 3}).
wrong_match() -> {_, _, _, _} = {1, 2, 3}.
> erl
1> c(bounds).
./bounds.erl:4: Warning: this expression would cause a 'badarg' exception at
run-time
./bounds.erl:5: Warning: this clause cannot match because of different
types/sizes
{ok,bounds}
> dialyzer (from source)
{bounds,detect,0}: Function has no local return
{bounds,wrong_match,0}: Function has no local return
/RogerL
More information about the erlang-questions
mailing list