From edb897def08ab272ad6e91ab61dd70757242952e Mon Sep 17 00:00:00 2001 From: Albert Meltzer <7529386+kitbellew@users.noreply.github.com> Date: Tue, 5 Mar 2024 12:33:17 -0800 Subject: [PATCH] RemoveScala3OptionalBraces: allow leading infix op Previously, we didn't allow it as the scalameta library didn't provide a way to check when it was actually possible. --- .../rewrite/RemoveScala3OptionalBraces.scala | 4 +++- .../src/test/resources/scala3/OptionalBraces.stat | 8 ++++---- .../test/resources/scala3/OptionalBraces_fold.stat | 8 ++++---- .../test/resources/scala3/OptionalBraces_keep.stat | 8 ++++---- .../test/resources/scala3/OptionalBraces_unfold.stat | 12 ++++++------ 5 files changed, 21 insertions(+), 19 deletions(-) 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 9dcf8d76f4..3e895dc465 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 @@ -76,7 +76,9 @@ private class RemoveScala3OptionalBraces(implicit val ftoks: FormatTokens) case t: Term.Name => t.parent.exists { case p: Term.Select => p.name eq t // select without `.` - case p: Term.ApplyInfix => p.op eq t + case p: Term.ApplyInfix if p.op eq t => + !style.dialect.allowInfixOperatorAfterNL || + !t.tokens.head.isSymbolicInfixOperator case _ => false } case _ => false diff --git a/scalafmt-tests/src/test/resources/scala3/OptionalBraces.stat b/scalafmt-tests/src/test/resources/scala3/OptionalBraces.stat index de3a48a700..e0d19a0044 100644 --- a/scalafmt-tests/src/test/resources/scala3/OptionalBraces.stat +++ b/scalafmt-tests/src/test/resources/scala3/OptionalBraces.stat @@ -5211,10 +5211,10 @@ object a: withEval.so(evalComment so { c => s"($c) " }) + - this.match { - case MateAdvice(seq, _, _, _) => seq.desc - case CpAdvice(judgment, _, _) => judgment.toString - } + "." + this.match + case MateAdvice(seq, _, _, _) => seq.desc + case CpAdvice(judgment, _, _) => judgment.toString + + "." <<< match as infix lhs, with rewrite rewrite.scala3.removeOptionalBraces = yes === diff --git a/scalafmt-tests/src/test/resources/scala3/OptionalBraces_fold.stat b/scalafmt-tests/src/test/resources/scala3/OptionalBraces_fold.stat index 4eadb29441..3b73f5a2d5 100644 --- a/scalafmt-tests/src/test/resources/scala3/OptionalBraces_fold.stat +++ b/scalafmt-tests/src/test/resources/scala3/OptionalBraces_fold.stat @@ -4981,10 +4981,10 @@ object a { } >>> object a: - withEval.so(evalComment so { c => s"($c) " }) + this.match { - case MateAdvice(seq, _, _, _) => seq.desc - case CpAdvice(judgment, _, _) => judgment.toString - } + "." + withEval.so(evalComment so { c => s"($c) " }) + this.match + case MateAdvice(seq, _, _, _) => seq.desc + case CpAdvice(judgment, _, _) => judgment.toString + + "." <<< match as infix lhs, with rewrite rewrite.scala3.removeOptionalBraces = yes === diff --git a/scalafmt-tests/src/test/resources/scala3/OptionalBraces_keep.stat b/scalafmt-tests/src/test/resources/scala3/OptionalBraces_keep.stat index 45feec8b0a..e08bcd4907 100644 --- a/scalafmt-tests/src/test/resources/scala3/OptionalBraces_keep.stat +++ b/scalafmt-tests/src/test/resources/scala3/OptionalBraces_keep.stat @@ -5246,10 +5246,10 @@ object a: withEval.so(evalComment so { c => s"($c) " }) + - this.match { - case MateAdvice(seq, _, _, _) => seq.desc - case CpAdvice(judgment, _, _) => judgment.toString - } + "." + this.match + case MateAdvice(seq, _, _, _) => seq.desc + case CpAdvice(judgment, _, _) => judgment.toString + + "." <<< match as infix lhs, with rewrite rewrite.scala3.removeOptionalBraces = yes === diff --git a/scalafmt-tests/src/test/resources/scala3/OptionalBraces_unfold.stat b/scalafmt-tests/src/test/resources/scala3/OptionalBraces_unfold.stat index b1542a85c1..c376792fe6 100644 --- a/scalafmt-tests/src/test/resources/scala3/OptionalBraces_unfold.stat +++ b/scalafmt-tests/src/test/resources/scala3/OptionalBraces_unfold.stat @@ -5373,12 +5373,12 @@ object a: s"($c) " } ) + - this.match { - case MateAdvice(seq, _, _, _) => - seq.desc - case CpAdvice(judgment, _, _) => - judgment.toString - } + "." + this.match + case MateAdvice(seq, _, _, _) => + seq.desc + case CpAdvice(judgment, _, _) => + judgment.toString + + "." <<< match as infix lhs, with rewrite rewrite.scala3.removeOptionalBraces = yes ===