You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Good news: the compiler works and all CT tests pass
Bad news: we got some Dialyzer fixing to do.
Here's the error log from running on OTP-28-rc1:
λ [vps] rebar3 → main → ./rebar3 ct ===> Verifying dependencies... ===> Analyzing applications... ===> Compiling meck ===> Analyzing applications... ===> Compiling cth_readable ===> Compiling bbmustache ===> Compiling cf
===> Compiling erlware_commons
===> Compiling getopt
===> Compiling providers
===> Compiling eunit_formatters
===> Compiling ssl_verify_fun
===> Compiling relx
===> Compiling certifi
===> Compiling rebar
===> Running Common Test suites...
%%% rebar_alias_SUITE: .........
%%% rebar_as_SUITE: ...........
%%% rebar_compile_SUITE: ...................................................................................
%%% rebar_compile_SUITE ==> always_recompile_when_erl_compiler_options_set: SKIPPED %%% rebar_compile_SUITE ==> {tc_user_skip,"compile:env_compiler_options/0 available"}
.....
%%% rebar_compiler_dag_SUITE: ...........
%%% rebar_compiler_epp_SUITE: ......
%%% rebar_compiler_format_SUITE: .. %%% rebar_completion_SUITE: ...
%%% rebar_cover_SUITE: .............
%%% rebar_ct_SUITE: .........................................................
%%% rebar_deps_SUITE: ..............................
%%% rebar_dialyzer_SUITE: ..............
%%% rebar_dir_SUITE: .......................
%%% rebar_disable_app_SUITE: .
%%% rebar_discover_SUITE: ....
%%% rebar_dist_utils_SUITE: ....
%%% rebar_edoc_SUITE: ...
%%% rebar_escriptize_SUITE: .....
%%% rebar_eunit_SUITE: .........................................
%%% rebar_file_utils_SUITE: ......................
%%% rebar_hooks_SUITE: .............
%%% rebar_install_deps_SUITE: .......................................
%%% rebar_lock_SUITE: ....
%%% rebar_manifest_SUITE: .....
%%% rebar_namespace_SUITE: ...............
%%% rebar_new_SUITE: .......
%%% rebar_opts_parser_SUITE: ..
%%% rebar_parallel_SUITE: ....
%%% rebar_paths_SUITE: ....
%%% rebar_pkg_SUITE: ...........
%%% rebar_pkg_alias_SUITE: ....
%%% rebar_pkg_repos_SUITE: ..............
%%% rebar_plugins_SUITE: .............
%%% rebar_profiles_SUITE: .........................
%%% rebar_release_SUITE: ............
%%% rebar_resource_SUITE: ...
%%% rebar_src_dirs_SUITE: ............
%%% rebar_templater_SUITE: ..
%%% rebar_unlock_SUITE: ....
%%% rebar_upgrade_SUITE: ..............................................................
%%% rebar_uri_SUITE: ..
%%% rebar_utils_SUITE: .............................
%%% rebar_xref_SUITE: ....
Skipped 1 (1, 0) tests. Passed 637 tests.
λ [vps] rebar3 → main → rm -rf _build
λ [vps] rebar3 → main → rebar3 as dialyze dialyzer
===> No entry for profile dialyze in config.
===> Verifying dependencies...
===> Analyzing applications...
===> Compiling bbmustache
===> Compiling cf
===> Compiling erlware_commons
===> Compiling cth_readable
===> Compiling getopt
===> Compiling providers
===> Compiling eunit_formatters
===> Compiling ssl_verify_fun
===> Compiling relx
===> Compiling certifi
===> Compiling rebar
===> Dialyzer starting, this may take a while...
===> Add debug_info to compiler options (erl_opts) if Dialyzer fails to load Core Erlang.
===> Updating plt...
===> Resolving project files...
===> Updating base plt...
===> Resolving base files...
===> Building with 221 files in /home/ferd/.cache/rebar3/rebar3_28.0-rc1_plt...
===> Copying /home/ferd/.cache/rebar3/rebar3_28.0-rc1_plt to /home/ferd/code/self/rebar3/_build/dialyze/rebar3_28.0-rc1_plt...
===> Checking 221 files in _build/dialyze/rebar3_28.0-rc1_plt...
===> Adding 455 files to _build/dialyze/rebar3_28.0-rc1_plt...
===> Doing success typing analysis...
===> Resolving project warning files...
===> Analyzing 173 files with _build/dialyze/rebar3_28.0-rc1_plt...
apps/rebar/src/rebar_compiler_xrl.erl
Line 38 Column 10: Unknown function leex:file/2
apps/rebar/src/rebar_compiler_yrl.erl
Line 45 Column 10: Unknown function yecc:file/2
/home/ferd/code/self/rebar3/apps/rebar/src/rebar_prv_common_test.erl:458:9: Body yields the type
{'error', {'rebar_prv_common_test', {_, _}}} which violates the opacity of the other clauses.
/home/ferd/code/self/rebar3/apps/rebar/src/rebar_prv_common_test.erl:459:9: Body yields the type
{'error', {'rebar_prv_common_test', {_, _}}} | dict:dict(_, _) which violates the opacity of the other clauses.
/home/ferd/code/self/rebar3/apps/rebar/src/rebar_prv_common_test.erl:467:9: Body yields the type
{'error', {'rebar_prv_common_test', {_, _}}} which violates the opacity of the other clauses.
/home/ferd/code/self/rebar3/apps/rebar/src/rebar_prv_common_test.erl:468:9: Body yields the type
{'error', {'rebar_prv_common_test', {_, _}}} | dict:dict(_, _) which violates the opacity of the other clauses.
/home/ferd/code/self/rebar3/apps/rebar/src/rebar_prv_common_test.erl:478:9: Body yields the type
{'error', {'rebar_prv_common_test', {_, _}}} which violates the opacity of the other clauses.
/home/ferd/code/self/rebar3/apps/rebar/src/rebar_prv_common_test.erl:479:9: Body yields the opaque type
dict:dict(_, _) whose opacity is broken by the other clauses.
/home/ferd/code/self/rebar3/apps/rebar/src/rebar_prv_eunit.erl:286:9: Body yields the type
{'error', {'rebar_prv_eunit', {_, _}}} which violates the opacity of the other clauses.
/home/ferd/code/self/rebar3/apps/rebar/src/rebar_prv_eunit.erl:287:9: Body yields the type
{'error', {'rebar_prv_eunit', {_, _}}} | dict:dict(_, _) which violates the opacity of the other clauses.
/home/ferd/code/self/rebar3/apps/rebar/src/rebar_prv_eunit.erl:295:9: Body yields the type
{'error', {'rebar_prv_eunit', {_, _}}} which violates the opacity of the other clauses.
/home/ferd/code/self/rebar3/apps/rebar/src/rebar_prv_eunit.erl:296:9: Body yields the opaque type
dict:dict(_, _) whose opacity is broken by the other clauses.
vendor/cth_readable/src/cth_readable_compact_shell.erl
Line 114 Column 50: The pattern "OK" can never match the type [65 | 68 | 69 | 70 | 73 | 76,...]
Line 117 Column 50: The pattern "OK" can never match the type [65 | 68 | 69 | 70 | 73 | 76,...]
vendor/cth_readable/src/cth_readable_failonly.erl
Line 90 Column 24: The created fun has no local return
Line 112 Column 53: The call logger:add_handler('cth_readable_failonly', 'cth_readable_failonly', #{'max_events':=_, 'sasl':='true', _=>_}) breaks the contract (HandlerId, Module, Config) -> 'ok' | {'error',term()} when HandlerId :: logger_handler:id(), Module :: module(), Config :: logger_handler:config()
Line 116 Column 53: The call logger:add_handler('cth_readable_failonly', 'cth_readable_failonly', #{'max_events':=_, 'sasl':='false', _=>_}) breaks the contract (HandlerId, Module, Config) -> 'ok' | {'error',term()} when HandlerId :: logger_handler:id(), Module :: module(), Config :: logger_handler:config()
Line 344 Column 17: The pattern {'ok', {_, Cfg}} can never match the type {'error',{'not_found',_}} | {'ok',#{'config'=>_, 'filter_default'=>'log' | 'stop', 'filters'=>[{atom(),{fun((#{'level':='alert' | 'critical' | 'debug' | 'emergency' | 'error' | 'info' | 'notice' | 'warning', 'meta':=#{'domain'=>[atom()], 'file'=>string(), 'gl'=>pid(), 'line'=>non_neg_integer(), 'mfa'=>{atom(),atom(),non_neg_integer()}, 'pid'=>pid(),'report_cb'=>fun((...) -> binary() | maybe_improper_list(binary() | maybe_improper_list(any(),binary() | []) | char(),binary() | []) | {atom() | binary() | string(),[any()]}), 'time'=>integer(), atom()=>_}, 'msg':={atom() | binary() | string(),binary() | maybe_improper_list(any(),binary() | []) | map()}},_) -> 'ignore' | 'stop' | #{'level':='alert' | 'critical' | 'debug' | 'emergency' | 'error' | 'info' | 'notice' | 'warning', 'meta':=#{'domain'=>[atom()], 'file'=>string(), 'gl'=>pid(), 'line'=>non_neg_integer(), 'mfa'=>{atom(),atom(),non_neg_integer()}, 'pid'=>pid(), 'report_cb'=>fun((...) -> binary() | maybe_improper_list(binary() | maybe_improper_list(any(),binary() | []) | char(),binary() | []) | {atom() | binary() | string(),[any()]}), 'time'=>integer(), atom()=>_}, 'msg':={atom() | binary() | string(),binary() | maybe_improper_list(any(),binary() | []) | map()}}),_}}], 'formatter'=>{atom(),#{atom()=>_}}, 'id'=>atom(), 'level'=>'alert' | 'all' | 'critical' | 'debug' | 'emergency' | 'error' | 'info' | 'none' | 'notice' | 'warning', 'module'=>atom()}}
Line 446 Column 5: Unknown function lager_app:start_handler/3
vendor/cth_readable/src/cth_readable_lager_backend.erl
Line 56 Column 9: Unknown function lager_util:config_to_mask/1
Line 89 Column 8: Unknown function lager_util:config_to_mask/1
Line 102 Column 10: Unknown function lager_util:is_loggable/3
vendor/erlware_commons/src/ec_cmd_log.erl
Line 248 Column 1: The pattern <State, Color, 'true', Msg> can never match the type <_,99 | 103 | 109 | 114,'false',_>
Line 253 Column 1: The pattern <State, Color, 'true', Msg> can never match the type <_,99 | 103 | 109 | 114,'false',_>
vendor/relx/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
vendor/relx/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/dialyze/28.0-rc1.dialyzer_warnings
===> Warnings occurred running dialyzer: 29
So far our list of items to fix:
Dialyzer in rebar3 xrl
Dialyzer in rebar3 yrl
Dialyzer in rebar3 CT
Dialyzer in rebar3 Eunit
Dialyzer in cth_readable
cth_readable needs a new release and to be updated
Dialyzer in erlware_commons
erlware_commons needs a new release and to be updated
Dialyzer in relx
relx needs a new release and to be updated
The text was updated successfully, but these errors were encountered:
I also checked the changelog stating new compiler errors are emitted with suggestions on how to fix things, and they compose nicely with our recent richer output:
===> Compiling apps/rebar/src/rebar_compiler_xrl.erl failed
┌─ apps/rebar/src/rebar_compiler_xrl.erl:
│
42 │ rebar_compiler:ok_tuple(Source, Ws, Config, Opts);
│ ╰── variable 'Ws' is unbound, did you mean 'W'?
┌─ apps/rebar/src/rebar_compiler_xrl.erl:
│
41 │ {ok, _Mod, W} ->
│ ╰── variable 'W' is unused
Good news: the compiler works and all CT tests pass
Bad news: we got some Dialyzer fixing to do.
Here's the error log from running on OTP-28-rc1:
So far our list of items to fix:
The text was updated successfully, but these errors were encountered: