We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent 8ce5957 commit 37192d0Copy full SHA for 37192d0
1 file changed
lib/elixir/lib/module/types/descr.ex
@@ -5879,7 +5879,7 @@ defmodule Module.Types.Descr do
5879
end
5880
5881
{:eq, _, {lit, c2, u2, _d2}} ->
5882
- {lit, bdd_negation(bdd_union(c2, u2)), :bdd_bot, :bdd_bot}
+ {lit, bdd_negation_union(c2, u2), :bdd_bot, :bdd_bot}
5883
5884
{:eq, {lit, _c1, u1, d1}, _} ->
5885
{lit, :bdd_bot, :bdd_bot, bdd_union(d1, u1)}
@@ -5901,6 +5901,10 @@ defmodule Module.Types.Descr do
5901
defp bdd_difference_union(i, u1, u2),
5902
do: bdd_difference(i, bdd_union(u1, u2))
5903
5904
+ defp bdd_negation_union(u1, u2) do
5905
+ bdd_intersection(bdd_negation(u1), bdd_negation(u2))
5906
+ end
5907
+
5908
## Optimize differences
5909
5910
defp bdd_difference(bdd_leaf(_, _) = a1, bdd_leaf(_, _) = a2, leaf_compare) do
0 commit comments