diff options
author | Zandra <[email protected]> | 2015-12-28 11:55:48 +0100 |
---|---|---|
committer | Zandra <[email protected]> | 2015-12-28 11:55:48 +0100 |
commit | 60d310117c005d6a05dcfc729b79a174b44e5370 (patch) | |
tree | 8aa896e5bc58ab950e0a4c7dfb5eb3032614db0c /lib/dialyzer/src/dialyzer_analysis_callgraph.erl | |
parent | fc7eb7da8b9ccbc883f2001cf14021da8c85da4d (diff) | |
parent | 33ddd3f0699cbb4aa9aea2ec7fcf690d5c498c53 (diff) | |
download | otp-60d310117c005d6a05dcfc729b79a174b44e5370.tar.gz otp-60d310117c005d6a05dcfc729b79a174b44e5370.tar.bz2 otp-60d310117c005d6a05dcfc729b79a174b44e5370.zip |
Merge branch 'lucafavatella/dialyzer-fun-call' into maint
* lucafavatella/dialyzer-fun-call:
Teach Dialyzer call to funs `M:F/A` (literal M, F, A)
OTP-13217
Diffstat (limited to 'lib/dialyzer/src/dialyzer_analysis_callgraph.erl')
-rw-r--r-- | lib/dialyzer/src/dialyzer_analysis_callgraph.erl | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/lib/dialyzer/src/dialyzer_analysis_callgraph.erl b/lib/dialyzer/src/dialyzer_analysis_callgraph.erl index c57a22129c..826ac51775 100644 --- a/lib/dialyzer/src/dialyzer_analysis_callgraph.erl +++ b/lib/dialyzer/src/dialyzer_analysis_callgraph.erl @@ -624,6 +624,28 @@ find_call_file_and_line(Tree, MFA) -> MFA -> Ann = cerl:get_ann(SubTree), [{get_file(Ann), get_line(Ann)}|Acc]; + {erlang, make_fun, 3} -> + [CA1, CA2, CA3] = cerl:call_args(SubTree), + case + cerl:is_c_atom(CA1) andalso + cerl:is_c_atom(CA2) andalso + cerl:is_c_int(CA3) + of + true -> + case + {cerl:concrete(CA1), + cerl:concrete(CA2), + cerl:concrete(CA3)} + of + MFA -> + Ann = cerl:get_ann(SubTree), + [{get_file(Ann), get_line(Ann)}|Acc]; + _ -> + Acc + end; + false -> + Acc + end; _ -> Acc end; false -> Acc |