Closed tim2CF closed 4 years ago
That is really interesting. I'm not sure where dialyzer is finding the type {atom() | [any()] | number() | {_, _, _, _}, [{atom() | tuple(), _}]}
.
In the spec:
eval_quoted(Macro.t(), list(), Macro.Env.t() | keyword()) :: {term(), binding :: list()}
It might be an Elixir bug or an Dialyzer bug but almost certainly not a dialyxir bug as we don't control any of the code generation or analysis. I would expect you can recreate with the dialyzer CLI, do you mind trying that?
Hm, I don't know how to probably use Dialyzer without mix task. If I just apply binary to beam files with PLT generated by Dialyxir, it fails with unrelated error
dialyzer: Analysis failed with error:
{undef,
[{elixir_erl,debug_info,
[core_v1,'Elixir.DialyzerBug',
{elixir_v1,
But I agree, it's probably bug of Erlang, Elixir or Dialyzer.
Seems this particular bug has been fixed in Elixir, this PR https://github.com/elixir-lang/elixir/pull/9961 I'm closing this issue, thanks!
Sample project and details how to reproduce bug are there https://github.com/tim2CF/dialyzer_bug#dialyzerbug