diff --git a/scalafmt-core/shared/src/main/scala/org/scalafmt/rewrite/RedundantParens.scala b/scalafmt-core/shared/src/main/scala/org/scalafmt/rewrite/RedundantParens.scala index 98817d8134..47fdce9174 100644 --- a/scalafmt-core/shared/src/main/scala/org/scalafmt/rewrite/RedundantParens.scala +++ b/scalafmt-core/shared/src/main/scala/org/scalafmt/rewrite/RedundantParens.scala @@ -107,6 +107,7 @@ class RedundantParens(ftoks: FormatTokens) extends FormatTokensRewrite.Rule { case InfixApp(pia) if !infixNeedsParens(pia, t) => t match { case InfixApp(tia) => + !breaksBeforeOp(tia) && style.rewrite.redundantParens.infixSide.exists { case RedundantParensSettings.InfixSide.many => tia.op.value == pia.op.value || diff --git a/scalafmt-tests/src/test/resources/rewrite/RedundantParens.stat b/scalafmt-tests/src/test/resources/rewrite/RedundantParens.stat index d851329d91..43532c453b 100644 --- a/scalafmt-tests/src/test/resources/rewrite/RedundantParens.stat +++ b/scalafmt-tests/src/test/resources/rewrite/RedundantParens.stat @@ -1025,6 +1025,22 @@ object a { // all foo || bar && baz // low precedence infix } +<<< infix expressions with infixSide = all and breaks +rewrite.redundantParens.infixSide = all +=== +object a { + foo and ( + bar + + baz + ) +} +>>> +object a { + foo and ( + bar + + baz + ) +} <<< #3222 do-while object a { do foo while (true)