diff options
author | Stavros Aronis <[email protected]> | 2011-05-02 15:14:14 +0300 |
---|---|---|
committer | Stavros Aronis <[email protected]> | 2011-08-29 09:31:35 +0300 |
commit | 25b2e4850a231ac868c966f8ef3c2fbfe2f7dfde (patch) | |
tree | f25bb1bffd5b49da10f55a183d3b05ddca0edb7e /lib/dialyzer/src/dialyzer_dataflow.erl | |
parent | ae96591f1110cd8dae0aa628ecf74f8f81676e3d (diff) | |
download | otp-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.erl | 8 |
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 -> |