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 3fc07a1e4f..dda8ed217f 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 @@ -88,7 +88,9 @@ class RedundantParens(ftoks: FormatTokens) extends FormatTokensRewrite.Rule { style: ScalafmtConfig ): Option[(Replacement, Replacement)] = ft.right match { - case _: Token.RightParen if left.how eq ReplacementType.Remove => + case _: Token.RightParen + if (left.how eq ReplacementType.Remove) && // check trailing comma + !ftoks.prevNonComment(ft).left.is[Token.Comma] => Some((left, removeToken)) case _ => None } diff --git a/scalafmt-tests/src/test/resources/rewrite/RedundantParens.stat b/scalafmt-tests/src/test/resources/rewrite/RedundantParens.stat index 843c478061..15c75c64d2 100644 --- a/scalafmt-tests/src/test/resources/rewrite/RedundantParens.stat +++ b/scalafmt-tests/src/test/resources/rewrite/RedundantParens.stat @@ -1334,12 +1334,15 @@ object A { Option(""), ).map(identity)} >>> -test does not parse object A { def test = - foo, + ( + foo, + ) def test = - Option(""), .map(identity) + ( + Option(""), + ).map(identity) } <<< #3743 trailingCommas = never rewrite.trailingCommas.style = never @@ -1354,12 +1357,15 @@ object A { Option(""), ).map(identity)} >>> -test does not parse object A { def test = - foo, + ( + foo, + ) def test = - Option(""), .map(identity) + ( + Option(""), + ).map(identity) } <<< #3743 trailingCommas = keep rewrite.trailingCommas.style = keep @@ -1374,10 +1380,13 @@ object A { Option(""), ).map(identity)} >>> -test does not parse object A { def test = - foo, + ( + foo, + ) def test = - Option(""), .map(identity) + ( + Option(""), + ).map(identity) }