Elixir 1.6 dialyzer GenServer issue

Hello all,

I have a problem with Elixir 1.6-dev and dialyzer on Supervisor / GenServer. Not sure if it’s a bug that I should report in a Github issue.

I created a new project (Elixir 1.6): mix new one_dot6 --sup, and followed this doc to add a GenServer supervised: https://hexdocs.pm/elixir/master/Supervisor.html

Then I setup Dialyxir, here is the full project: https://github.com/robinmonjo/one_dot6

When running mix dialyzer I’m getting this warning:

lib/gen_server.ex:581: The call 'Elixir.Supervisor':child_spec(_@2::#{'id':='Elixir.OneDot6.Stack', 'start':={'Elixir.OneDot6.Stack','start_link',[any(),...]}},[]) breaks the contract (child_spec() | {module(),arg::term()} | module(),elixir:keyword()) -> child_spec()

Spent lot’s of time on this and can’t figure it out … Should I open an issue on Github ?

1 Like

This seems to be related to this issue, which is now fixed in v1.6

https://github.com/jeremyjh/dialyxir/issues/112

2 Likes