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 61146786e3..9e761cdb09 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 @@ -134,6 +134,8 @@ class RedundantParens(implicit val ftoks: FormatTokens) } case pia: Member.Infix if !infixNeedsParens(pia, t) => okToReplaceInfix(pia, t) + case p: Tree.WithDeclTpe if p.decltpe eq t => true + case p: Tree.WithDeclTpeOpt if p.decltpe.contains(t) => true case _ => okToReplaceOther(t) } } diff --git a/scalafmt-tests/src/test/resources/rewrite/RedundantParens.stat b/scalafmt-tests/src/test/resources/rewrite/RedundantParens.stat index ee88b9d01e..1bd08d2534 100644 --- a/scalafmt-tests/src/test/resources/rewrite/RedundantParens.stat +++ b/scalafmt-tests/src/test/resources/rewrite/RedundantParens.stat @@ -1449,8 +1449,8 @@ object a { def g(h: Int): String = ??? def g(h: Int): foo.String = ??? def g(h: Int): foo.String[A] = ??? - def g(h: (Int | Long)): (foo & bar) = ??? - def g(h: (A & B)): (foo | bar[A]) = ??? + def g(h: Int | Long): foo & bar = ??? + def g(h: A & B): foo | bar[A] = ??? } <<< type in parens, typedef runner.dialect = scala3