diff --git a/scalafmt-core/shared/src/main/scala/org/scalafmt/rewrite/RedundantBraces.scala b/scalafmt-core/shared/src/main/scala/org/scalafmt/rewrite/RedundantBraces.scala index 6bd40030a9..f0292b582e 100644 --- a/scalafmt-core/shared/src/main/scala/org/scalafmt/rewrite/RedundantBraces.scala +++ b/scalafmt-core/shared/src/main/scala/org/scalafmt/rewrite/RedundantBraces.scala @@ -661,8 +661,7 @@ class RedundantBraces(implicit val ftoks: FormatTokens) // can allow if: no ".foo", no "with B", or has braces !b.parent.is[Term.Select] || t.templ.inits.lengthCompare(1) <= 0 || t.templ.body.stats.nonEmpty || t.tokens.last.is[T.RightBrace] - case _: Term => true - case _ => false + case _ => isTreeSingleExpr(s) } private def okToRemoveBlockWithinApply(b: Term.Block)(implicit diff --git a/scalafmt-tests/shared/src/test/resources/rewrite/RedundantBraces2.stat b/scalafmt-tests/shared/src/test/resources/rewrite/RedundantBraces2.stat index 3ad0c65994..c1a0797a29 100644 --- a/scalafmt-tests/shared/src/test/resources/rewrite/RedundantBraces2.stat +++ b/scalafmt-tests/shared/src/test/resources/rewrite/RedundantBraces2.stat @@ -761,3 +761,39 @@ runner.dialect = scala3 // Write here your test .... // don't forget to remove `pending` } +<<< def body as nested block 1 +object a { + def foo = { + { val len = firstColumn + syntax.length; (len, len) } + } +} +>>> +object a { + def foo = { + val len = firstColumn + syntax.length; (len, len) + } +} +<<< def body as nested block 2 +object a { + def foo = { + { { val len = firstColumn + syntax.length; (len, len) } } + } +} +>>> +object a { + def foo = { + val len = firstColumn + syntax.length; (len, len) + } +} +<<< def body as nested block 3 +object a { + def foo = { + { { { val len = firstColumn + syntax.length; (len, len) } } } + } +} +>>> +object a { + def foo = { + val len = firstColumn + syntax.length; (len, len) + } +} diff --git a/scalafmt-tests/shared/src/test/scala/org/scalafmt/FormatTests.scala b/scalafmt-tests/shared/src/test/scala/org/scalafmt/FormatTests.scala index f85e856604..1a8b5a8401 100644 --- a/scalafmt-tests/shared/src/test/scala/org/scalafmt/FormatTests.scala +++ b/scalafmt-tests/shared/src/test/scala/org/scalafmt/FormatTests.scala @@ -154,7 +154,7 @@ class FormatTests extends FunSuite with CanRunTests with FormatAssertions { val explored = Debug.explored.get() logger.debug(s"Total explored: $explored") if (!onlyUnit && !onlyManual) - assertEquals(explored, 2519748, "total explored") + assertEquals(explored, 2520060, "total explored") val results = debugResults.result() // TODO(olafur) don't block printing out test results. // I don't want to deal with scalaz's Tasks :'(