Skip to content

Commit 3c13f41

Browse files
committed
if not x, do: y => unless x, do: y
1 parent b01d328 commit 3c13f41

File tree

2 files changed

+9
-7
lines changed

2 files changed

+9
-7
lines changed

lib/style/blocks.ex

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -177,6 +177,10 @@ defmodule Styler.Style.Blocks do
177177
[{negator, _, [expr]}, [{do_, do_body}, {else_, else_body}]] when is_negator(negator) ->
178178
zipper |> Zipper.replace({:if, m, [expr, [{do_, else_body}, {else_, do_body}]]}) |> run(ctx)
179179

180+
# if not x, do: y => unless x, do: y
181+
[{negator, _, [expr]}, [do_block]] when is_negator(negator) ->
182+
zipper |> Zipper.replace({:unless, m, [expr, [do_block]]}) |> run(ctx)
183+
180184
# drop `else: nil`
181185
[head, [do_block, {_, {:__block__, _, [nil]}}]] ->
182186
{:cont, Zipper.replace(zipper, {:if, m, [head, [do_block]]}), ctx}

test/style/blocks_test.exs

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -767,6 +767,11 @@ defmodule Styler.Style.BlocksTest do
767767
""")
768768
end
769769

770+
test "if not => unless" do
771+
assert_style("if not x, do: y", "unless x, do: y")
772+
assert_style("if !x, do: y", "unless x, do: y")
773+
end
774+
770775
test "Credo.Check.Refactor.UnlessWithElse" do
771776
for negator <- ["!", "not "] do
772777
assert_style(
@@ -826,15 +831,8 @@ defmodule Styler.Style.BlocksTest do
826831

827832
test "Credo.Check.Refactor.NegatedConditionsWithElse" do
828833
for negator <- ["!", "not "] do
829-
assert_style("if #{negator}foo, do: :bar")
830834
assert_style("if #{negator}foo, do: :bar, else: :baz", "if foo, do: :baz, else: :bar")
831835

832-
assert_style("""
833-
if #{negator}foo do
834-
bar
835-
end
836-
""")
837-
838836
assert_style(
839837
"""
840838
if #{negator}foo do

0 commit comments

Comments
 (0)