Credence.Rule.NoSortThenReverse
(credence v0.2.0)
Copy Markdown
Performance & readability rule: Detects the pattern of calling Enum.sort/1
followed by Enum.reverse/1 on the result.
Sorting ascending then reversing is equivalent to Enum.sort(list, :desc)
(or Enum.sort(list, &>=/2)) but wastes a full O(n) pass for the reversal.
Bad
sorted = Enum.sort(nums)
top = Enum.reverse(sorted)
# or in a pipeline
nums |> Enum.sort() |> Enum.reverse()Good
sorted_desc = Enum.sort(nums, :desc)