Skip to content

Commit

Permalink
Merge branch 'fix-1.17' of github.com:peaceful-james/credo into peace…
Browse files Browse the repository at this point in the history
…ful-james-fix-1.17
  • Loading branch information
rrrene committed Jun 2, 2024
2 parents a95518a + ccd5e70 commit 4155a04
Show file tree
Hide file tree
Showing 3 changed files with 78 additions and 44 deletions.
4 changes: 2 additions & 2 deletions .tool-versions
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
erlang 26.2.1
elixir 1.16.1-otp-26
erlang 27.0
elixir 1.17.0-rc.0-otp-27
4 changes: 4 additions & 0 deletions lib/credo/code.ex
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,10 @@ defmodule Credo.Code do
{:ok, _, _, _, tokens} ->
tokens

# Elixir >= 1.17
{:ok, _, _, _, tokens, _} ->
Enum.reverse(tokens)

{:error, _, _, _, tokens} ->
tokens
end
Expand Down
114 changes: 72 additions & 42 deletions test/credo/code/token_test.exs
Original file line number Diff line number Diff line change
Expand Up @@ -236,27 +236,42 @@ defmodule Credo.Code.TokenTest do
tokens = Credo.Code.to_tokens(source)

expected =
if Version.match?(System.version(), ">= 1.14.0-dev") do
[
{:%{}, {1, 1, nil}},
{:"{", {1, 2, nil}},
@kw_identifier_token,
{:bin_string, {1, 28, nil},
[
{{1, 29, nil}, {1, 39, nil}, [{:identifier, {1, 31, ~c"filename"}, :filename}]},
" world"
]},
{:"}", {1, 47, nil}}
]
else
[
{:%{}, {1, 1, nil}},
{:"{", {1, 2, nil}},
@kw_identifier_token,
{:bin_string, {1, 28, nil},
[{{1, 29, nil}, {1, 39, nil}, [{:identifier, {1, 31, nil}, :filename}]}, " world"]},
{:"}", {1, 47, nil}}
]
cond do
Version.match?(System.version(), ">= 1.17.0-rc.0") ->
[
{:%{}, {1, 1, nil}},
{:"{", {1, 1, nil}},
@kw_identifier_token,
{:bin_string, {1, 28, nil},
[
{{1, 29, nil}, {1, 39, nil}, [{:identifier, {1, 31, ~c"filename"}, :filename}]},
" world"
]},
{:"}", {1, 47, nil}}
]

Version.match?(System.version(), ">= 1.14.0-dev") ->
[
{:%{}, {1, 1, nil}},
{:"{", {1, 2, nil}},
@kw_identifier_token,
{:bin_string, {1, 28, nil},
[
{{1, 29, nil}, {1, 39, nil}, [{:identifier, {1, 31, ~c"filename"}, :filename}]},
" world"
]},
{:"}", {1, 47, nil}}
]

true ->
[
{:%{}, {1, 1, nil}},
{:"{", {1, 2, nil}},
@kw_identifier_token,
{:bin_string, {1, 28, nil},
[{{1, 29, nil}, {1, 39, nil}, [{:identifier, {1, 31, nil}, :filename}]}, " world"]},
{:"}", {1, 47, nil}}
]
end

assert expected == tokens
Expand All @@ -271,27 +286,42 @@ defmodule Credo.Code.TokenTest do
tokens = Credo.Code.to_tokens(source)

expected =
if Version.match?(System.version(), ">= 1.14.0-dev") do
[
{:%{}, {1, 1, nil}},
{:"{", {1, 2, nil}},
{:kw_identifier, {1, 3, ~c"some_atom_with_quotes"}, :some_atom_with_quotes},
{:bin_string, {1, 26, nil},
[
{{1, 27, nil}, {1, 37, nil}, [{:identifier, {1, 29, ~c"filename"}, :filename}]},
" world"
]},
{:"}", {1, 45, nil}}
]
else
[
{:%{}, {1, 1, nil}},
{:"{", {1, 2, nil}},
{:kw_identifier, {1, 3, nil}, :some_atom_with_quotes},
{:bin_string, {1, 26, nil},
[{{1, 27, nil}, {1, 37, nil}, [{:identifier, {1, 29, nil}, :filename}]}, " world"]},
{:"}", {1, 45, nil}}
]
cond do
Version.match?(System.version(), ">= 1.17.0-rc.0") ->
[
{:%{}, {1, 1, nil}},
{:"{", {1, 1, nil}},
{:kw_identifier, {1, 3, ~c"some_atom_with_quotes"}, :some_atom_with_quotes},
{:bin_string, {1, 26, nil},
[
{{1, 27, nil}, {1, 37, nil}, [{:identifier, {1, 29, ~c"filename"}, :filename}]},
" world"
]},
{:"}", {1, 45, nil}}
]

Version.match?(System.version(), ">= 1.14.0-dev") ->
[
{:%{}, {1, 1, nil}},
{:"{", {1, 2, nil}},
{:kw_identifier, {1, 3, ~c"some_atom_with_quotes"}, :some_atom_with_quotes},
{:bin_string, {1, 26, nil},
[
{{1, 27, nil}, {1, 37, nil}, [{:identifier, {1, 29, ~c"filename"}, :filename}]},
" world"
]},
{:"}", {1, 45, nil}}
]

true ->
[
{:%{}, {1, 1, nil}},
{:"{", {1, 2, nil}},
{:kw_identifier, {1, 3, nil}, :some_atom_with_quotes},
{:bin_string, {1, 26, nil},
[{{1, 27, nil}, {1, 37, nil}, [{:identifier, {1, 29, nil}, :filename}]}, " world"]},
{:"}", {1, 45, nil}}
]
end

assert expected == tokens
Expand Down

0 comments on commit 4155a04

Please sign in to comment.