You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
<@incubator-pekko-connectors-kafka>-<⎇ update-and-apply-scalafmt>-<±>-8-> scalafmt
org.scalafmt.cli.FailedToFormat:/Users/mdedetrich/github/incubator-pekko-connectors-kafka/tests/src/test/scala/akka/kafka/internal/CommitCollectorStageSpec.scala
Causedby: org.scalafmt.Error$PreciseIncomplete:/Users/mdedetrich/github/incubator-pekko-connectors-kafka/tests/src/test/scala/akka/kafka/internal/CommitCollectorStageSpec.scala:4:error: Unable to format file due to bug in scalafmt
): (TestPublisher.Probe[Committable],
^
at org.scalafmt.Scalafmt$.$anonfun$doFormatOne$7(Scalafmt.scala:161)
at scala.util.Success.flatMap(Try.scala:258)
at org.scalafmt.Scalafmt$.$anonfun$doFormatOne$4(Scalafmt.scala:156)
at scala.meta.parsers.Parsed.fold(Errors.scala:12)
at scala.meta.parsers.Parsed.fold$(Errors.scala:11)
at scala.meta.parsers.Parsed$Success.fold(Errors.scala:26)
at org.scalafmt.Scalafmt$.org$scalafmt$Scalafmt$$doFormatOne(Scalafmt.scala:152)
at org.scalafmt.Scalafmt$.doFormat(Scalafmt.scala:126)
at org.scalafmt.Scalafmt$.formatCodeWithStyle(Scalafmt.scala:91)
at org.scalafmt.Scalafmt$.$anonfun$formatCode$3(Scalafmt.scala:78)
at scala.util.Success.fold(Try.scala:281)
at org.scalafmt.Scalafmt$.formatCode(Scalafmt.scala:78)
at org.scalafmt.Scalafmt$.format(Scalafmt.scala:59)
at org.scalafmt.Scalafmt.format(Scalafmt.scala)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
at java.base/java.lang.reflect.Method.invoke(Method.java:578)
at org.scalafmt.dynamic.ScalafmtReflect.$anonfun$tryFormat$1(ScalafmtReflect.scala:121)
at scala.util.Try$.apply(Try.scala:210)
at org.scalafmt.dynamic.ScalafmtReflect.tryFormat(ScalafmtReflect.scala:117)
at org.scalafmt.dynamic.ScalafmtReflectConfig.tryFormat(ScalafmtReflectConfig.scala:95)
at org.scalafmt.dynamic.ScalafmtDynamicSession.$anonfun$tryForceFormat$1(ScalafmtDynamicSession.scala:49)
at scala.util.Success.flatMap(Try.scala:258)
at org.scalafmt.dynamic.ScalafmtDynamicSession.tryForceFormat(ScalafmtDynamicSession.scala:49)
at org.scalafmt.dynamic.ScalafmtDynamicSession.tryFormat(ScalafmtDynamicSession.scala:36)
Reformatat org.scalafmt.dynamic.ScalafmtDynamicSession.format(ScalafmtDynamicSession.scala:18)
83,0%at org.scalafmt.cli.ScalafmtDynamicRunner$.handleFile(ScalafmtDynamicRunner.scala:76)
at org.scalafmt.cli.ScalafmtDynamicRunner$.$anonfun$run$7(ScalafmtDynamicRunner.scala:49)
at org.scalafmt.cli.ScalafmtDynamicRunner$.$anonfun$run$7$adapted(ScalafmtDynamicRunner.scala:47)
at scala.collection.IterableOnceOps.foreach(IterableOnce.scala:563)
at scala.collection.IterableOnceOps.foreach$(IterableOnce.scala:561)
at scala.collection.AbstractIterator.foreach(Iterator.scala:1293)
at scala.collection.parallel.ParIterableLike$Foreach.leaf(ParIterableLike.scala:938)
at scala.collection.parallel.Task.$anonfun$tryLeaf$1(Tasks.scala:52)
at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.scala:18)
at scala.util.control.Breaks$$anon$1.catchBreak(Breaks.scala:97)
at scala.collection.parallel.Task.tryLeaf(Tasks.scala:55)
at scala.collection.parallel.Task.tryLeaf$(Tasks.scala:49)
at scala.collection.parallel.ParIterableLike$Foreach.tryLeaf(ParIterableLike.scala:935)
at scala.collection.parallel.AdaptiveWorkStealingTasks$AWSTWrappedTask.internal(Tasks.scala:159)
at scala.collection.parallel.AdaptiveWorkStealingTasks$AWSTWrappedTask.internal$(Tasks.scala:156)
at scala.collection.parallel.AdaptiveWorkStealingForkJoinTasks$AWSFJTWrappedTask.internal(Tasks.scala:304)
at scala.collection.parallel.AdaptiveWorkStealingTasks$AWSTWrappedTask.compute(Tasks.scala:149)
at scala.collection.parallel.AdaptiveWorkStealingTasks$AWSTWrappedTask.compute$(Tasks.scala:148)
at scala.collection.parallel.AdaptiveWorkStealingForkJoinTasks$AWSFJTWrappedTask.compute(Tasks.scala:304)
at java.base/java.util.concurrent.RecursiveAction.exec(RecursiveAction.java:194)
at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:387)
a.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1311)
84,2%at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1840)
at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1806)
at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:177)
Expectation
Scalafmt doesn't crash with an error.
Workaround
The core problem appears to be specifically the function returning a tuple that contains multiple arguments. If we change the function to
The text was updated successfully, but these errors were encountered:
mdedetrich
changed the title
Scalafmt errors on formatting code which returns a multi-art tuple
Scalafmt errors on formatting code which returns a multi-argument tuple
Nov 11, 2022
Configuration (required)
Please paste the contents of your
.scalafmt.conf
file here:Command-line parameters (required)
When I run scalafmt via CLI like this:
scalafmt
Steps
Given code like this:
Problem
Scalafmt errors out with the following message:
Expectation
Scalafmt doesn't crash with an error.
Workaround
The core problem appears to be specifically the function returning a tuple that contains multiple arguments. If we change the function to
Then it formats without problems. Having 2 arguments in the return tuple is enough for scalafmt to throw an error
Notes
This code block was originally part of a larger source file, see https://github.com/apache/incubator-pekko-connectors-kafka/blob/e40e9e7c5ec0986103a834d2514394d7eb488978/tests/src/test/scala/akka/kafka/internal/CommitCollectorStageSpec.scala#L407-L416. When scalafmt is run on this file you get a search state exploded error which seems to be hiding the original error, this due to the fact that when scalafmt is run on the larger source file, adjusting
runner.maxStateVisits
orrunner.optimizer.maxVisitsPerToken
never actually solves the problem even with ridiculously large values.The text was updated successfully, but these errors were encountered: