Re: [erlang-bugs] Compiler/linter bug breaking unused variable warnings

Fredrik <[email protected]>
Newsgroups gmane.comp.lang.erlang.patches,gmane.comp.lang.erlang.bugs
Message-ID <[email protected]>
On 06/06/2013 01:47 AM, Anthony Ramine wrote:
> Hello,
>
> When analyzing complex expressions (i.e. comprehensions, cases, tries, ifs and receives), erl_lint does not forget about old unused variables when returning the updated variable table. This causes a bug where old
> unused variables are not recorded as such:
>
> t(X, Y) ->
>    #r{a=[ K || K<- Y ],b=[ K || K<- Y ].
>
> As erl_lint uses vtmerge_pat/2 to merge the results of the analysis of the two list comprehensions, X is marked as used and the warning is not emitted.
>
> The function vtmerge_pat/2 is used instead of the similar vtmerge/2 which does not mark multiple occurrences of a variable as usage to handle cases like the following one:
>
> t(X, Y) ->
>    #r{a=A=X,b=A=Y}.
>
> Other simpler expressions like conses, tuples and external fun references does not correctly follow this behaviour.
>
> This patch fixes both issues and makes erl_lint not return old unused variables in updated tables and makes all compound expressions use vtmerge_pat/2.
>
> 	git fetch https://github.com/nox/otp.git fix-erl_lint-variable-usage
>
> 	https://github.com/nox/otp/compare/erlang:maint...fix-erl_lint-variable-usage
> 	https://github.com/nox/otp/compare/erlang:maint...fix-erl_lint-variable-usage.patch
>
> Regards,
>
Hi Anthony,
Your patch has been reviewed and the feedback was:

"

Hi,

The first example of the commit messages lacks a '}' before the dot.

I'm not sure I understand exactly what the paragraph starting with 
"Other simpler expressions..." means. Could you clarify, please? (And 
substitute "do" for "does"...)

I noticed that if the call to vt_no_unused() in the last line of 
expr_list/3 is removed the test suite still passes; there is no case 
where the call actually removes anything. Would it be possible to 
include a test that covers this particular call?

Best regards,

"

-- 

BR Fredrik Gustafsson
Erlang OTP Team

_______________________________________________
erlang-patches mailing list
[email protected]
http://erlang.org/mailman/listinfo/erlang-patches
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.