Skip to content

Commit 0faac64

Browse files
committed
Add pending deprecation
1 parent 1fedf42 commit 0faac64

File tree

3 files changed

+23
-13
lines changed

3 files changed

+23
-13
lines changed

lib/nimble_parsec/compiler.ex

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -430,7 +430,7 @@ defmodule NimbleParsec.Compiler do
430430

431431
{acc, context} when acc != :error ->
432432
IO.warn(
433-
"Returning a two-element tuple {acc, context} in pre_traverse/post_traverse is deprecated, " <>
433+
"returning a two-element tuple {acc, context} in pre_traverse/post_traverse is deprecated, " <>
434434
"please return {rest, acc, context} instead"
435435
)
436436

@@ -443,9 +443,19 @@ defmodule NimbleParsec.Compiler do
443443
# TODO: Deprecate two element tuple return that is not error
444444
quote generated: true do
445445
case unquote(quoted) do
446-
{_, _, _} = res -> res
447-
{:error, reason} -> {:error, reason}
448-
{acc, context} -> {unquote(rest), acc, context}
446+
{_, _, _} = res ->
447+
res
448+
449+
{:error, reason} ->
450+
{:error, reason}
451+
452+
{acc, context} ->
453+
IO.warn(
454+
"returning a two-element tuple {acc, context} in pre_traverse/post_traverse is deprecated, " <>
455+
"please return {rest, acc, context} instead"
456+
)
457+
458+
{unquote(rest), acc, context}
449459
end
450460
end
451461
end

test/integration_test.exs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -69,12 +69,12 @@ defmodule NimbleParsec.IntegrationTest do
6969
|> post_traverse({:sign_int_value, []})
7070
|> tag(:signed_int)
7171

72-
defp sign_int_value(_rest, [int, _neg], context, _, _) do
73-
{[int * -1], context}
72+
defp sign_int_value(rest, [int, _neg], context, _, _) do
73+
{rest, [int * -1], context}
7474
end
7575

76-
defp sign_int_value(_rest, res, context, _, _) do
77-
{res, context}
76+
defp sign_int_value(rest, res, context, _, _) do
77+
{rest, res, context}
7878
end
7979

8080
test "returns ok/error" do
@@ -90,8 +90,8 @@ defmodule NimbleParsec.IntegrationTest do
9090

9191
defparsec :language_code, language_code
9292

93-
defp atomize_language_code(_rest, [language_code], context, _line, _offset) do
94-
{[String.to_atom(language_code)], context}
93+
defp atomize_language_code(rest, [language_code], context, _line, _offset) do
94+
{rest, [String.to_atom(language_code)], context}
9595
end
9696

9797
test "returns ok/error" do

test/nimble_parsec_test.exs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1500,8 +1500,8 @@ defmodule NimbleParsecTest do
15001500
end
15011501
end
15021502

1503-
defp location(_rest, args, %{} = context, line, offset, tag) do
1504-
{[{tag, args, line, offset}], context}
1503+
defp location(rest, args, %{} = context, line, offset, tag) do
1504+
{rest, [{tag, args, line, offset}], context}
15051505
end
15061506

15071507
defp bound?(document) do
@@ -1554,6 +1554,6 @@ defmodule NimbleParsecTest do
15541554
defp private_join_and_wrap(rest, args, %{} = context, {line, line_offset}, byte_offset, joiner)
15551555
when is_binary(rest) and is_integer(line) and is_integer(line_offset) and
15561556
is_integer(byte_offset) do
1557-
{args |> Enum.join(joiner) |> List.wrap(), context}
1557+
{rest, args |> Enum.join(joiner) |> List.wrap(), context}
15581558
end
15591559
end

0 commit comments

Comments
 (0)