diff options
author | Hans Bolinder <[email protected]> | 2012-08-21 10:48:26 +0200 |
---|---|---|
committer | Hans Bolinder <[email protected]> | 2012-08-21 10:48:26 +0200 |
commit | 2502f65bd14be4132a12c6fb7fd51c227603a017 (patch) | |
tree | 4789f2dadcbd3f87ec73e50c2ff7035ffc1a15cb /lib/hipe/cerl | |
parent | d07c8e98d6924471879034bf801e19658cabbd54 (diff) | |
parent | 064b42237d891d5fdcb6c1a351980b8291437618 (diff) | |
download | otp-2502f65bd14be4132a12c6fb7fd51c227603a017.tar.gz otp-2502f65bd14be4132a12c6fb7fd51c227603a017.tar.bz2 otp-2502f65bd14be4132a12c6fb7fd51c227603a017.zip |
Merge branch 'maint'
* maint:
Let t_inf() substitute any() for variables in a few more cases
Fix a bug in dialyzer_dataflow
Diffstat (limited to 'lib/hipe/cerl')
-rw-r--r-- | lib/hipe/cerl/erl_types.erl | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/lib/hipe/cerl/erl_types.erl b/lib/hipe/cerl/erl_types.erl index 1789fc79fa..410e29d269 100644 --- a/lib/hipe/cerl/erl_types.erl +++ b/lib/hipe/cerl/erl_types.erl @@ -2318,10 +2318,14 @@ t_inf(?product(_), _, _Mode) -> ?none; t_inf(_, ?product(_), _Mode) -> ?none; -t_inf(?tuple(?any, ?any, ?any), ?tuple(_, _, _) = T, _Mode) -> T; -t_inf(?tuple(_, _, _) = T, ?tuple(?any, ?any, ?any), _Mode) -> T; -t_inf(?tuple(?any, ?any, ?any), ?tuple_set(_) = T, _Mode) -> T; -t_inf(?tuple_set(_) = T, ?tuple(?any, ?any, ?any), _Mode) -> T; +t_inf(?tuple(?any, ?any, ?any), ?tuple(_, _, _) = T, _Mode) -> + subst_all_vars_to_any(T); +t_inf(?tuple(_, _, _) = T, ?tuple(?any, ?any, ?any), _Mode) -> + subst_all_vars_to_any(T); +t_inf(?tuple(?any, ?any, ?any), ?tuple_set(_) = T, _Mode) -> + subst_all_vars_to_any(T); +t_inf(?tuple_set(_) = T, ?tuple(?any, ?any, ?any), _Mode) -> + subst_all_vars_to_any(T); t_inf(?tuple(Elements1, Arity, _Tag1), ?tuple(Elements2, Arity, _Tag2), Mode) -> case t_inf_lists_strict(Elements1, Elements2, Mode) of bottom -> ?none; |