diff --git a/scalafmt-core/shared/src/main/scala/org/scalafmt/internal/FormatTokens.scala b/scalafmt-core/shared/src/main/scala/org/scalafmt/internal/FormatTokens.scala index 31cae42ad9..be3215b8ab 100644 --- a/scalafmt-core/shared/src/main/scala/org/scalafmt/internal/FormatTokens.scala +++ b/scalafmt-core/shared/src/main/scala/org/scalafmt/internal/FormatTokens.scala @@ -161,8 +161,9 @@ class FormatTokens(leftTok2tok: Map[TokenHash, Int])(val arr: Array[FT]) def getLastExceptParen(tree: Tree): FT = { val tokens = tree.tokens - val last = getLastNonTrivial(tokens, tree) - getClosingIfWithinParens(last)(getHead(tokens, tree)).getOrElse(last) + val last = getLast(tokens, tree) + getClosingIfWithinParens(prevNonComment(last))(getHead(tokens, tree)) + .getOrElse(last) } final def findTokenWith[A](ft: FT, iter: FT => FT)( diff --git a/scalafmt-tests/shared/src/test/resources/scala3/OptionalBraces_unfold.stat b/scalafmt-tests/shared/src/test/resources/scala3/OptionalBraces_unfold.stat index be0e01ef0a..fd57e5dc80 100644 --- a/scalafmt-tests/shared/src/test/resources/scala3/OptionalBraces_unfold.stat +++ b/scalafmt-tests/shared/src/test/resources/scala3/OptionalBraces_unfold.stat @@ -7925,11 +7925,12 @@ object a: case d if e => f // comment >>> -Idempotency violated -=> Diff (- obtained, + expected) - f -- // comment -+ // comment +object a: + b.c + .match + case d if e => + f + // comment <<< match without dot, trailing case comment object a: b.c match