Do not assume delimiter is always available for sigils
This commit is contained in:
@@ -85,6 +85,9 @@ defmodule Code.Normalizer.QuotedASTTest do
|
||||
assert quoted_to_string(quote(do: ~S["'(123)'"])) == ~S/~S["'(123)'"]/
|
||||
assert quoted_to_string(quote(do: ~s"#{"foo"}")) == ~S/~s"#{"foo"}"/
|
||||
|
||||
assert quoted_to_string(quote(do: ~S["'(123)'"]) |> strip_metadata()) == ~S/~S"\"'(123)'\""/
|
||||
assert quoted_to_string(quote(do: ~s"#{"foo"}") |> strip_metadata()) == ~S/~s"#{"foo"}"/
|
||||
|
||||
assert quoted_to_string(
|
||||
quote do
|
||||
~s"""
|
||||
@@ -126,6 +129,13 @@ defmodule Code.Normalizer.QuotedASTTest do
|
||||
) == ~s[~S"""\n"123"\n"""]
|
||||
end
|
||||
|
||||
test "tuple" do
|
||||
assert quoted_to_string(quote do: {1, 2}) == "{1, 2}"
|
||||
assert quoted_to_string(quote do: {1}) == "{1}"
|
||||
assert quoted_to_string(quote do: {1, 2, 3}) == "{1, 2, 3}"
|
||||
assert quoted_to_string(quote do: {1, 2, 3, foo: :bar}) == "{1, 2, 3, [foo: :bar]}"
|
||||
end
|
||||
|
||||
test "tuple call" do
|
||||
assert quoted_to_string(quote(do: alias(Foo.{Bar, Baz, Bong}))) ==
|
||||
"alias Foo.{Bar, Baz, Bong}"
|
||||
@@ -580,6 +590,10 @@ defmodule Code.Normalizer.QuotedASTTest do
|
||||
end
|
||||
end
|
||||
|
||||
defp strip_metadata(ast) do
|
||||
Macro.prewalk(ast, &Macro.update_meta(&1, fn _ -> [] end))
|
||||
end
|
||||
|
||||
defp quoted_to_string(quoted, opts \\ []) do
|
||||
doc = Code.quoted_to_algebra(quoted, opts)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user