diff options
Diffstat (limited to 'lib/dialyzer/test/extra_return_SUITE_data')
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. |