From 0501926df3e720f6efb10c98d8a9c03ebb7652d1 Mon Sep 17 00:00:00 2001 From: Albert Meltzer <7529386+kitbellew@users.noreply.github.com> Date: Wed, 2 Oct 2024 11:39:53 -0700 Subject: [PATCH 1/2] Test redundant parens with dotless select in infix --- .../test/resources/rewrite/RedundantParens.stat | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/scalafmt-tests/shared/src/test/resources/rewrite/RedundantParens.stat b/scalafmt-tests/shared/src/test/resources/rewrite/RedundantParens.stat index 83c945ef0..c207d9399 100644 --- a/scalafmt-tests/shared/src/test/resources/rewrite/RedundantParens.stat +++ b/scalafmt-tests/shared/src/test/resources/rewrite/RedundantParens.stat @@ -1664,3 +1664,20 @@ object a { _.getAbsolutePath ) } +<<< #4133 keep parens around dotless select in infix, rhs +rewrite.redundantParens.infixSide = all +=== +def newLine: Parser[String] = namedError("\r" ~> ("\n" ?), "End of line expected") +>>> +def newLine: Parser[String] = + namedError("\r" ~> ("\n" ?), "End of line expected") +<<< #4133 keep parens around dotless select in infix, lhs +rewrite.redundantParens.infixSide = all +=== +def newLine: Parser[String] = namedError(("\r" ?) ~> "\n", "End of line expected") +>>> +test does not parse: [dialect scala213] `)` expected but `string constant` found +def newLine: Parser[String] = namedError("\r" ? ~> "\n", "End of line expected") + ^ +====== full result: ====== +def newLine: Parser[String] = namedError("\r" ? ~> "\n", "End of line expected") From d01311cc56a58e92d7d7fa0af246a211a207e018 Mon Sep 17 00:00:00 2001 From: Albert Meltzer <7529386+kitbellew@users.noreply.github.com> Date: Wed, 2 Oct 2024 11:40:17 -0700 Subject: [PATCH 2/2] RedundantParens: keep w/ dotless select in infix --- .../main/scala/org/scalafmt/rewrite/RedundantParens.scala | 1 + .../shared/src/test/resources/rewrite/RedundantParens.stat | 7 ++----- 2 files changed, 3 insertions(+), 5 deletions(-) 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 8fc4b6f6d..40ef052fc 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 @@ -195,6 +195,7 @@ class RedundantParens(implicit val ftoks: FormatTokens) case _: Lit | _: Name | _: Term.Interpolate => true case _: Term.PartialFunction => true case _: Term.AnonymousFunction => false + case t: Term.Select if !isSelectWithDot(t) => false case _ => style.rewrite.redundantParens.infixSide.isDefined } diff --git a/scalafmt-tests/shared/src/test/resources/rewrite/RedundantParens.stat b/scalafmt-tests/shared/src/test/resources/rewrite/RedundantParens.stat index c207d9399..62c05790a 100644 --- a/scalafmt-tests/shared/src/test/resources/rewrite/RedundantParens.stat +++ b/scalafmt-tests/shared/src/test/resources/rewrite/RedundantParens.stat @@ -1676,8 +1676,5 @@ rewrite.redundantParens.infixSide = all === def newLine: Parser[String] = namedError(("\r" ?) ~> "\n", "End of line expected") >>> -test does not parse: [dialect scala213] `)` expected but `string constant` found -def newLine: Parser[String] = namedError("\r" ? ~> "\n", "End of line expected") - ^ -====== full result: ====== -def newLine: Parser[String] = namedError("\r" ? ~> "\n", "End of line expected") +def newLine: Parser[String] = + namedError(("\r" ?) ~> "\n", "End of line expected")