diff --git a/scalafmt-core/shared/src/main/scala/org/scalafmt/internal/Router.scala b/scalafmt-core/shared/src/main/scala/org/scalafmt/internal/Router.scala index 84ef1e14f2..71b7d75f42 100644 --- a/scalafmt-core/shared/src/main/scala/org/scalafmt/internal/Router.scala +++ b/scalafmt-core/shared/src/main/scala/org/scalafmt/internal/Router.scala @@ -2717,7 +2717,7 @@ class Router(formatOps: FormatOps) { if (!style.align.arrowEnumeratorGenerator) Seq.empty else Seq(Indent(StateColumn, expire, After)) getSplitsDefValEquals(body, endFt, spaceIndents) { - CtrlBodySplits.get(body, spaceIndents) { + def splits = CtrlBodySplits.get(body, spaceIndents) { if (spaceIndents.nonEmpty) Split(Space, 0).withIndents(spaceIndents) else { val noSlb = body match { @@ -2729,6 +2729,13 @@ class Router(formatOps: FormatOps) { else Split(Space, 0).withSingleLine(expire) } }(cost => CtrlBodySplits.withIndent(Split(Newline2x(ft), cost), endFt)) + body.parent.parent match { + case Some(pp: Term.EnumeratorsBlock) + if style.dialect.allowSignificantIndentation && + isEnclosedInParens(pp) => + Seq(Split(Space, 0).withIndents(spaceIndents)) + case _ => splits + } } } diff --git a/scalafmt-tests/shared/src/test/resources/scala3/OptionalBraces.stat b/scalafmt-tests/shared/src/test/resources/scala3/OptionalBraces.stat index 6f702da26e..3486c119dd 100644 --- a/scalafmt-tests/shared/src/test/resources/scala3/OptionalBraces.stat +++ b/scalafmt-tests/shared/src/test/resources/scala3/OptionalBraces.stat @@ -3981,8 +3981,7 @@ object a: object a: val abstractTypeNames = for ( - parent <- - parents; + parent <- parents; mbr <- parent.abstractTypeMembers if qualifies(mbr.symbol) ) yield mbr.name.asTypeName @@ -7350,9 +7349,8 @@ object a: ) yield x + y >>> object a: - val expression = for ( - x <- - loremipsumdolorsitametconsecteturadipiscingelitseddoeiusmodtemporincididu; - y <- - loremipsumdolorsitametconsecteturadipiscingelitseddoeiusmodtemporincididu - ) yield x + y + val expression = + for ( + x <- loremipsumdolorsitametconsecteturadipiscingelitseddoeiusmodtemporincididu; + y <- loremipsumdolorsitametconsecteturadipiscingelitseddoeiusmodtemporincididu + ) yield x + y diff --git a/scalafmt-tests/shared/src/test/resources/scala3/OptionalBraces_fold.stat b/scalafmt-tests/shared/src/test/resources/scala3/OptionalBraces_fold.stat index b743688d7a..a4126295ba 100644 --- a/scalafmt-tests/shared/src/test/resources/scala3/OptionalBraces_fold.stat +++ b/scalafmt-tests/shared/src/test/resources/scala3/OptionalBraces_fold.stat @@ -7071,8 +7071,6 @@ object a: >>> object a: val expression = for ( - x <- - loremipsumdolorsitametconsecteturadipiscingelitseddoeiusmodtemporincididu; - y <- - loremipsumdolorsitametconsecteturadipiscingelitseddoeiusmodtemporincididu + x <- loremipsumdolorsitametconsecteturadipiscingelitseddoeiusmodtemporincididu; + y <- loremipsumdolorsitametconsecteturadipiscingelitseddoeiusmodtemporincididu ) yield x + y diff --git a/scalafmt-tests/shared/src/test/resources/scala3/OptionalBraces_keep.stat b/scalafmt-tests/shared/src/test/resources/scala3/OptionalBraces_keep.stat index d2b6df99a7..899c39cc91 100644 --- a/scalafmt-tests/shared/src/test/resources/scala3/OptionalBraces_keep.stat +++ b/scalafmt-tests/shared/src/test/resources/scala3/OptionalBraces_keep.stat @@ -3942,8 +3942,7 @@ object a: object a: val abstractTypeNames = for ( - parent <- - parents; + parent <- parents; mbr <- parent.abstractTypeMembers if qualifies(mbr.symbol) ) yield mbr.name.asTypeName @@ -7381,8 +7380,6 @@ object a: >>> object a: val expression = for ( - x <- - loremipsumdolorsitametconsecteturadipiscingelitseddoeiusmodtemporincididu; - y <- - loremipsumdolorsitametconsecteturadipiscingelitseddoeiusmodtemporincididu + x <- loremipsumdolorsitametconsecteturadipiscingelitseddoeiusmodtemporincididu; + y <- loremipsumdolorsitametconsecteturadipiscingelitseddoeiusmodtemporincididu ) yield x + y 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 e1faec7730..966842897e 100644 --- a/scalafmt-tests/shared/src/test/scala/org/scalafmt/FormatTests.scala +++ b/scalafmt-tests/shared/src/test/scala/org/scalafmt/FormatTests.scala @@ -137,7 +137,7 @@ class FormatTests extends FunSuite with CanRunTests with FormatAssertions { override def afterAll(): Unit = { logger.debug(s"Total explored: ${Debug.explored}") if (!onlyUnit && !onlyManual) - assertEquals(Debug.explored, 1785537, "total explored") + assertEquals(Debug.explored, 1785448, "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 :'(