-
Notifications
You must be signed in to change notification settings - Fork 232
Open
Description
after erlang/otp@196e7cd (which added specs to systools:make_relup/4) code in:
Lines 41 to 50 in b228c36
| Options = [{outdir, OutDir}, | |
| {path, [filename:join([OutputDir, "*", "lib", "*", "ebin"])]}, | |
| {silent, true} | case WarningsAsErrors of | |
| true -> [warnings_as_errors]; | |
| false -> [] | |
| end], | |
| CurrentRel = strip_dot_rel(find_rel_file(Name, ToVsn, OutputDir)), | |
| UpFromRel = strip_dot_rel(find_rel_file(Name, UpFromVsn, OutputDir)), | |
| ?log_debug("systools:make_relup(~p, ~p, ~p, ~p)", [CurrentRel, UpFromRel, UpFromRel, Options]), | |
| case systools:make_relup(CurrentRel, [UpFromRel], [UpFromRel], [no_warn_sasl | Options]) of |
causes dialyzer failures because {silent, true} and no_warn_sasl in the 4th argument of the call to systools:make_relup/4 violates the spec:
$ rebar3 dialyzer -i
===> Verifying dependencies...
===> Analyzing applications...
===> Compiling relx
===> Dialyzer starting, this may take a while...
===> Running incremental analysis...
===> Resolving project files...
===> Resolving project warning files...
src/relx.erl
Line 130 Column 2: Invalid type specification for function relx:build_relup/4. The success typing is (_,_,_,_) -> none() but the spec is (rlx_release:name(),rlx_release:vsn(),rlx_release:vsn(),rlx_config:t() | rlx_state:t()) -> {'ok',rlx_state:t()} | {'error',term()}
Line 132 Column 1: Function build_relup/4 has no local return
src/rlx_relup.erl
Line 9 Column 2: Invalid type specification for function rlx_relup:do/4. The success typing is (_,_,_,_) -> none() but the spec is (atom(),string(),string() | 'undefined',rlx_state:t()) -> {'ok',rlx_state:t()} | relx:error()
Line 10 Column 1: Function do/4 has no local return
Line 37 Column 1: Function make_upfrom_script/4 has no local return
===> Warnings written to _build/default/28.1.dialyzer_warnings
===> Warnings occurred running dialyzer: 5
Metadata
Metadata
Assignees
Labels
No labels