You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Case-on-boolean — case expr do true -> ...; false -> ... end when the subject is a boolean expression. Uses capture guards to avoid false positives on sentinel returns.
Cond two-clause — cond do ... true -> ... end with exactly two clauses → if/else
Unless/else → if with positive case first
Redundant assignment — result = expr; result → just expr
Manual max/min — if a > b, do: a, else: b → Kernel.max/2
@doc false on defp — redundant, private functions can't have docs
Sort then negative take — Enum.sort |> Enum.take(-n) → Enum.sort(:desc) |> Enum.take(n)
Fixed
++ in reduce false positives — now checks whether ++ actually references the accumulator variable. 17 fewer false positives across 200 Hex packages.
Dogfooding — fixed all actionable smell findings in Reach's own code across 15 files