diff --git a/scalafmt-core/shared/src/main/scala/org/scalafmt/rewrite/RemoveScala3OptionalBraces.scala b/scalafmt-core/shared/src/main/scala/org/scalafmt/rewrite/RemoveScala3OptionalBraces.scala index 694825dcfa..46823a3888 100644 --- a/scalafmt-core/shared/src/main/scala/org/scalafmt/rewrite/RemoveScala3OptionalBraces.scala +++ b/scalafmt-core/shared/src/main/scala/org/scalafmt/rewrite/RemoveScala3OptionalBraces.scala @@ -53,7 +53,8 @@ private class RemoveScala3OptionalBraces(ftoks: FormatTokens) } => removeToken case _: Term.ForYield => removeToken - case _: Term.Match => removeToken + case t: Term.Match if t.parent.exists(_.isNot[Term.ApplyInfix]) => + removeToken case _: Type.Match => removeToken case _: Term.Try => removeToken case _: Ctor.Secondary diff --git a/scalafmt-tests/src/test/resources/scala3/Match.stat b/scalafmt-tests/src/test/resources/scala3/Match.stat index 1ca498dd10..54f34bfbdd 100644 --- a/scalafmt-tests/src/test/resources/scala3/Match.stat +++ b/scalafmt-tests/src/test/resources/scala3/Match.stat @@ -325,3 +325,42 @@ case head :: tail => ) case Nil => Nil } +<<< match as infix lhs, with rewrite +rewrite.scala3.removeOptionalBraces = yes +=== +def foo(url: String) = { + url match { + case "foo" => Some("") + case _ => None + } map { img => + Html(s"""$url""") + } +} +>>> +def foo(url: String) = + url match { + case "foo" => Some("") + case _ => None + } map { img => + Html(s"""$url""") + } +<<< match as select lhs, with rewrite +rewrite.scala3.removeOptionalBraces = yes +=== +def foo(url: String) = { + url.match { + case "foo" => Some("") + case _ => None + }.map { img => + Html(s"""$url""") + } +} +>>> +def foo(url: String) = + url + .match + case "foo" => Some("") + case _ => None + .map { img => + Html(s"""$url""") + }