Credo.Check.Refactor.UnlessWithElse (Credo v1.5.0) View Source
This check has a base priority of high
and works with any version of Elixir.
Explanation
An unless
block should not contain an else block.
So while this is fine:
unless allowed? do
raise "Not allowed!"
end
This should be refactored:
unless allowed? do
raise "Not allowed!"
else
proceed_as_planned()
end
to look like this:
if allowed? do
proceed_as_planned()
else
raise "Not allowed!"
end
The reason for this is not a technical but a human one. The else
in this
case will be executed when the condition is met, which is the opposite of
what the wording seems to apply.
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.