File 1303-Suppress-dialyzer-warnings-in-code.patch of Package erlang

From 5e349a0f3a7533bf0ed80c8633244c7c3e630f9a Mon Sep 17 00:00:00 2001
From: Anders Svensson <anders@erlang.org>
Date: Thu, 2 Jul 2020 15:57:33 +0200
Subject: [PATCH 3/4] Suppress dialyzer warnings in code

Instead of assuming that dialyzer is run with non-default options and
omitted dictionary modules. The dialyzer attribute is documented in
dialyzer(3).

Also suppress a compiler warning on unused functions in generated
dictionary modules. Compiler options as attributes are documented in
compile(3).
---
 lib/diameter/src/Makefile                      | 5 +----
 lib/diameter/src/base/diameter_traffic.erl     | 2 ++
 lib/diameter/src/compiler/diameter_codegen.erl | 5 +++--
 lib/diameter/src/transport/diameter_tcp.erl    | 2 ++
 4 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/lib/diameter/src/Makefile b/lib/diameter/src/Makefile
index 36e8fefd4c..348cc350e1 100644
--- a/lib/diameter/src/Makefile
+++ b/lib/diameter/src/Makefile
@@ -231,16 +231,13 @@ $(PLT):
 dialyze: opt $(PLT)
 	dialyzer --plt $(PLT) \
 	         --verbose \
-	         -Wno_improper_lists \
 	         $(EBIN)/diameter_gen_base_rfc3588.$(EMULATOR) \
 	         $(patsubst %, $(EBIN)/%.$(EMULATOR), \
 	                $(notdir $(DICT_YRL) \
 	                         $(RT_MODULES) \
 	                         $(CT_MODULES) \
+	                         $(DICT_MODULES) \
 	                         $(INFO_MODULES)))
-# Omit all but the common dictionary module since these
-# (diameter_gen_relay in particular) generate warnings depending on how
-# much of the included diameter_gen.hrl they use.
 
 # ----------------------------------------------------
 # Release targets
diff --git a/lib/diameter/src/base/diameter_traffic.erl b/lib/diameter/src/base/diameter_traffic.erl
index 4667bbc3f2..110fdcafb0 100644
--- a/lib/diameter/src/base/diameter_traffic.erl
+++ b/lib/diameter/src/base/diameter_traffic.erl
@@ -26,6 +26,8 @@
 
 -module(diameter_traffic).
 
+-dialyzer(no_improper_lists).
+
 %% towards diameter
 -export([send_request/4]).
 
diff --git a/lib/diameter/src/compiler/diameter_codegen.erl b/lib/diameter/src/compiler/diameter_codegen.erl
index 4e6fe32d69..4a3f65359a 100644
--- a/lib/diameter/src/compiler/diameter_codegen.erl
+++ b/lib/diameter/src/compiler/diameter_codegen.erl
@@ -1,7 +1,7 @@
 %%
 %% %CopyrightBegin%
 %%
-%% Copyright Ericsson AB 2010-2017. All Rights Reserved.
+%% Copyright Ericsson AB 2010-2020. All Rights Reserved.
 %%
 %% Licensed under the Apache License, Version 2.0 (the "License");
 %% you may not use this file except in compliance with the License.
@@ -143,7 +143,8 @@ gen(erl, ParseD, Mod) ->
 erl_forms(Mod, ParseD) ->
     Forms = [[{?attribute, module, Mod},
               {?attribute, compile, {parse_transform, diameter_exprecs}},
-              {?attribute, compile, nowarn_unused_function}],
+              {?attribute, compile, nowarn_unused_function},
+              {?attribute, dialyzer, no_return}],
              make_hrl_forms(ParseD),
              [{?attribute, export, [{name, 0},
                                     {id, 0},
diff --git a/lib/diameter/src/transport/diameter_tcp.erl b/lib/diameter/src/transport/diameter_tcp.erl
index 95bee749f6..2c5dc2fa2e 100644
--- a/lib/diameter/src/transport/diameter_tcp.erl
+++ b/lib/diameter/src/transport/diameter_tcp.erl
@@ -20,6 +20,8 @@
 
 -module(diameter_tcp).
 
+-dialyzer(no_improper_lists).
+
 -behaviour(gen_server).
 
 %% interface
-- 
2.26.2

openSUSE Build Service is sponsored by