aboutsummaryrefslogtreecommitdiffstats
path: root/lib/dialyzer/test
diff options
context:
space:
mode:
authorHans Bolinder <[email protected]>2019-02-05 15:12:24 +0100
committerHans Bolinder <[email protected]>2019-02-06 10:06:57 +0100
commit0d0799b4971e3353943614a311502cd4dd7b3ec9 (patch)
treee99a9a5d71a51c0a45ced37cead076e6cfc29bfa /lib/dialyzer/test
parentc2126443b79aa53c9fc04e7dad4e6c717ca6986b (diff)
downloadotp-0d0799b4971e3353943614a311502cd4dd7b3ec9.tar.gz
otp-0d0799b4971e3353943614a311502cd4dd7b3ec9.tar.bz2
otp-0d0799b4971e3353943614a311502cd4dd7b3ec9.zip
dialyzer: Fix a bug regarding contracts
See also https://bugs.erlang.org/browse/ERL-845. Fix a bug that caused Dialyzer to crash when analyzing a contract with a module name differing from the analyzed module's name. The bug was introduced in Erlang/OTP 18.
Diffstat (limited to 'lib/dialyzer/test')
-rw-r--r--lib/dialyzer/test/small_SUITE_data/results/spec_other_module2
-rw-r--r--lib/dialyzer/test/small_SUITE_data/src/spec_other_module.erl7
2 files changed, 9 insertions, 0 deletions
diff --git a/lib/dialyzer/test/small_SUITE_data/results/spec_other_module b/lib/dialyzer/test/small_SUITE_data/results/spec_other_module
new file mode 100644
index 0000000000..ab2e35cf55
--- /dev/null
+++ b/lib/dialyzer/test/small_SUITE_data/results/spec_other_module
@@ -0,0 +1,2 @@
+
+spec_other_module.erl:7: Contract for function that does not exist: lists:flatten/1
diff --git a/lib/dialyzer/test/small_SUITE_data/src/spec_other_module.erl b/lib/dialyzer/test/small_SUITE_data/src/spec_other_module.erl
new file mode 100644
index 0000000000..b36742b1bd
--- /dev/null
+++ b/lib/dialyzer/test/small_SUITE_data/src/spec_other_module.erl
@@ -0,0 +1,7 @@
+-module(spec_other_module).
+
+%% OTP-15562 and ERL-845. Example provided by Kostis.
+
+-type deep_list(A) :: [A | deep_list(A)].
+
+-spec lists:flatten(deep_list(A)) -> [A].