Skip to content

Commit

Permalink
Merge branch 'PragTob-explicit-steps'
Browse files Browse the repository at this point in the history
  • Loading branch information
rrrene committed Nov 13, 2023
2 parents 66602af + f5c7932 commit c5fbc8a
Show file tree
Hide file tree
Showing 9 changed files with 37 additions and 12 deletions.
2 changes: 1 addition & 1 deletion .tool-versions
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
erlang 26.0
elixir 1.15.6
elixir 1.16.0-rc.0
25 changes: 25 additions & 0 deletions lib/credo/backports.ex
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
defmodule Credo.Backports do
defmodule Enum do
if Version.match?(System.version(), ">= 1.12.0-rc") do
def slice(a, x..y) do
Elixir.Enum.slice(a, x..y//1)

Check warning on line 5 in lib/credo/backports.ex

View workflow job for this annotation

GitHub Actions / [24.2/1.11.4] CI Tests on Credo [OTP/Elixir]

There are spaces around operators most of the time, but not here.

Check warning on line 5 in lib/credo/backports.ex

View workflow job for this annotation

GitHub Actions / [23.3/1.11.4] CI Tests on Credo [OTP/Elixir]

There are spaces around operators most of the time, but not here.
end
end

def slice(a, b) do
Elixir.Enum.slice(a, b)
end
end

defmodule String do
if Version.match?(System.version(), ">= 1.12.0-rc") do
def slice(a, x..y) do
Elixir.String.slice(a, x..y//1)

Check warning on line 17 in lib/credo/backports.ex

View workflow job for this annotation

GitHub Actions / [24.2/1.11.4] CI Tests on Credo [OTP/Elixir]

There are spaces around operators most of the time, but not here.

Check warning on line 17 in lib/credo/backports.ex

View workflow job for this annotation

GitHub Actions / [23.3/1.11.4] CI Tests on Credo [OTP/Elixir]

There are spaces around operators most of the time, but not here.
end
end

def slice(a, b) do
Elixir.String.slice(a, b)
end
end
end
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ defmodule Credo.Check.Consistency.MultiAliasImportRequireUse.Collector do
aliases =
case arguments do
[{:__aliases__, _, nested_modules}] when length(nested_modules) > 1 ->
base_name = Enum.slice(nested_modules, 0..-2)
base_name = Credo.Backports.Enum.slice(nested_modules, 0..-2)
{:single, base_name}

[{{:., _, [{:__aliases__, _, _namespaces}, :{}]}, _, _nested_aliases}] ->
Expand Down
6 changes: 3 additions & 3 deletions lib/credo/check/consistency/space_around_operators.ex
Original file line number Diff line number Diff line change
Expand Up @@ -144,7 +144,7 @@ defmodule Credo.Check.Consistency.SpaceAroundOperators do

defp number_in_range?(line, column) do
line
|> String.slice(column..-1)
|> Credo.Backports.String.slice(column..-1)
|> String.match?(~r/^\d+\.\./)
end

Expand All @@ -171,13 +171,13 @@ defmodule Credo.Check.Consistency.SpaceAroundOperators do
# -1 because we need to subtract the operator
binary_pattern_end_after? =
line
|> String.slice(column..-1)
|> Credo.Backports.String.slice(column..-1)
|> String.match?(~r/\>\>/)

# -1 because we need to subtract the operator
typed_after? =
line
|> String.slice(column..-1)
|> Credo.Backports.String.slice(column..-1)
|> String.match?(~r/^\s*(integer|native|signed|unsigned|binary|size|little|float)/)

# -2 because we need to subtract the operator
Expand Down
6 changes: 3 additions & 3 deletions lib/credo/check/readability/large_numbers.ex
Original file line number Diff line number Diff line change
Expand Up @@ -182,12 +182,12 @@ defmodule Credo.Check.Readability.LargeNumbers do
Enum.map(allowed_trailing_digits, fn trailing_digits ->
if String.length(string) > trailing_digits do
base =
String.slice(string, 0..(-1 * trailing_digits - 1))
Credo.Backports.String.slice(string, 0..(-1 * trailing_digits - 1))
|> String.reverse()
|> String.replace(~r/(\d{3})(?=\d)/, "\\1_")
|> String.reverse()

trailing = String.slice(string, (-1 * trailing_digits)..-1)
trailing = Credo.Backports.String.slice(string, (-1 * trailing_digits)..-1)

"#{base}_#{trailing}"
end
Expand Down Expand Up @@ -237,7 +237,7 @@ defmodule Credo.Check.Readability.LargeNumbers do

ending_of_number =
~r/^([0-9_\.]+)/
|> Regex.run(String.slice(line, (column1 + 1)..-1))
|> Regex.run(Credo.Backports.String.slice(line, (column1 + 1)..-1))
|> List.wrap()
|> List.last()
|> to_string()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ defmodule Credo.Check.Readability.ParenthesesOnZeroArityDefs do
name_size = text |> to_string |> String.length()
skip = (SourceFile.column(source_file, line_no, text) || -1) + name_size - 1

String.slice(line, skip..-1)
Credo.Backports.String.slice(line, skip..-1)
end

defp issue_for(issue_meta, line_no, kind) do
Expand Down
2 changes: 1 addition & 1 deletion lib/credo/check/warning/unused_function_return_helper.ex
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,7 @@ defmodule Credo.Check.Warning.UnusedFunctionReturnHelper do
when is_list(arguments) do
# IO.inspect(ast, label: "#{unquote(op)} (#{Macro.to_string(candidate)} #{acc})")

head_expression = Enum.slice(arguments, 0..-2)
head_expression = Credo.Backports.Enum.slice(arguments, 0..-2)

if Credo.Code.contains_child?(head_expression, candidate) do
{nil, :VERIFIED}
Expand Down
2 changes: 1 addition & 1 deletion lib/credo/cli/command/diff/task/get_git_diff.ex
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ defmodule Credo.CLI.Command.Diff.Task.GetGitDiff do
defp run_credo_on_dir(exec, dirname, previous_git_ref, given_ref) do
{previous_argv, _last_arg} =
exec.argv
|> Enum.slice(1..-1)
|> Credo.Backports.Enum.slice(1..-1)
|> Enum.reduce({[], nil}, fn
_, {argv, "--working-dir"} -> {Enum.slice(argv, 1..-2), nil}
_, {argv, "--from-git-merge-base"} -> {Enum.slice(argv, 1..-2), nil}
Expand Down
2 changes: 1 addition & 1 deletion lib/credo/code/interpolation_helper.ex
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ defmodule Credo.Code.InterpolationHelper do
line = String.to_charlist(line)
part1 = Enum.slice(line, 0, col_start - 1)
part2 = String.to_charlist(String.duplicate(char, length))
part3 = Enum.slice(line, (col_end - 1)..-1)
part3 = Credo.Backports.Enum.slice(line, (col_end - 1)..-1)
List.to_string(part1 ++ part2 ++ part3)
end

Expand Down

0 comments on commit c5fbc8a

Please sign in to comment.