Credo.Check.Warning.MapGetUnsafePass (Credo v1.5.2) View Source
This check has a base priority of normal and works with any version of Elixir.
Explanation
Map.get/2 can lead into runtime errors if the result is passed into a pipe
without a proper default value. This happens when the next function in the
pipe cannot handle nil values correctly.
Example:
%{foo: [1, 2 ,3], bar: [4, 5, 6]}
|> Map.get(:missing_key)
|> Enum.each(&IO.puts/1)This will cause a Protocol.UndefinedError, since nil isn't Enumerable.
Often times while iterating over enumerables zero iterations is preferrable
to being forced to deal with an exception. Had there been a [] default
parameter this could have been averted.
If you are sure the value exists and can't be nil, please use Map.fetch!/2.
If you are not sure, Map.get/3 can help you provide a safe default value.
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.