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"""""")
+ }
+}
+>>>
+def foo(url: String) =
+ url match {
+ case "foo" => Some("")
+ case _ => None
+ } map { img =>
+ Html(s"""""")
+ }
+<<< 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"""""")
+ }
+}
+>>>
+def foo(url: String) =
+ url
+ .match
+ case "foo" => Some("")
+ case _ => None
+ .map { img =>
+ Html(s"""""")
+ }