Credence.Rule.PreferEnumReverseTwo (credence v0.2.0)

Copy Markdown

Performance rule: Flags Enum.reverse(list) ++ other_list.

Enum.reverse/1 creates a new list, and ++ traverses that new list entirely to append the second. This is a 2-pass operation.

Using Enum.reverse/2 performs both actions in a single optimized pass.

Bad

defp do_merge([], l2, acc), do: Enum.reverse(acc) ++ l2

Good

defp do_merge([], l2, acc), do: Enum.reverse(acc, l2)