ref:main

dialyzer failed

Command: set -e export MIX_HOME=/workspace/.mix mkdir -p priv/plts mix dialyzer
Runner: carl online linux/arm64
Started: May 06, 2026 at 03:34 UTC Completed: May 06, 2026 at 03:34 UTC Duration: 9s
Exit code: 2

Build Output

Pulling image: hexpm/elixir:1.18.4-erlang-28.0.2-debian-bookworm-20250811
Generated ex_git_objectstore app
Finding suitable PLTs
Checking PLT...
[:asn1, :certifi, :compiler, :crypto, :elixir, :ex_aws, :ex_aws_s3, :ex_git_objectstore, :hackney, :idna, :jason, :kernel, :logger, :metrics, :mime, :mimerl, :mix, :parse_trans, :public_key, :ssl, :ssl_verify_fun, :stdlib, :sweet_xml, :syntax_tools, :telemetry, :unicode_util_compat, :xmerl]
PLT is up to date!
No :ignore_warnings opt specified in mix.exs and default does not exist.
Starting Dialyzer
[
check_plt: false,
init_plt: ~c"/workspace/priv/plts/dialyzer.plt",
files: [~c"/workspace/_build/dev/lib/ex_git_objectstore/ebin/Elixir.ExGitObjectstore.Protocol.ReceivePack.beam",
~c"/workspace/_build/dev/lib/ex_git_objectstore/ebin/Elixir.ExGitObjectstore.Graph.Cache.beam",
~c"/workspace/_build/dev/lib/ex_git_objectstore/ebin/Elixir.ExGitObjectstore.Walk.beam",
~c"/workspace/_build/dev/lib/ex_git_objectstore/ebin/Elixir.ExGitObjectstore.Object.Blob.beam",
~c"/workspace/_build/dev/lib/ex_git_objectstore/ebin/Elixir.ExGitObjectstore.Pack.Delta.beam",
...],
warnings: [:unknown]
]
Total errors: 2, Skipped: 0, Unnecessary Skips: 0
done in 0m5.23s
lib/ex_git_objectstore/protocol/receive_pack.ex:150:invalid_contract
The @spec for the function does not match the success typing of the function.
Function:
ExGitObjectstore.Protocol.ReceivePack.init/2
Success typing:
(
%ExGitObjectstore.Repo{
:cache => nil | {atom(), map()},
:id => binary(),
:lfs_storage => nil | {atom(), map()},
:max_object_size => pos_integer(),
:storage => {atom(), map()}
},
Keyword.t()
) ::
{binary(),
%ExGitObjectstore.Protocol.ReceivePack{
:client_caps => %MapSet{:map => map()},
:cmd_buffer => <<>>,
:commands => [],
:pack_acc => nil,
:phase => :commands,
:post_receive_hook => _,
:pre_receive_hook => _,
:repo => %ExGitObjectstore.Repo{
:cache => nil | {_, _},
:id => binary(),
:lfs_storage => nil | {_, _},
:max_object_size => pos_integer(),
:storage => {_, _}
},
:result => nil,
:update_hook => _
}}
But the spec is:
(ExGitObjectstore.Repo.t(), :elixir.keyword()) :: {binary(), state()}
________________________________________________________________________________
lib/ex_git_objectstore/protocol/receive_pack.ex:295:11:improper_list_constr
List construction (cons) will produce an improper list, because its second argument is binary().
________________________________________________________________________________
done (warnings were emitted)
Halting VM with exit status 2