From 2cec32e6e11578221ec30e5fdee353d613d4b1f3 Mon Sep 17 00:00:00 2001 From: Lennart Spitzner Date: Thu, 31 Aug 2023 13:47:15 +0200 Subject: [PATCH] Fix bug in PRMMinimize feature for InfixN operators --- data/12-features/minimize-parentheses.blt | 4 ++++ .../Haskell/Brittany/Internal/Components/OpTree.hs | 8 +++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/data/12-features/minimize-parentheses.blt b/data/12-features/minimize-parentheses.blt index 7b831c3..a03f392 100644 --- a/data/12-features/minimize-parentheses.blt +++ b/data/12-features/minimize-parentheses.blt @@ -25,3 +25,7 @@ func = func ((((((((nested + expression)))))))) #expected -- brittany { lconfig_operatorParenthesisRefactorMode: PRMMinimize } func = func (nested + expression) + +#test does not remove parens on InfixN +-- brittany { lconfig_operatorParenthesisRefactorMode: PRMMinimize } +func = (a == Foo) == (b == Bar) diff --git a/source/library/Language/Haskell/Brittany/Internal/Components/OpTree.hs b/source/library/Language/Haskell/Brittany/Internal/Components/OpTree.hs index 5e82f90..440bd49 100644 --- a/source/library/Language/Haskell/Brittany/Internal/Components/OpTree.hs +++ b/source/library/Language/Haskell/Brittany/Internal/Components/OpTree.hs @@ -216,7 +216,13 @@ remSuperfluousParens outerFixity = \case locO locC fixity - (remSuperfluousParens (fixLevel fixity) c) + (remSuperfluousParens + (case fixity of + Fixity _ level InfixN -> level + 1 + Fixity _ level _ -> level + ) + c + ) [ (op, remSuperfluousParens (fixLevel fixity) tree) | (op, tree) <- cs ] x -> x where