warn_unused_vars
James Hague
jamesh@REDACTED
Wed Feb 5 19:03:47 CET 2003
>> get_creds(Users, App) ->
>> [ get_cred(User, App) || User <- Users ].
>
>That was a bug in the linter, but it has been fixed, at
>least in R9.
On a related note, you get a bizarre runtime error and no compile time
warnings if you don't bind a variable on the right side of a list
comprenshion. For example, take the standard definition of map:
map(F, [H|T]) ->
[F(H)|map(F, T)];
map(_, []) -> [].
and change it to:
map(F, [H|T]) ->
[F(H)||map(F, T)];
map(_, []) -> [].
I did this by accident once, and it took me half an hour to see the typo.
You get an error report indicating that a case expression couldn't be
matched, but I would think this code shouldn't get through the compiler in
the first place. Or is there a reason to allow list comprehensions with a
single predicate on the right side?
James
More information about the erlang-questions
mailing list