summaryrefslogtreecommitdiff
path: root/lib/dialyzer/test/extra_return_SUITE_data
diff options
context:
space:
mode:
Diffstat (limited to 'lib/dialyzer/test/extra_return_SUITE_data')
-rw-r--r--lib/dialyzer/test/extra_return_SUITE_data/dialyzer_options1
-rw-r--r--lib/dialyzer/test/extra_return_SUITE_data/results/extra_return2
-rw-r--r--lib/dialyzer/test/extra_return_SUITE_data/src/extra_return.erl21
3 files changed, 24 insertions, 0 deletions
diff --git a/lib/dialyzer/test/extra_return_SUITE_data/dialyzer_options b/lib/dialyzer/test/extra_return_SUITE_data/dialyzer_options
new file mode 100644
index 0000000000..c83f8d286d
--- /dev/null
+++ b/lib/dialyzer/test/extra_return_SUITE_data/dialyzer_options
@@ -0,0 +1 @@
+{dialyzer_options, [{indent_opt, false}, {warnings, [extra_return]}]}.
diff --git a/lib/dialyzer/test/extra_return_SUITE_data/results/extra_return b/lib/dialyzer/test/extra_return_SUITE_data/results/extra_return
new file mode 100644
index 0000000000..63895a231d
--- /dev/null
+++ b/lib/dialyzer/test/extra_return_SUITE_data/results/extra_return
@@ -0,0 +1,2 @@
+
+extra_return.erl:7:2: The specification for extra_return:t1/0 states that the function might also return 'other' but the inferred return is boolean()
diff --git a/lib/dialyzer/test/extra_return_SUITE_data/src/extra_return.erl b/lib/dialyzer/test/extra_return_SUITE_data/src/extra_return.erl
new file mode 100644
index 0000000000..4cebbab02e
--- /dev/null
+++ b/lib/dialyzer/test/extra_return_SUITE_data/src/extra_return.erl
@@ -0,0 +1,21 @@
+-module(extra_return).
+
+-export([t1/0, t2/0]).
+
+
+% Should warn about having `undefined` as return value when it is not returned by the function
+-spec t1() -> true | false | 'other'.
+t1() ->
+ case rand:uniform(2) of
+ 1 -> true;
+ 2 -> false
+ end.
+
+% Should not warn about extra return
+-dialyzer({no_extra_return, t2/0}).
+-spec t2() -> true | false | 'other'.
+t2() ->
+ case rand:uniform(2) of
+ 1 -> true;
+ 2 -> false
+ end.