diff options
author | Hans Bolinder <[email protected]> | 2014-05-13 08:35:42 +0200 |
---|---|---|
committer | Hans Bolinder <[email protected]> | 2014-05-13 08:35:42 +0200 |
commit | a21e69bc29d913a4f2d63abe1550a9ce97579e72 (patch) | |
tree | e1ef545de03c734979cb0a149add9639b1ed1037 /lib/dialyzer | |
parent | 614439de03d85efba23de0ea31f04cf8efb86495 (diff) | |
parent | 1b0b2627bc16d75da311e4dd797356ff6c7f922d (diff) | |
download | otp-a21e69bc29d913a4f2d63abe1550a9ce97579e72.tar.gz otp-a21e69bc29d913a4f2d63abe1550a9ce97579e72.tar.bz2 otp-a21e69bc29d913a4f2d63abe1550a9ce97579e72.zip |
Merge branch 'maint'
* maint:
hipe: fix a bug concerning typed record fields
Diffstat (limited to 'lib/dialyzer')
-rw-r--r-- | lib/dialyzer/src/dialyzer_contracts.erl | 9 | ||||
-rw-r--r-- | lib/dialyzer/test/small_SUITE_data/src/remote_field.erl | 11 |
2 files changed, 12 insertions, 8 deletions
diff --git a/lib/dialyzer/src/dialyzer_contracts.erl b/lib/dialyzer/src/dialyzer_contracts.erl index 462275e713..3aa5a1779c 100644 --- a/lib/dialyzer/src/dialyzer_contracts.erl +++ b/lib/dialyzer/src/dialyzer_contracts.erl @@ -754,14 +754,7 @@ is_remote_types_related(Contract, CSig, Sig, RecDict) -> t_from_forms_without_remote([{FType, []}], RecDict) -> Type0 = erl_types:t_from_form(FType, RecDict), - Map = - fun(Type) -> - case erl_types:t_is_remote(Type) of - true -> erl_types:t_none(); - false -> Type - end - end, - {ok, erl_types:t_map(Map, Type0)}; + {ok, erl_types:subst_all_remote(Type0, erl_types:t_none())}; t_from_forms_without_remote([{_FType, _Constrs}], _RecDict) -> %% 'When' constraints unsupported; diff --git a/lib/dialyzer/test/small_SUITE_data/src/remote_field.erl b/lib/dialyzer/test/small_SUITE_data/src/remote_field.erl new file mode 100644 index 0000000000..c34fa1b9dd --- /dev/null +++ b/lib/dialyzer/test/small_SUITE_data/src/remote_field.erl @@ -0,0 +1,11 @@ +-module(remote_field). + +-type f(T) :: {ssl:sslsocket(), T}. + +-record(r1, { f1 :: f(_) }). +-type r1(T) :: #r1{ f1 :: fun((ssl:sslsocket(), T) -> any()) }. + +-record(state, { + r :: r1(T), + arg :: T + }). |