aboutsummaryrefslogtreecommitdiffstats
path: root/lib/dialyzer/src/dialyzer_dataflow.erl
diff options
context:
space:
mode:
authorStavros Aronis <[email protected]>2011-05-02 15:14:14 +0300
committerStavros Aronis <[email protected]>2011-08-29 09:31:35 +0300
commit25b2e4850a231ac868c966f8ef3c2fbfe2f7dfde (patch)
treef25bb1bffd5b49da10f55a183d3b05ddca0edb7e /lib/dialyzer/src/dialyzer_dataflow.erl
parentae96591f1110cd8dae0aa628ecf74f8f81676e3d (diff)
downloadotp-25b2e4850a231ac868c966f8ef3c2fbfe2f7dfde.tar.gz
otp-25b2e4850a231ac868c966f8ef3c2fbfe2f7dfde.tar.bz2
otp-25b2e4850a231ac868c966f8ef3c2fbfe2f7dfde.zip
Fix infinite loop in dataflow
Diffstat (limited to 'lib/dialyzer/src/dialyzer_dataflow.erl')
-rw-r--r--lib/dialyzer/src/dialyzer_dataflow.erl8
1 files changed, 7 insertions, 1 deletions
diff --git a/lib/dialyzer/src/dialyzer_dataflow.erl b/lib/dialyzer/src/dialyzer_dataflow.erl
index 2b70c372de..df411342cb 100644
--- a/lib/dialyzer/src/dialyzer_dataflow.erl
+++ b/lib/dialyzer/src/dialyzer_dataflow.erl
@@ -554,7 +554,13 @@ handle_apply(Tree, Map, State) ->
{State3, enter_type(Op, OpType1, Map2), t_none()};
false ->
Map3 = enter_type_lists(Args, NewArgs, Map2),
- {State2, enter_type(Op, OpType1, Map3), t_fun_range(OpType1)}
+ Range0 = t_fun_range(OpType1),
+ Range =
+ case t_is_unit(Range0) of
+ true -> t_none();
+ false -> Range0
+ end,
+ {State2, enter_type(Op, OpType1, Map3), Range}
end
end;
true ->