File 3410-Simplify-code-using-new-helper-maybe_add_warning-3.patch of Package erlang
From 5c2cfc24dd508b89f7e08fbd7d2f48e9a4bb46f6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Bj=C3=B6rn=20Gustavsson?= <bjorn@erlang.org>
Date: Thu, 21 Nov 2024 12:41:59 +0100
Subject: [PATCH] Simplify code using new helper maybe_add_warning/3
---
lib/stdlib/src/erl_lint.erl | 57 +++++++++++++++++--------------------
1 file changed, 26 insertions(+), 31 deletions(-)
diff --git a/lib/stdlib/src/erl_lint.erl b/lib/stdlib/src/erl_lint.erl
index 82657d45f6..4cb8f21a24 100644
--- a/lib/stdlib/src/erl_lint.erl
+++ b/lib/stdlib/src/erl_lint.erl
@@ -912,6 +912,18 @@ add_warning(Anno, W, St) ->
add_lint_warning(W, File, St) ->
St#lint{warnings=[{File,W}|St#lint.warnings]}.
+maybe_add_warning(Anno, W, St) ->
+ Tag = if
+ is_tuple(W) -> element(1, W);
+ is_atom(W) -> W
+ end,
+ case is_warn_enabled(Tag, St) of
+ true ->
+ add_warning(Anno, W, St);
+ false ->
+ St
+ end.
+
loc(Anno, St) ->
Location = erl_anno:location(Anno),
case erl_anno:file(Anno) of
@@ -1274,13 +1286,7 @@ all_behaviour_callbacks([{Anno,B}|Bs], Acc, St0) ->
all_behaviour_callbacks([], Acc, St) -> {reverse(Acc),St}.
add_behaviour_warning(Anno, Warning, St) when is_tuple(Warning) ->
- Tag = element(1, Warning),
- case is_warn_enabled(Tag, St) of
- true ->
- add_warning(Anno, Warning, St);
- false ->
- St
- end.
+ maybe_add_warning(Anno, Warning, St).
behaviour_callbacks(Anno, B, St0) ->
try B:behaviour_info(callbacks) of
@@ -1338,12 +1344,7 @@ behaviour_deprecated(Anno, B, [{F, A} | T], Exports, St0) ->
true ->
case otp_internal:obsolete_callback(B, F, A) of
{deprecated, String} when is_list(String) ->
- case is_warn_enabled(deprecated_callback, St0) of
- true ->
- add_warning(Anno, {deprecated_callback, {B, F, A}, String}, St0);
- false ->
- St0
- end;
+ maybe_add_warning(Anno, {deprecated_callback, {B, F, A}, String}, St0);
{removed, String} ->
add_warning(Anno, {removed_callback, {B, F, A}, String}, St0);
no ->
@@ -2022,9 +2023,11 @@ pattern({var,Anno,V}, _Vt, Old, St) ->
pattern({char,_Anno,_C}, _Vt, _Old, St) -> {[],[],St};
pattern({integer,_Anno,_I}, _Vt, _Old, St) -> {[],[],St};
pattern({float,Anno,F}, _Vt, _Old, St0) ->
- St = case F == 0 andalso is_warn_enabled(match_float_zero, St0) of
- true -> add_warning(Anno, match_float_zero, St0);
- false -> St0
+ St = if
+ F == 0 ->
+ maybe_add_warning(Anno, match_float_zero, St0);
+ true ->
+ St0
end,
{[], [], St};
pattern({atom,Anno,A}, _Vt, _Old, St) ->
@@ -2924,9 +2927,11 @@ check_call(Anno, F, As, _Aa, St0) ->
%% that we do not warn when it's being used as arguments for expressions in
%% in general: `A =:= abs(0.0)` is fine.
expr_check_match_zero({float,Anno,F}, St) ->
- case F == 0 andalso is_warn_enabled(match_float_zero, St) of
- true -> add_warning(Anno, match_float_zero, St);
- false -> St
+ if
+ F == 0 ->
+ maybe_add_warning(Anno, match_float_zero, St);
+ true ->
+ St
end;
expr_check_match_zero({cons,_Anno,H,T}, St) ->
expr_check_match_zero(H, expr_check_match_zero(T, St));
@@ -4664,12 +4669,7 @@ deprecated_type(Anno, M, N, As, St) ->
NAs = length(As),
case otp_internal:obsolete_type(M, N, NAs) of
{deprecated, String} when is_list(String) ->
- case is_warn_enabled(deprecated_type, St) of
- true ->
- add_warning(Anno, {deprecated_type, {M,N,NAs}, String}, St);
- false ->
- St
- end;
+ maybe_add_warning(Anno, {deprecated_type, {M,N,NAs}, String}, St);
{removed, String} ->
add_warning(Anno, {removed_type, {M,N,NAs}, String}, St);
no ->
@@ -4682,12 +4682,7 @@ obsolete_guard({call,Anno,{atom,Ar,F},As}, St0) ->
false ->
deprecated_function(Anno, erlang, F, As, St0);
true ->
- St = case is_warn_enabled(obsolete_guard, St0) of
- true ->
- add_warning(Ar, {obsolete_guard, {F, Arity}}, St0);
- false ->
- St0
- end,
+ St = maybe_add_warning(Ar, {obsolete_guard, {F, Arity}}, St0),
test_overriden_by_local(Ar, F, Arity, St)
end;
obsolete_guard(_G, St) ->
--
2.51.0