Credo.Check.Refactor.MapInto (Credo v1.5.0) View Source
This check has a base priority of high
and requires Elixir < 1.8.0
.
Explanation
Enum.into/3
is more efficient than Enum.map/2 |> Enum.into/2
.
This should be refactored:
[:apple, :banana, :carrot]
|> Enum.map(&({&1, to_string(&1)}))
|> Enum.into(%{})
to look like this:
Enum.into([:apple, :banana, :carrot], %{}, &({&1, to_string(&1)}))
The reason for this is performance, because the separate calls to
Enum.map/2
and Enum.into/2
require two iterations whereas
Enum.into/3
only requires one.
Configuration parameters
There are no specific parameters for this check.
Like with all checks, general params can be applied.
Parameters can be configured via the .credo.exs
config file.