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 d11e17e2c9..a0e1fc24f4 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 @@ -702,7 +702,9 @@ class Router(formatOps: FormatOps) { case Newlines.unfold => val rightParent = rightOwner.parent.get val slbEnd = - if (defn) beforeDefRhs.fold(getLastToken(rightParent))(_.left) + if (defn) + beforeDefRhs + .fold(getLastToken(rightParent))(prevNonComment(_).left) else getLastToken(getLastCall(rightParent)) val multipleArgs = isSeqMulti(getArgs(next(ft).meta.leftOwner)) val nft = tokens.tokenAfter(close) diff --git a/scalafmt-tests/src/test/resources/scala3/OptionalBraces.stat b/scalafmt-tests/src/test/resources/scala3/OptionalBraces.stat index be4f7b1c02..ec30509547 100644 --- a/scalafmt-tests/src/test/resources/scala3/OptionalBraces.stat +++ b/scalafmt-tests/src/test/resources/scala3/OptionalBraces.stat @@ -4590,3 +4590,15 @@ object Test: catch case _: RuntimeException => 2 case _: Exception => 3 +<<< #3497 +newlines.beforeOpenParenDefnSite = null +=== +extension (s: String) + /** ... */ + def foo(): Unit = ??? + def bar(): Unit = ??? +>>> +extension (s: String) + /** ... */ + def foo(): Unit = ??? + def bar(): Unit = ??? diff --git a/scalafmt-tests/src/test/resources/scala3/OptionalBraces_fold.stat b/scalafmt-tests/src/test/resources/scala3/OptionalBraces_fold.stat index 36bb28b3d5..863f5d0685 100644 --- a/scalafmt-tests/src/test/resources/scala3/OptionalBraces_fold.stat +++ b/scalafmt-tests/src/test/resources/scala3/OptionalBraces_fold.stat @@ -4397,3 +4397,15 @@ object Test: catch case _: RuntimeException => 2 case _: Exception => 3 +<<< #3497 +newlines.beforeOpenParenDefnSite = fold +=== +extension (s: String) + /** ... */ + def foo(): Unit = ??? + def bar(): Unit = ??? +>>> +extension(s: String) + /** ... */ + def foo(): Unit = ??? + def bar(): Unit = ??? diff --git a/scalafmt-tests/src/test/resources/scala3/OptionalBraces_keep.stat b/scalafmt-tests/src/test/resources/scala3/OptionalBraces_keep.stat index 983f236de5..2bce0fccaa 100644 --- a/scalafmt-tests/src/test/resources/scala3/OptionalBraces_keep.stat +++ b/scalafmt-tests/src/test/resources/scala3/OptionalBraces_keep.stat @@ -4631,3 +4631,15 @@ object Test: catch case _: RuntimeException => 2 case _: Exception => 3 +<<< #3497 +newlines.beforeOpenParenDefnSite = keep +=== +extension (s: String) + /** ... */ + def foo(): Unit = ??? + def bar(): Unit = ??? +>>> +extension(s: String) + /** ... */ + def foo(): Unit = ??? + def bar(): Unit = ??? diff --git a/scalafmt-tests/src/test/resources/scala3/OptionalBraces_unfold.stat b/scalafmt-tests/src/test/resources/scala3/OptionalBraces_unfold.stat index e9b6a345e2..26d2bccbe3 100644 --- a/scalafmt-tests/src/test/resources/scala3/OptionalBraces_unfold.stat +++ b/scalafmt-tests/src/test/resources/scala3/OptionalBraces_unfold.stat @@ -4733,3 +4733,15 @@ object Test: 2 case _: Exception => 3 +<<< #3497 +newlines.beforeOpenParenDefnSite = unfold +=== +extension (s: String) + /** ... */ + def foo(): Unit = ??? + def bar(): Unit = ??? +>>> +extension(s: String) + /** ... */ + def foo(): Unit = ??? + def bar(): Unit = ???