-
Notifications
You must be signed in to change notification settings - Fork 3.4k
Fix another dialyzer Kernel.with edge case #13869
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Should it be backported to the v1.17 branch? |
Backported, tks! |
Good call @fishtreesugar, sorry I meant to do it and forgot 🙇 |
Any idea when a new version with the fix will be released? We are currently blocked updating because of this (and another issue, I am trying to create a reproducer for) |
Was this backported to 1.17.3? |
It was backported but no new release was made, as v1.18 was released slightly soon after. |
So in that case skipping 1.17 altogether and going to 1.18 would be the solution? |
Just mentioning for the record, but there are several options that might be available depending on your situation:
Tricking dialyzer: def x(arg) do
- with {:foo, :ok} <- {:foo, foo(arg)},
+ with {:foo, :ok} <- Function.identity({:foo, foo(arg)}),
{:bar, :ok} <- {:bar, bar(arg)} do (you could implement your own |
Close #13868
Note: I tried to add "generated" to a bunch of places, like to the
call
or to all else clauses, but it didn't fix it.This ended up being the solution.