Consider macros and module attributes on the left side of ++ on ExUnit.Diff

Closes #10520
This commit is contained in:
José Valim
2020-12-17 13:17:19 +01:00
parent a20f413841
commit 9c77960a26
2 changed files with 15 additions and 4 deletions
+8 -2
View File
@@ -70,8 +70,14 @@ defmodule ExUnit.Diff do
diff_quoted(number, right, env)
end
defp diff_quoted({:++, _, _} = left, right, env) when is_list(right) do
diff_maybe_improper_list(left, right, env)
defp diff_quoted({:++, meta, [prefix, suffix]}, right, env) when is_list(right) do
case prefix do
{_, [expanded: expanded] ++ _, _} ->
diff_maybe_improper_list({:++, meta, [expanded, suffix]}, right, env)
_ ->
diff_maybe_improper_list({:++, meta, [prefix, suffix]}, right, env)
end
end
defp diff_quoted({:{}, _, left}, right, env) when is_tuple(right) do
+7 -2
View File
@@ -345,7 +345,6 @@ defmodule ExUnit.DiffTest do
refute_diff([:a, :b] ++ [:c] = [:a, :b], "[:a, :b] ++ [-:c-]", "[:a, :b]")
refute_diff([:a, :c] ++ [:b] = [:a, :b], "[:a, -:c-] ++ [:b]", "[:a, :b]")
refute_diff([:a] ++ [:b] ++ [:c] = [:a, :b], "[:a] ++ [:b] ++ [-:c-]", "[:a, :b]")
assert_diff([:a] ++ :b = [:a | :b], [])
@@ -353,10 +352,16 @@ defmodule ExUnit.DiffTest do
refute_diff([:a, :b] ++ :c = [:a, :b, :c], "[:a, :b] ++ -:c-", "[:a, :b, +:c+]")
refute_diff([:a] ++ [:b] ++ :c = [:a, :b, :c], "[:a] ++ [:b] ++ -:c-", "[:a, :b, +:c+]")
refute_diff([:a] ++ [:b] = :a, "-[:a] ++ [:b]-", "+:a+")
end
@a [:a]
test "concat lists with module attributes" do
assert_diff(@a ++ [:b] = [:a, :b], [])
refute_diff(@a ++ [:b] = [:a], "[:a] ++ [-:b-]", "[:a]")
refute_diff(@a ++ [:b] = [:b], "[-:a-] ++ [:b]", "[:b]")
end
test "mixed lists" do
refute_diff([:a | :b] = [:a, :b], "[:a | -:b-]", "[:a, +:b+]")
refute_diff([:a, :b] = [:a | :b], "[:a, -:b-]", "[:a | +:b+]")