diff --git a/scalafmt-core/shared/src/main/scala/org/scalafmt/rewrite/AvoidInfix.scala b/scalafmt-core/shared/src/main/scala/org/scalafmt/rewrite/AvoidInfix.scala index b4bf9deb04..018b68aa56 100644 --- a/scalafmt-core/shared/src/main/scala/org/scalafmt/rewrite/AvoidInfix.scala +++ b/scalafmt-core/shared/src/main/scala/org/scalafmt/rewrite/AvoidInfix.scala @@ -89,7 +89,7 @@ class AvoidInfix(implicit ctx: RewriteCtx) extends RewriteSession { val shouldWrapLhs = !lhsIsWrapped && (lhs match { - case _: Term.ApplyInfix => !lhsIsOK + case _: Term.ApplyInfix | _: Term.Match => !lhsIsOK // foo _ compose bar => (foo _).compose(bar) // new Foo compose bar => (new Foo).compose(bar) case _: Term.Eta | _: Term.New => true diff --git a/scalafmt-tests/shared/src/test/resources/scala3/OptionalBraces.stat b/scalafmt-tests/shared/src/test/resources/scala3/OptionalBraces.stat index 0d96fbca55..7e3a4ba871 100644 --- a/scalafmt-tests/shared/src/test/resources/scala3/OptionalBraces.stat +++ b/scalafmt-tests/shared/src/test/resources/scala3/OptionalBraces.stat @@ -7564,3 +7564,42 @@ object Build: } }.evaluated ) +<<< AvoidInfix with match +rewrite.rules = [AvoidInfix] +=== +object a { + a b c match + case _ => +} +>>> +object a { + a.b(c) match + case _ => +} +<<< AvoidInfix with match within applyinfix +rewrite.rules = [AvoidInfix] +=== +object a { + a b c match { + case _ => + } d e +} +>>> +object a { + (a.b(c) match { + case _ => + }).d(e) +} +<<< AvoidInfix with match, with dot +rewrite.rules = [AvoidInfix] +=== +object a { + (a.b(c)).match + case _ => +} +>>> +object a { + (a.b(c)) + .match + case _ => +} 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 595f389c12..5d45dec21e 100644 --- a/scalafmt-tests/shared/src/test/resources/scala3/OptionalBraces_fold.stat +++ b/scalafmt-tests/shared/src/test/resources/scala3/OptionalBraces_fold.stat @@ -7275,3 +7275,39 @@ object Build: config: GenerationConfig => config.remove[SiteRoot] } }.evaluated) +<<< AvoidInfix with match +rewrite.rules = [AvoidInfix] +=== +object a { + a b c match + case _ => +} +>>> +object a { + a.b(c) match + case _ => +} +<<< AvoidInfix with match within applyinfix +rewrite.rules = [AvoidInfix] +=== +object a { + a b c match { + case _ => + } d e +} +>>> +object a { + (a.b(c) match { case _ => }).d(e) +} +<<< AvoidInfix with match, with dot +rewrite.rules = [AvoidInfix] +=== +object a { + (a.b(c)).match + case _ => +} +>>> +object a { + (a.b(c)).match + case _ => +} 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 de21c14bf5..d675ccc27c 100644 --- a/scalafmt-tests/shared/src/test/resources/scala3/OptionalBraces_keep.stat +++ b/scalafmt-tests/shared/src/test/resources/scala3/OptionalBraces_keep.stat @@ -7592,3 +7592,41 @@ object Build: } }.evaluated ) +<<< AvoidInfix with match +rewrite.rules = [AvoidInfix] +=== +object a { + a b c match + case _ => +} +>>> +object a { + a.b(c) match + case _ => +} +<<< AvoidInfix with match within applyinfix +rewrite.rules = [AvoidInfix] +=== +object a { + a b c match { + case _ => + } d e +} +>>> +object a { + (a.b(c) match { + case _ => + }).d(e) +} +<<< AvoidInfix with match, with dot +rewrite.rules = [AvoidInfix] +=== +object a { + (a.b(c)).match + case _ => +} +>>> +object a { + (a.b(c)).match + case _ => +} 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 c84a38f02c..4458bed87c 100644 --- a/scalafmt-tests/shared/src/test/resources/scala3/OptionalBraces_unfold.stat +++ b/scalafmt-tests/shared/src/test/resources/scala3/OptionalBraces_unfold.stat @@ -7879,3 +7879,43 @@ object Build: } .evaluated ) +<<< AvoidInfix with match +rewrite.rules = [AvoidInfix] +=== +object a { + a b c match + case _ => +} +>>> +object a { + a.b(c) match + case _ => +} +<<< AvoidInfix with match within applyinfix +rewrite.rules = [AvoidInfix] +=== +object a { + a b c match { + case _ => + } d e +} +>>> +object a { + ( + a.b(c) match { + case _ => + } + ).d(e) +} +<<< AvoidInfix with match, with dot +rewrite.rules = [AvoidInfix] +=== +object a { + (a.b(c)).match + case _ => +} +>>> +object a { + (a.b(c)).match + case _ => +} 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 779ec0e9d8..77937b4ad7 100644 --- a/scalafmt-tests/shared/src/test/scala/org/scalafmt/FormatTests.scala +++ b/scalafmt-tests/shared/src/test/scala/org/scalafmt/FormatTests.scala @@ -144,7 +144,7 @@ class FormatTests extends FunSuite with CanRunTests with FormatAssertions { val explored = Debug.explored.get() logger.debug(s"Total explored: $explored") if (!onlyUnit && !onlyManual) - assertEquals(explored, 1082944, "total explored") + assertEquals(explored, 1083470, "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 :'(