Credo.Check.Refactor.UnlessWithElse (Credo v1.6.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.
Check-Specific Parameters
There are no specific parameters for this check.
General Parameters
Like with all checks, general params can be applied.
Parameters can be configured via the .credo.exs
config file.