File 0160-dialyzer-Optimize-handling-of-a-lot-of-warnings.patch of Package erlang

From bd873955db32c470f082c3629627a10c84c9c208 Mon Sep 17 00:00:00 2001
From: Hans Bolinder <hasse@erlang.org>
Date: Wed, 17 Jan 2018 14:09:36 +0100
Subject: [PATCH 1/3] dialyzer: Optimize handling of a lot of warnings

If the number of warnings is huge the '--'/2 operator is slow.
---
 lib/dialyzer/src/dialyzer_dataflow.erl | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/lib/dialyzer/src/dialyzer_dataflow.erl b/lib/dialyzer/src/dialyzer_dataflow.erl
index 8367432ac5..f6433a807d 100644
--- a/lib/dialyzer/src/dialyzer_dataflow.erl
+++ b/lib/dialyzer/src/dialyzer_dataflow.erl
@@ -3116,7 +3116,10 @@ state__add_warning(#state{warnings = Warnings, warning_mode = true} = State,
 state__remove_added_warnings(OldState, NewState) ->
   #state{warnings = OldWarnings} = OldState,
   #state{warnings = NewWarnings} = NewState,
-  {NewWarnings -- OldWarnings, NewState#state{warnings = OldWarnings}}.
+  case NewWarnings =:= OldWarnings of
+    true -> {[], NewState};
+    false -> {NewWarnings -- OldWarnings, NewState#state{warnings = OldWarnings}}
+  end.
 
 state__add_warnings(Warns, #state{warnings = Warnings} = State) ->
   State#state{warnings = Warns ++ Warnings}.
-- 
2.16.0

openSUSE Build Service is sponsored by