Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:Ledest:erlang:23
erlang
0267-docgen-stdlib-Fix-dialyzer-warning-issues-...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 0267-docgen-stdlib-Fix-dialyzer-warning-issues-with-otp_i.patch of Package erlang
From c3f715475904257d8e47cd330e3064fa3c212286 Mon Sep 17 00:00:00 2001 From: Lukas Larsson <lukas@erlang.org> Date: Thu, 21 Jan 2021 08:38:19 +0100 Subject: [PATCH 7/7] docgen,stdlib: Fix dialyzer warning issues with otp_internal What otp_internal returns changes depending on which functions/types are deprecated/removed. So in order to cover all cases we need to take care of more than what is returned. Dialyzer does not seem to like this so we silence it with an apply/3. --- lib/erl_docgen/src/docgen_xml_to_chunk.erl | 25 +++++++++++----------- lib/stdlib/src/erl_lint.erl | 3 +++ 2 files changed, 15 insertions(+), 13 deletions(-) diff --git a/lib/erl_docgen/src/docgen_xml_to_chunk.erl b/lib/erl_docgen/src/docgen_xml_to_chunk.erl index a4bfbe419d..f597e0ad93 100644 --- a/lib/erl_docgen/src/docgen_xml_to_chunk.erl +++ b/lib/erl_docgen/src/docgen_xml_to_chunk.erl @@ -692,16 +692,16 @@ to_chunk(Dom, Source, Module, AST) -> end, MetaDepr - = case otp_internal:obsolete_type(Module, TypeName, TypeArity) of + = case apply(otp_internal,obsolete_type,[Module, TypeName, TypeArity]) of + %% apply/3 in order to silence dialyzer {deprecated, Text} -> MetaSig#{ deprecated => unicode:characters_to_binary( erl_lint:format_error({deprecated_type,{Module,TypeName,TypeArity}, Text})) }; - %% Commented out to make dialyzer happy - %% {deprecated, Replacement, Rel} -> - %% MetaSig#{ deprecated => - %% unicode:characters_to_binary( - %% erl_lint:format_error({deprecated_type,{Module,TypeName,TypeArity}, Replacement, Rel})) }; + {deprecated, Replacement, Rel} -> + MetaSig#{ deprecated => + unicode:characters_to_binary( + erl_lint:format_error({deprecated_type,{Module,TypeName,TypeArity}, Replacement, Rel})) }; no -> MetaSig end, @@ -720,7 +720,8 @@ to_chunk(Dom, Source, Module, AST) -> FMeta = proplists:get_value(meta,Attr), MetaWSpec = add_spec(AST,FMeta), MetaDepr - = case otp_internal:obsolete(Module, Name, Arity) of + = case apply(otp_internal,obsolete,[Module, Name, Arity]) of + %% apply/3 in order to silence dialyzer {deprecated, Text} -> MetaWSpec#{ deprecated => unicode:characters_to_binary( diff --git a/lib/stdlib/src/erl_lint.erl b/lib/stdlib/src/erl_lint.erl index f7a1b04b55..bd2cd2e697 100644 --- a/lib/stdlib/src/erl_lint.erl +++ b/lib/stdlib/src/erl_lint.erl @@ -252,6 +252,9 @@ format_error({deprecated, MFA, String, Rel}) -> [format_mfa(MFA), Rel, String]); format_error({deprecated, MFA, String}) when is_list(String) -> io_lib:format("~s is deprecated; ~s", [format_mfa(MFA), String]); +format_error({deprecated_type, {M1, F1, A1}, String, Rel}) -> + io_lib:format("the type ~p:~p~s is deprecated and will be removed in ~s; ~s", + [M1, F1, gen_type_paren(A1), Rel, String]); format_error({deprecated_type, {M1, F1, A1}, String}) when is_list(String) -> io_lib:format("the type ~p:~p~s is deprecated; ~s", [M1, F1, gen_type_paren(A1), String]); -- 2.26.2
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor