Интересно, разработчики rebar3 ручками открывают ошибки компиляции, такой прогресс как compile-mode до них не дошёл? Иначе как объяснить, что они спекциально берут и форматируют ошибки красивенько, но так что СУКА никаких регулярок не напасёшься. К примеру:
src/brod_utils.erl
324: The call kpro:connect(Endpoint::{integer(),pos_integer()}, ConnCfg::[{atom(),_}] | #{&
#39;client_id&
#39;=>_, &
#39;connect_timeout&
#39;=>_, &
#39;debug&
#39;=>_, &
#39;extra_sock_opts&
#39;=>_, &
#39;nolink&
#39;=>_, &
#39;query_api_versions&
#39;=>_, &
#39;request_timeout&
#39;=>_, &
#39;sasl&
#39;=>_, &
#39;ssl&
#39;=>_}) will never return since the success typing is ({atom() | binary() | string(),non_neg_integer()}, [{&
#39;client_id&
#39; | &
#39;connect_timeout&
#39; | &
#39;debug&
#39; | &
#39;extra_sock_opts&
#39; | &
#39;nolink&
#39; | &
#39;query_api_versions&
#39; | &
#39;request_timeout&
#39; | &
#39;sasl&
#39; | &
#39;ssl&
#39;,_}] | #{&
#39;client_id&
#39;=>_, &
#39;connect_timeout&
#39;=>_, &
#39;debug&
#39;=>_, &
#39;extra_sock_opts&
#39;=>_, &
#39;nolink&
#39;=>_, &
#39;query_api_versions&
#39;=>_, &
#39;request_timeout&
#39;=>_, &
#39;sasl&
#39;=>_, &
#39;ssl&
#39;=>_}) -> {&
#39;error&
#39;,_} | {&
#39;ok&
#39;,pid()} and the contract is (endpoint(), conn_config()) -> {&
#39;ok&
#39;,connection()} | {&
#39;error&
#39;,any()}
406: Invalid type specification for function brod_utils:list_groups/2. The success typing is ({atom() | binary() | [any()],non_neg_integer()},[{_,_}] | #{&
#39;client_id&
#39;=>_, &
#39;connect_timeout&
#39;=>_, &
#39;debug&
#39;=>_, &
#39;extra_sock_opts&
#39;=>_, &
#39;nolink&
#39;=>_, &
#39;query_api_versions&
#39;=>_, &
#39;request_timeout&
#39;=>_, &
#39;sasl&
#39;=>_, &
#39;ssl&
#39;=>_}) -> any()
430: Invalid type specification for function brod_utils:describe_groups/3. The success typing is ({atom() | binary() | [any()],non_neg_integer()},[{_,_}] | #{&
#39;client_id&
#39;=>_, &
#39;connect_timeout&
#39;=>_, &
#39;debug&
#39;=>_, &
#39;extra_sock_opts&
#39;=>_, &
#39;nolink&
#39;=>_, &
#39;query_api_versions&
#39;=>_, &
#39;request_timeout&
#39;=>_, &
#39;sasl&
#39;=>_, &
#39;ssl&
#39;=>_},_) -> any()
А ошибки edoc тоже красивенькие:
brod_utils.erl: at line 566: syntax error before: &
#39;?BIND_STACKTRACE&
#39;