aboutsummaryrefslogtreecommitdiffstats
path: root/lib/dialyzer/src/dialyzer_dataflow.erl
diff options
context:
space:
mode:
authorHenrik Nord <[email protected]>2011-08-25 10:58:33 +0200
committerHenrik Nord <[email protected]>2011-08-25 10:58:33 +0200
commit756a93ca2064b9e0eba3d82a7bd37aeae0f39be1 (patch)
treeffbbbfd2749a522c7b1f70ee4f7b1fa0a5e189f3 /lib/dialyzer/src/dialyzer_dataflow.erl
parent48eb259aa2d6c7c5d1ddebbfbcefae5e3dafc49c (diff)
parentd48eaa0731017e5cdadca0af77ac14cd949b6c67 (diff)
downloadotp-756a93ca2064b9e0eba3d82a7bd37aeae0f39be1.tar.gz
otp-756a93ca2064b9e0eba3d82a7bd37aeae0f39be1.tar.bz2
otp-756a93ca2064b9e0eba3d82a7bd37aeae0f39be1.zip
Merge branch 'dev' into major
Diffstat (limited to 'lib/dialyzer/src/dialyzer_dataflow.erl')
-rw-r--r--lib/dialyzer/src/dialyzer_dataflow.erl13
1 files changed, 12 insertions, 1 deletions
diff --git a/lib/dialyzer/src/dialyzer_dataflow.erl b/lib/dialyzer/src/dialyzer_dataflow.erl
index 7137dbc036..8cb16d8f09 100644
--- a/lib/dialyzer/src/dialyzer_dataflow.erl
+++ b/lib/dialyzer/src/dialyzer_dataflow.erl
@@ -1414,6 +1414,17 @@ do_clause(C, Arg, ArgType0, OrigArgType, Map,
false ->
true
end;
+ [Pat0, Pat1] -> % binary comprehension
+ case cerl:is_c_cons(Pat0) of
+ true ->
+ not (cerl:is_c_var(cerl:cons_hd(Pat0)) andalso
+ cerl:is_c_var(cerl:cons_tl(Pat0)) andalso
+ cerl:is_c_var(Pat1) andalso
+ cerl:is_literal(Guard) andalso
+ (cerl:concrete(Guard) =:= true));
+ false ->
+ true
+ end;
_ -> true
end;
false ->
@@ -2915,7 +2926,7 @@ state__get_warnings(#state{tree_map = TreeMap, fun_tab = FunTab,
{Warn, Msg} =
case dialyzer_callgraph:lookup_name(FunLbl, Callgraph) of
error -> {true, {unused_fun, []}};
- {ok, {_M, F, A}} = MFA ->
+ {ok, {_M, F, A} = MFA} ->
{not sets:is_element(MFA, NoWarnUnused),
{unused_fun, [F, A]}}
end,