$ 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
after erlang/otp@196e7cd (which added specs to
systools:make_relup/4) code in:relx/src/rlx_relup.erl
Lines 41 to 50 in b228c36
causes dialyzer failures because
{silent, true}andno_warn_saslin the 4th argument of the call tosystools:make_relup/4violates the spec: