diff options
author | Hans Bolinder <[email protected]> | 2016-04-28 13:23:13 +0200 |
---|---|---|
committer | Hans Bolinder <[email protected]> | 2016-04-29 14:16:38 +0200 |
commit | ce8162c18707fa860418118bc2f4be03719dff67 (patch) | |
tree | 0d830142dd4aad13a97e19d29552348fdc78c237 /lib/hipe/cerl | |
parent | 5063a52959570e6df11d6d94ae904f78daf8f954 (diff) | |
download | otp-ce8162c18707fa860418118bc2f4be03719dff67.tar.gz otp-ce8162c18707fa860418118bc2f4be03719dff67.tar.bz2 otp-ce8162c18707fa860418118bc2f4be03719dff67.zip |
dialyzer: Fix a bug in the translation of forms to types
A bug is fixed, but there are more problems.
Modify erl_types.erl like this:
-define(EXPAND_LIMIT, 500).
and bogus warnings are output (again).
Callbacks and specs are compared (subtype) in dialyzer_behaviour. If
they are expanded to different depths, then invalid warnings can be
generated.
Diffstat (limited to 'lib/hipe/cerl')
-rw-r--r-- | lib/hipe/cerl/erl_types.erl | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/lib/hipe/cerl/erl_types.erl b/lib/hipe/cerl/erl_types.erl index 58060361af..02e1625965 100644 --- a/lib/hipe/cerl/erl_types.erl +++ b/lib/hipe/cerl/erl_types.erl @@ -2,7 +2,7 @@ %% %% %CopyrightBegin% %% -%% Copyright Ericsson AB 2003-2015. All Rights Reserved. +%% Copyright Ericsson AB 2003-2016. All Rights Reserved. %% %% Licensed under the Apache License, Version 2.0 (the "License"); %% you may not use this file except in compliance with the License. @@ -4611,7 +4611,7 @@ t_from_form({type, _L, 'fun', [{type, _, any}, Range]}, TypeNames, t_from_form({type, _L, 'fun', [{type, _, product, Domain}, Range]}, TypeNames, ET, S, MR, V, D, L) -> {Dom1, L1} = list_from_form(Domain, TypeNames, ET, S, MR, V, D, L), - {Ran1, L2} = t_from_form(Range, TypeNames, ET, S, MR, V, D - 1, L1), + {Ran1, L2} = t_from_form(Range, TypeNames, ET, S, MR, V, D, L1), {t_fun(Dom1, Ran1), L2}; t_from_form({type, _L, identifier, []}, _TypeNames, _ET, _S, _MR, _V, _D, L) -> {t_identifier(), L}; |