File 2071-Optimize-erl_lint-is_guard_test-2-3.patch of Package erlang

From ad64b73a945ff3e663233620b9873189f0cd6aa9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jos=C3=A9=20Valim?= <jose.valim@dashbit.co>
Date: Tue, 7 Dec 2021 13:41:35 +0100
Subject: [PATCH] Optimize erl_lint:is_guard_test/2-3

Only compute erl_lint:start() if there are records.
---
 lib/stdlib/src/erl_lint.erl | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/lib/stdlib/src/erl_lint.erl b/lib/stdlib/src/erl_lint.erl
index ad946d8777..f91938ee18 100644
--- a/lib/stdlib/src/erl_lint.erl
+++ b/lib/stdlib/src/erl_lint.erl
@@ -2261,12 +2261,16 @@ is_guard_test(Expression, Forms) ->
 
 is_guard_test(Expression, Forms, IsOverridden) ->
     RecordAttributes = [A || A = {attribute, _, record, _D} <- Forms],
+    is_guard_test1(set_file(Expression, "nofile"), RecordAttributes, IsOverridden).
+
+is_guard_test1(NoFileExpression, [], IsOverridden) ->
+    is_guard_test2(NoFileExpression, {maps:new(),IsOverridden});
+is_guard_test1(NoFileExpression, RecordAttributes, IsOverridden) ->
     St0 = foldl(fun(Attr0, St1) ->
                         Attr = set_file(Attr0, "none"),
                         attribute_state(Attr, St1)
                 end, start(), RecordAttributes),
-    is_guard_test2(set_file(Expression, "nofile"),
-		   {St0#lint.records,IsOverridden}).
+    is_guard_test2(NoFileExpression, {St0#lint.records,IsOverridden}).
 
 %% is_guard_test2(Expression, RecordDefs :: dict:dict()) -> boolean().
 is_guard_test2({call,Anno,{atom,Ar,record},[E,A]}, Info) ->
-- 
2.31.1

openSUSE Build Service is sponsored by