File 3411-Use-a-helper-function-to-avoid-code-duplication.patch of Package erlang
From dc0a6a571f49ba069dfd02259c1826f3cc22170d Mon Sep 17 00:00:00 2001
From: Richard Carlsson <carlsson.richard@gmail.com>
Date: Sun, 1 Dec 2024 15:50:00 +0100
Subject: [PATCH 1/4] Use a helper function to avoid code duplication
---
lib/stdlib/src/erl_lint.erl | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/lib/stdlib/src/erl_lint.erl b/lib/stdlib/src/erl_lint.erl
index 95210a3898..02a6c511ce 100644
--- a/lib/stdlib/src/erl_lint.erl
+++ b/lib/stdlib/src/erl_lint.erl
@@ -2856,10 +2856,10 @@ expr({'try',Anno,Es,Scs,Ccs,As}, Vt, St0) ->
vtupdate(Evt0, Vt), Uvt, St1),
Evt1 = vtupdate(Uvt, Evt0),
Rvt0 = Sccs,
- Rvt1 = vtupdate(vtunsafe(TryAnno, Rvt0, Vt), Rvt0),
+ Rvt1 = vtupd_unsafe(TryAnno, Rvt0, Vt),
Evt2 = vtmerge(Evt1, Rvt1),
{Avt0,St} = exprs(As, vtupdate(Evt2, Vt), St2),
- Avt1 = vtupdate(vtunsafe(TryAnno, Avt0, Vt), Avt0),
+ Avt1 = vtupd_unsafe(TryAnno, Avt0, Vt),
Avt = vtmerge(Evt2, Avt1),
{Avt,St};
expr({'catch',Anno,E}, Vt, St0) ->
@@ -2869,7 +2869,7 @@ expr({'catch',Anno,E}, Vt, St0) ->
true -> add_warning(Anno, deprecated_catch, St);
false -> St
end,
- {vtupdate(vtunsafe({'catch',Anno}, Evt, Vt), Evt),St1};
+ {vtupd_unsafe({'catch', Anno}, Evt, Vt), St1};
expr({match,_Anno,P,E}, Vt, St0) ->
{Evt,St1} = expr(E, Vt, St0),
{Pvt,Pnew,St} = pattern(P, vtupdate(Evt, Vt), St1),
@@ -2898,7 +2898,7 @@ expr({op,Anno,Op,L,R}, Vt, St0) when Op =:= 'orelse'; Op =:= 'andalso' ->
{Evt1,St1} = expr(L, Vt, St0),
Vt1 = vtupdate(Evt1, Vt),
{Evt2,St2} = expr(R, Vt1, St1),
- Evt3 = vtupdate(vtunsafe({Op,Anno}, Evt2, Vt1), Evt2),
+ Evt3 = vtupd_unsafe({Op, Anno}, Evt2, Vt1),
{vtmerge(Evt1, Evt3),St2};
expr({op,_Anno,EqOp,L,R}, Vt, St0) when EqOp =:= '=:='; EqOp =:= '=/=' ->
St = expr_check_match_zero(R, expr_check_match_zero(L, St0)),
@@ -4496,6 +4496,9 @@ vtunsafe({Tag,Anno}, Uvt, Vt) ->
Location = erl_anno:location(Anno),
[{V,{{unsafe,{Tag,Location}},U,As}} || {V,{_,U,As}} <- vtnew(Uvt, Vt)].
+vtupd_unsafe(Where, NewVt, OldVt) ->
+ vtupdate(vtunsafe(Where, NewVt, OldVt), NewVt).
+
%% vtmerge(VarTable, VarTable) -> VarTable.
%% Merge two variables tables generating a new vartable. Give priority to
%% errors then warnings.
--
2.51.0