Credo.Check.Refactor.UnlessWithElse (Credo v1.7.12)
View SourceBasics
This check is enabled by default.
Learn how to disable it via .credo.exs.
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!"
endThis should be refactored:
unless allowed? do
  raise "Not allowed!"
else
  proceed_as_planned()
endto look like this:
if allowed? do
  proceed_as_planned()
else
  raise "Not allowed!"
endThe 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 imply.
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.