diff options
Diffstat (limited to 'lib/stdlib')
| -rw-r--r-- | lib/stdlib/src/erl_lint.erl | 3 | ||||
| -rw-r--r-- | lib/stdlib/test/erl_lint_SUITE.erl | 20 | 
2 files changed, 19 insertions, 4 deletions
diff --git a/lib/stdlib/src/erl_lint.erl b/lib/stdlib/src/erl_lint.erl index e9ac2fcdff..e0cd68617b 100644 --- a/lib/stdlib/src/erl_lint.erl +++ b/lib/stdlib/src/erl_lint.erl @@ -2262,8 +2262,7 @@ expr({'fun',Line,Body}, Vt, St) ->  	    {[],St};  	{function,M,F,A} ->  	    %% New in R15. -	    {Bvt, St1} = expr_list([M,F,A], Vt, St), -	    {vtupdate(Bvt, Vt),St1} +	    expr_list([M,F,A], Vt, St)      end;  expr({named_fun,_,'_',Cs}, Vt, St) ->      fun_clauses(Cs, Vt, St); diff --git a/lib/stdlib/test/erl_lint_SUITE.erl b/lib/stdlib/test/erl_lint_SUITE.erl index c1613a7273..e6ed55bf2d 100644 --- a/lib/stdlib/test/erl_lint_SUITE.erl +++ b/lib/stdlib/test/erl_lint_SUITE.erl @@ -67,7 +67,8 @@           record_errors/1, otp_11879_cont/1,           non_latin1_module/1, otp_14323/1,           stacktrace_syntax/1, -         otp_14285/1, otp_14378/1]). +         otp_14285/1, otp_14378/1, +         external_funs/1]).  suite() ->      [{ct_hooks,[ts_install_cth]}, @@ -88,7 +89,7 @@ all() ->       maps, maps_type, maps_parallel_match,       otp_11851, otp_11879, otp_13230,       record_errors, otp_11879_cont, non_latin1_module, otp_14323, -     stacktrace_syntax, otp_14285, otp_14378]. +     stacktrace_syntax, otp_14285, otp_14378, external_funs].  groups() ->       [{unused_vars_warn, [], @@ -4134,6 +4135,21 @@ otp_14285(Config) ->      run(Config, Ts),      ok. +external_funs(Config) when is_list(Config) -> +    Ts = [{external_funs_1, +           %% ERL-762: Unused variable warning not being emitted. +           <<"f() -> +                BugVar = process_info(self()), +                if true -> fun m:f/1 end. +              f(M, F) -> +                BugVar = process_info(self()), +                if true -> fun M:F/1 end.">>, +           [], +           {warnings,[{2,erl_lint,{unused_var,'BugVar'}}, +                      {5,erl_lint,{unused_var,'BugVar'}}]}}], +    run(Config, Ts), +    ok. +  format_error(E) ->      lists:flatten(erl_lint:format_error(E)).  | 
