aboutsummaryrefslogtreecommitdiffstats
path: root/lib/dialyzer/test/indent_SUITE_data/src/abs.erl
diff options
context:
space:
mode:
authorHans Bolinder <[email protected]>2019-05-07 08:25:56 +0200
committerHans Bolinder <[email protected]>2019-05-07 08:25:56 +0200
commit1a2259e01e8f8e000a1d8f93a9446c996c148325 (patch)
tree57c71e5fb661d26074b5faf0902fc9625323586e /lib/dialyzer/test/indent_SUITE_data/src/abs.erl
parentfb9cd9534b94fe8c24bc5412205dd97577894b59 (diff)
parentc2cd09c3d6807d2e93d117d9c6b47a706a50c763 (diff)
downloadotp-1a2259e01e8f8e000a1d8f93a9446c996c148325.tar.gz
otp-1a2259e01e8f8e000a1d8f93a9446c996c148325.tar.bz2
otp-1a2259e01e8f8e000a1d8f93a9446c996c148325.zip
Merge branch 'hasse/dialyzer/prettier_warnings/OTP-15135'
* hasse/dialyzer/prettier_warnings/OTP-15135: dialyzer: Remove quotes around operators dialyzer: Add test cases with indentation dialyzer: Add an --no_indentation option dialyzer: Add parentheses around annotated union elements dialyzer: Fix dialyzer_dataflow:format_args_1()
Diffstat (limited to 'lib/dialyzer/test/indent_SUITE_data/src/abs.erl')
-rw-r--r--lib/dialyzer/test/indent_SUITE_data/src/abs.erl78
1 files changed, 78 insertions, 0 deletions
diff --git a/lib/dialyzer/test/indent_SUITE_data/src/abs.erl b/lib/dialyzer/test/indent_SUITE_data/src/abs.erl
new file mode 100644
index 0000000000..0e38c3dbb7
--- /dev/null
+++ b/lib/dialyzer/test/indent_SUITE_data/src/abs.erl
@@ -0,0 +1,78 @@
+-module(abs).
+
+%% OTP-12948. erlang:abs/1 bug fix.
+
+-export([t/0]).
+
+t() ->
+ Fs = [fun i1/0, fun i2/0, fun i3/0, fun i4/0, fun f1/0, fun erl_551/0],
+ _ = [catch F() || F <- Fs],
+ ok.
+
+i1() ->
+ A = int(),
+ I1 = i1(A),
+ true = I1 < 2,
+ true = I1 < 1. % can never match
+
+-spec i1(neg_integer()) -> non_neg_integer().
+
+i1(A) when is_integer(A), A < 0 ->
+ abs(A).
+
+i2() ->
+ A = int(),
+ I2 = i2(A),
+ true = I2 < 1,
+ true = I2 < 0. % can never match
+
+-spec i2(non_neg_integer()) -> non_neg_integer().
+
+i2(A) when is_integer(A), A >= 0 ->
+ abs(A).
+
+i3() ->
+ A = int(),
+ I3 = i3(A),
+ true = I3 < -1,
+ true = I3 < 0. % can never match
+
+-spec i3(integer()) -> non_neg_integer().
+
+i3(A) when is_integer(A) ->
+ abs(A).
+
+i4() ->
+ A = int(),
+ I4 = i4(A),
+ true = I4 =:= 0 orelse I4 =:= 1,
+ true = I4 < 0 orelse I4 > 1. % can never match
+
+-spec i4(integer()) -> number().
+
+i4(A) when A =:= -1; A =:= 0; A =:= 1 ->
+ abs(A).
+
+f1() ->
+ F1 = f1(float()),
+ math:sqrt(F1).
+
+f1(A) ->
+ abs(A).
+
+erl_551() ->
+ accept(9),
+ accept(-3).
+
+accept(Number) when abs(Number) >= 8 -> first;
+accept(_Number) -> second.
+
+-spec int() -> integer().
+
+int() ->
+ foo:bar().
+
+-spec float() -> float().
+
+float() ->
+ math:sqrt(1.0).