@@ -79,9 +79,16 @@ defmodule Styler.Style.Blocks do
7979 { postroll , reversed_clauses } = Enum . split_while ( reversed_clauses , & ( not left_arrow? ( & 1 ) ) )
8080 [ { :<- , _ , [ lhs , rhs ] } = _final_clause | rest ] = reversed_clauses
8181
82- # Credo.Check.Refactor.RedundantWithClauseResult
82+ # drop singleton identity else clauses like `else foo -> foo end`
83+ elses =
84+ case elses do
85+ [ { { _ , _ , [ :else ] } , [ { :-> , _ , [ [ left ] , right ] } ] } ] -> if nodes_equivalent? ( left , right ) , do: [ ] , else: elses
86+ _ -> elses
87+ end
88+
8389 { reversed_clauses , do_body } =
8490 cond do
91+ # Credo.Check.Refactor.RedundantWithClauseResult
8592 Enum . empty? ( postroll ) and Enum . empty? ( elses ) and nodes_equivalent? ( lhs , do_body ) ->
8693 { rest , rhs }
8794
@@ -95,14 +102,7 @@ defmodule Styler.Style.Blocks do
95102 { reversed_clauses , do_body }
96103 end
97104
98- # drop singleton identity else clauses like `else foo -> foo end`
99- new_elses =
100- case elses do
101- [ { { _ , _ , [ :else ] } , [ { :-> , _ , [ [ left ] , right ] } ] } ] -> if nodes_equivalent? ( left , right ) , do: [ ] , else: elses
102- _ -> elses
103- end
104-
105- children = Enum . reverse ( reversed_clauses , [ [ { do_block , do_body } | new_elses ] ] )
105+ children = Enum . reverse ( reversed_clauses , [ [ { do_block , do_body } | elses ] ] )
106106
107107 if Enum . any? ( preroll ) ,
108108 do: { :__block__ , m , preroll ++ [ { :with , m , children } ] } ,
0 commit comments