git clone -b dotty-bug [email protected]:ohze/akka.git
cd akka
sbt "project akka-testkit" compile
_:( I can't create a minimized code to reproduce the error._
Error while emitting TestActorRef.scala
[info] exception occurred while compiling /Users/thanhbv/ohze/oss/akka/akka-testkit/src/main/scala-3/akka/testkit/TestActorRef.scala, /Users/thanhbv/ohze/oss/akka/akka-testkit/src/main/scala/akka/testkit/CallingThreadDispatcher.scala, /Users/thanhbv/ohze/oss/akka/akka-testkit/src/main/scala/akka/testkit/ExplicitlyTriggeredScheduler.scala, /Users/thanhbv/ohze/oss/akka/akka-testkit/src/main/scala/akka/testkit/JavaSerializable.scala, /Users/thanhbv/ohze/oss/akka/akka-testkit/src/main/scala/akka/testkit/SocketUtil.scala, /Users/thanhbv/ohze/oss/akka/akka-testkit/src/main/scala/akka/testkit/TestActors.scala, /Users/thanhbv/ohze/oss/akka/akka-testkit/src/main/scala/akka/testkit/TestBarrier.scala, /Users/thanhbv/ohze/oss/akka/akka-testkit/src/main/scala/akka/testkit/TestEventListener.scala, /Users/thanhbv/ohze/oss/akka/akka-testkit/src/main/scala/akka/testkit/TestException.scala, /Users/thanhbv/ohze/oss/akka/akka-testkit/src/main/scala/akka/testkit/TestFSMRef.scala, /Users/thanhbv/ohze/oss/akka/akka-testkit/src/main/scala/akka/testkit/TestJavaSerializer.scala, /Users/thanhbv/ohze/oss/akka/akka-testkit/src/main/scala/akka/testkit/TestKit.scala, /Users/thanhbv/ohze/oss/akka/akka-testkit/src/main/scala/akka/testkit/TestKitExtension.scala, /Users/thanhbv/ohze/oss/akka/akka-testkit/src/main/scala/akka/testkit/TestLatch.scala, /Users/thanhbv/ohze/oss/akka/akka-testkit/src/main/scala/akka/testkit/javadsl/EventFilter.scala, /Users/thanhbv/ohze/oss/akka/akka-testkit/src/main/scala/akka/testkit/javadsl/TestKit.scala, /Users/thanhbv/ohze/oss/akka/akka-testkit/src/main/scala/akka/testkit/package.scala
java.util.NoSuchElementException: class Object while compiling /Users/thanhbv/ohze/oss/akka/akka-testkit/src/main/scala-3/akka/testkit/TestActorRef.scala, /Users/thanhbv/ohze/oss/akka/akka-testkit/src/main/scala/akka/testkit/CallingThreadDispatcher.scala, /Users/thanhbv/ohze/oss/akka/akka-testkit/src/main/scala/akka/testkit/ExplicitlyTriggeredScheduler.scala, /Users/thanhbv/ohze/oss/akka/akka-testkit/src/main/scala/akka/testkit/JavaSerializable.scala, /Users/thanhbv/ohze/oss/akka/akka-testkit/src/main/scala/akka/testkit/SocketUtil.scala, /Users/thanhbv/ohze/oss/akka/akka-testkit/src/main/scala/akka/testkit/TestActors.scala, /Users/thanhbv/ohze/oss/akka/akka-testkit/src/main/scala/akka/testkit/TestBarrier.scala, /Users/thanhbv/ohze/oss/akka/akka-testkit/src/main/scala/akka/testkit/TestEventListener.scala, /Users/thanhbv/ohze/oss/akka/akka-testkit/src/main/scala/akka/testkit/TestException.scala, /Users/thanhbv/ohze/oss/akka/akka-testkit/src/main/scala/akka/testkit/TestFSMRef.scala, /Users/thanhbv/ohze/oss/akka/akka-testkit/src/main/scala/akka/testkit/TestJavaSerializer.scala, /Users/thanhbv/ohze/oss/akka/akka-testkit/src/main/scala/akka/testkit/TestKit.scala, /Users/thanhbv/ohze/oss/akka/akka-testkit/src/main/scala/akka/testkit/TestKitExtension.scala, /Users/thanhbv/ohze/oss/akka/akka-testkit/src/main/scala/akka/testkit/TestLatch.scala, /Users/thanhbv/ohze/oss/akka/akka-testkit/src/main/scala/akka/testkit/javadsl/EventFilter.scala, /Users/thanhbv/ohze/oss/akka/akka-testkit/src/main/scala/akka/testkit/javadsl/TestKit.scala, /Users/thanhbv/ohze/oss/akka/akka-testkit/src/main/scala/akka/testkit/package.scala
[error] ## Exception when compiling 17 sources to /Users/thanhbv/ohze/oss/akka/akka-testkit/target/scala-0.23/classes
[error] java.util.NoSuchElementException: class Object
[error] scala.collection.mutable.AnyRefMap$ExceptionDefault.apply(AnyRefMap.scala:495)
[error] scala.collection.mutable.AnyRefMap$ExceptionDefault.apply(AnyRefMap.scala:494)
[error] scala.collection.mutable.AnyRefMap.apply(AnyRefMap.scala:205)
[error] dotty.tools.backend.jvm.BCodeSkelBuilder$PlainSkelBuilder$locals$.load(BCodeSkelBuilder.scala:396)
[error] dotty.tools.backend.jvm.BCodeBodyBuilder$PlainBodyBuilder.genLoad(BCodeBodyBuilder.scala:393)
[error] dotty.tools.backend.jvm.BCodeBodyBuilder$PlainBodyBuilder.genLoadArguments$$anonfun$1(BCodeBodyBuilder.scala:1052)
[error] dotty.runtime.function.JProcedure1.apply(JProcedure1.java:15)
[error] dotty.runtime.function.JProcedure1.apply(JProcedure1.java:10)
[error] scala.collection.immutable.List.foreach(List.scala:305)
[error] dotty.tools.backend.jvm.BCodeBodyBuilder$PlainBodyBuilder.genLoadArguments(BCodeBodyBuilder.scala:1052)
[error] dotty.tools.backend.jvm.BCodeBodyBuilder$PlainBodyBuilder.genApply(BCodeBodyBuilder.scala:742)
[error] dotty.tools.backend.jvm.BCodeBodyBuilder$PlainBodyBuilder.genLoad(BCodeBodyBuilder.scala:339)
[error] dotty.tools.backend.jvm.BCodeBodyBuilder$PlainBodyBuilder.genBlock(BCodeBodyBuilder.scala:919)
[error] dotty.tools.backend.jvm.BCodeBodyBuilder$PlainBodyBuilder.genLoad(BCodeBodyBuilder.scala:410)
[error] dotty.tools.backend.jvm.BCodeBodyBuilder$PlainBodyBuilder.genBlock(BCodeBodyBuilder.scala:919)
[error] dotty.tools.backend.jvm.BCodeBodyBuilder$PlainBodyBuilder.genLoad(BCodeBodyBuilder.scala:410)
[error] dotty.tools.backend.jvm.BCodeSkelBuilder$PlainSkelBuilder.emitNormalMethodBody$1(BCodeSkelBuilder.scala:597)
[error] dotty.tools.backend.jvm.BCodeSkelBuilder$PlainSkelBuilder.genDefDef(BCodeSkelBuilder.scala:630)
[error] dotty.tools.backend.jvm.BCodeSkelBuilder$PlainSkelBuilder.gen(BCodeSkelBuilder.scala:501)
[error] dotty.tools.backend.jvm.BCodeSkelBuilder$PlainSkelBuilder.gen$$anonfun$1(BCodeSkelBuilder.scala:503)
[error] dotty.runtime.function.JProcedure1.apply(JProcedure1.java:15)
[error] dotty.runtime.function.JProcedure1.apply(JProcedure1.java:10)
[error] scala.collection.immutable.List.foreach(List.scala:305)
[error] dotty.tools.backend.jvm.BCodeSkelBuilder$PlainSkelBuilder.gen(BCodeSkelBuilder.scala:503)
[error] dotty.tools.backend.jvm.BCodeSkelBuilder$PlainSkelBuilder.genPlainClass(BCodeSkelBuilder.scala:109)
[error] dotty.tools.backend.jvm.GenBCodePipeline$Worker1.visit(GenBCode.scala:217)
[error] dotty.tools.backend.jvm.GenBCodePipeline$Worker1.run(GenBCode.scala:184)
[error] dotty.tools.backend.jvm.GenBCodePipeline.buildAndSendToDisk(GenBCode.scala:514)
[error] dotty.tools.backend.jvm.GenBCodePipeline.run(GenBCode.scala:480)
[error] dotty.tools.backend.jvm.GenBCode.run(GenBCode.scala:51)
[error] dotty.tools.dotc.core.Phases$Phase.runOn$$anonfun$1(Phases.scala:318)
[error] scala.collection.immutable.List.map(List.scala:219)
[error] dotty.tools.dotc.core.Phases$Phase.runOn(Phases.scala:319)
[error] dotty.tools.backend.jvm.GenBCode.runOn(GenBCode.scala:55)
[error] dotty.tools.dotc.Run.runPhases$4$$anonfun$4(Run.scala:167)
[error] dotty.runtime.function.JProcedure1.apply(JProcedure1.java:15)
[error] dotty.runtime.function.JProcedure1.apply(JProcedure1.java:10)
[error] scala.collection.ArrayOps$.foreach$extension(ArrayOps.scala:1323)
[error] dotty.tools.dotc.Run.runPhases$5(Run.scala:177)
[error] dotty.tools.dotc.Run.compileUnits$$anonfun$1(Run.scala:185)
[error] dotty.runtime.function.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12)
[error] dotty.tools.dotc.util.Stats$.maybeMonitored(Stats.scala:64)
[error] dotty.tools.dotc.Run.compileUnits(Run.scala:192)
[error] dotty.tools.dotc.Run.compileSources(Run.scala:129)
[error] dotty.tools.dotc.Run.compile(Run.scala:112)
[error] dotty.tools.dotc.Driver.doCompile(Driver.scala:36)
[error] dotty.tools.dotc.Driver.process(Driver.scala:189)
[error] dotty.tools.dotc.Main.process(Main.scala)
[error] xsbt.CachedCompilerImpl.run(CachedCompilerImpl.java:69)
[error] xsbt.CompilerInterface.run(CompilerInterface.java:41)
[error] sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[error] sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[error] sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[error] java.lang.reflect.Method.invoke(Method.java:498)
[error] sbt.internal.inc.AnalyzingCompiler.call(AnalyzingCompiler.scala:248)
[error] sbt.internal.inc.AnalyzingCompiler.compile(AnalyzingCompiler.scala:122)
[error] sbt.internal.inc.AnalyzingCompiler.compile(AnalyzingCompiler.scala:95)
[error] sbt.internal.inc.MixedAnalyzingCompiler.$anonfun$compile$4(MixedAnalyzingCompiler.scala:91)
[error] scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23)
[error] sbt.internal.inc.MixedAnalyzingCompiler.timed(MixedAnalyzingCompiler.scala:186)
[error] sbt.internal.inc.MixedAnalyzingCompiler.$anonfun$compile$3(MixedAnalyzingCompiler.scala:82)
[error] sbt.internal.inc.MixedAnalyzingCompiler.$anonfun$compile$3$adapted(MixedAnalyzingCompiler.scala:77)
[error] sbt.internal.inc.JarUtils$.withPreviousJar(JarUtils.scala:215)
[error] sbt.internal.inc.MixedAnalyzingCompiler.compileScala$1(MixedAnalyzingCompiler.scala:77)
[error] sbt.internal.inc.MixedAnalyzingCompiler.compile(MixedAnalyzingCompiler.scala:146)
[error] sbt.internal.inc.IncrementalCompilerImpl.$anonfun$compileInternal$1(IncrementalCompilerImpl.scala:343)
[error] sbt.internal.inc.IncrementalCompilerImpl.$anonfun$compileInternal$1$adapted(IncrementalCompilerImpl.scala:343)
[error] sbt.internal.inc.Incremental$.doCompile(Incremental.scala:120)
[error] sbt.internal.inc.Incremental$.$anonfun$compile$4(Incremental.scala:100)
[error] sbt.internal.inc.IncrementalCommon.recompileClasses(IncrementalCommon.scala:180)
[error] sbt.internal.inc.IncrementalCommon.cycle(IncrementalCommon.scala:98)
[error] sbt.internal.inc.Incremental$.$anonfun$compile$3(Incremental.scala:102)
[error] sbt.internal.inc.Incremental$.manageClassfiles(Incremental.scala:155)
[error] sbt.internal.inc.Incremental$.compile(Incremental.scala:92)
[error] sbt.internal.inc.IncrementalCompile$.apply(Compile.scala:75)
[error] sbt.internal.inc.IncrementalCompilerImpl.compileInternal(IncrementalCompilerImpl.scala:348)
[error] sbt.internal.inc.IncrementalCompilerImpl.$anonfun$compileIncrementally$1(IncrementalCompilerImpl.scala:301)
[error] sbt.internal.inc.IncrementalCompilerImpl.handleCompilationError(IncrementalCompilerImpl.scala:168)
[error] sbt.internal.inc.IncrementalCompilerImpl.compileIncrementally(IncrementalCompilerImpl.scala:248)
[error] sbt.internal.inc.IncrementalCompilerImpl.compile(IncrementalCompilerImpl.scala:74)
[error] sbt.Defaults$.compileIncrementalTaskImpl(Defaults.scala:1762)
[error] sbt.Defaults$.$anonfun$compileIncrementalTask$1(Defaults.scala:1735)
[error] scala.Function1.$anonfun$compose$1(Function1.scala:49)
[error] sbt.internal.util.$tilde$greater.$anonfun$$u2219$1(TypeFunctions.scala:62)
[error] sbt.std.Transform$$anon$4.work(Transform.scala:67)
[error] sbt.Execute.$anonfun$submit$2(Execute.scala:281)
[error] sbt.internal.util.ErrorHandling$.wideConvert(ErrorHandling.scala:19)
[error] sbt.Execute.work(Execute.scala:290)
[error] sbt.Execute.$anonfun$submit$1(Execute.scala:281)
[error] sbt.ConcurrentRestrictions$$anon$4.$anonfun$submitValid$1(ConcurrentRestrictions.scala:178)
[error] sbt.CompletionService$$anon$2.call(CompletionService.scala:37)
[error] java.util.concurrent.FutureTask.run(FutureTask.java:266)
[error] java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
[error] java.util.concurrent.FutureTask.run(FutureTask.java:266)
[error] java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
[error] java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
[error] java.lang.Thread.run(Thread.java:748)
maybe related to #5044
:( I can't create a minimized code to reproduce the error.
Is there anything in particular which is preventing you from minimizing it ? A good strategy is to replace the body of methods with ??? where possible, then start deleting code.
I tried that way but the simplified code is compiled successfully 馃お
Edit: Oh. To clear, I am @ohze.
(I use 2 github accounts and just now, because a specific reason relate to vovid-19 馃槩馃榿, I have to use this account)
Minimized:
trait T
trait U
class Test(x: Any)(using val t: T = ???)(using val u: U = ???, disregard: Any = ???)
object Test {
def apply() = new Test(???)
}
[info] Compiling 1 Scala source to /src/dotty-issues/i8424/target/scala-0.23/classes ...
Error while emitting Main.scala
[info] exception occurred while compiling /src/dotty-issues/i8424/src/main/scala/Main.scala
java.util.NoSuchElementException: class Object while compiling /src/dotty-issues/i8424/src/main/scala/Main.scala
[error] ## Exception when compiling 1 sources to /src/dotty-issues/i8424/target/scala-0.23/classes
[error] java.util.NoSuchElementException: class Object
[error] scala.collection.mutable.AnyRefMap$ExceptionDefault.apply(AnyRefMap.scala:495)
[error] scala.collection.mutable.AnyRefMap$ExceptionDefault.apply(AnyRefMap.scala:494)
[error] scala.collection.mutable.AnyRefMap.apply(AnyRefMap.scala:205)
[error] dotty.tools.backend.jvm.BCodeSkelBuilder$PlainSkelBuilder$locals$.load(BCodeSkelBuilder.scala:396)
[error] dotty.tools.backend.jvm.BCodeBodyBuilder$PlainBodyBuilder.genLoad(BCodeBodyBuilder.scala:393)
[error] dotty.tools.backend.jvm.BCodeBodyBuilder$PlainBodyBuilder.genLoadArguments$$anonfun$1(BCodeBodyBuilder.scala:1052)
...
The , disregard: Any = portion was taken verbatim from the reporting codebase, although a complex match expression was originally on the RHS.
Note that this issue was filed against Dotty 0.23.0-bin-20200301-d989caf-NIGHTLY. I have not yet tried more recent versions.
Update: tested on newer versions up through 0.28.0-bin-20200924-7ee3a20-NIGHTLY. Still crashes, although the error message changed beginning with 0.25.0.
Output (click to expand)
error when pickling type A
error when pickling tree A
error when pickling tree $conforms[A]
error when pickling tree disregard = $conforms[A]
error when pickling tree new Test(x$1)(using t$1)(using Test.$lessinit$greater$default$3(x$1)(t$1),
disregard = $conforms[A]
)
error when pickling tree {
val x$1: Nothing = ???
val t$1: Nothing = Test.$lessinit$greater$default$2(x$1)
new Test(x$1)(using t$1)(using Test.$lessinit$greater$default$3(x$1)(t$1),
disregard = $conforms[A]
)
}
error when pickling tree def apply(): Test =
{
val x$1: Nothing = ???
val t$1: Nothing = Test.$lessinit$greater$default$2(x$1)
new Test(x$1)(using t$1)(using Test.$lessinit$greater$default$3(x$1)(t$1),
disregard = $conforms[A]
)
}
error when pickling tree () extends Object() { this: Test.type =>
private def writeReplace(): AnyRef =
new scala.runtime.ModuleSerializationProxy(classOf[Test.type])
def $lessinit$greater$default$2(x: Any): Nothing = ???
def $lessinit$greater$default$3(x: Any)(using t: T): Nothing = ???
def $lessinit$greater$default$4(x: Any)(using t: T): Nothing = ???
def apply(): Test =
{
val x$1: Nothing = ???
val t$1: Nothing = Test.$lessinit$greater$default$2(x$1)
new Test(x$1)(using t$1)(using Test.$lessinit$greater$default$3(x$1)(t$1)
,
disregard = $conforms[A])
}
}
error when pickling tree @scala.annotation.internal.SourceFile("Main.scala") final module class Test$()
extends
Object() { this: Test.type =>
private def writeReplace(): AnyRef =
new scala.runtime.ModuleSerializationProxy(classOf[Test.type])
def $lessinit$greater$default$2(x: Any): Nothing = ???
def $lessinit$greater$default$3(x: Any)(using t: T): Nothing = ???
def $lessinit$greater$default$4(x: Any)(using t: T): Nothing = ???
def apply(): Test =
{
val x$1: Nothing = ???
val t$1: Nothing = Test.$lessinit$greater$default$2(x$1)
new Test(x$1)(using t$1)(using Test.$lessinit$greater$default$3(x$1)(t$1)
,
disregard = $conforms[A])
}
}
error when pickling tree package <empty> {
@scala.annotation.internal.SourceFile("Main.scala") class Test(x: Any)(using
t: T
)(using u: U, disregard: Any) extends Object() {
private[this] val x: Any
given val t: T
given val u: U
private[this] given val disregard: Any
}
final lazy module val Test: Test$ = new Test$()
@scala.annotation.internal.SourceFile("Main.scala") final module class Test$()
extends
Object() { this: Test.type =>
private def writeReplace(): AnyRef =
new scala.runtime.ModuleSerializationProxy(classOf[Test.type])
def $lessinit$greater$default$2(x: Any): Nothing = ???
def $lessinit$greater$default$3(x: Any)(using t: T): Nothing = ???
def $lessinit$greater$default$4(x: Any)(using t: T): Nothing = ???
def apply(): Test =
{
val x$1: Nothing = ???
val t$1: Nothing = Test.$lessinit$greater$default$2(x$1)
new Test(x$1)(using t$1)(using
Test.$lessinit$greater$default$3(x$1)(t$1)
, disregard = $conforms[A])
}
}
}
exception occurred while compiling Main.scala
java.lang.AssertionError: assertion failed: orphan parameter reference: TypeParamRef(A) while compiling Main.scala
Exception in thread "main" java.lang.AssertionError: assertion failed: orphan parameter reference: TypeParamRef(A)
at dotty.DottyPredef$.assertFail(DottyPredef.scala:17)
at dotty.tools.dotc.core.tasty.TreePickler.pickleNewType(TreePickler.scala:300)
at dotty.tools.dotc.core.tasty.TreePickler.pickleType(TreePickler.scala:175)
at dotty.tools.dotc.core.tasty.TreePickler.pickleTree(TreePickler.scala:599)
at dotty.tools.dotc.core.tasty.TreePickler.pickleTpt(TreePickler.scala:327)
at dotty.tools.dotc.core.tasty.TreePickler.pickleTree$$anonfun$38$$anonfun$1(TreePickler.scala:444)
at dotty.runtime.function.JProcedure1.apply(JProcedure1.java:15)
at dotty.runtime.function.JProcedure1.apply(JProcedure1.java:10)
at scala.collection.immutable.List.foreach(List.scala:333)
at dotty.tools.dotc.core.tasty.TreePickler.pickleTree$$anonfun$4(TreePickler.scala:444)
at dotty.runtime.function.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12)
at dotty.tools.dotc.core.tasty.TreePickler.withLength(TreePickler.scala:70)
at dotty.tools.dotc.core.tasty.TreePickler.pickleTree(TreePickler.scala:445)
at dotty.tools.dotc.core.tasty.TreePickler.pickleTree(TreePickler.scala:471)
at dotty.tools.dotc.core.tasty.TreePickler.pickleTree$$anonfun$37$$anonfun$1(TreePickler.scala:437)
at dotty.runtime.function.JProcedure1.apply(JProcedure1.java:15)
at dotty.runtime.function.JProcedure1.apply(JProcedure1.java:10)
at scala.collection.immutable.List.foreach(List.scala:333)
at dotty.tools.dotc.core.tasty.TreePickler.pickleTree$$anonfun$3(TreePickler.scala:437)
at dotty.runtime.function.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12)
at dotty.tools.dotc.core.tasty.TreePickler.withLength(TreePickler.scala:70)
at dotty.tools.dotc.core.tasty.TreePickler.pickleTree(TreePickler.scala:438)
at dotty.tools.dotc.core.tasty.TreePickler.pickleTree$$anonfun$9(TreePickler.scala:478)
at dotty.runtime.function.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12)
at dotty.tools.dotc.core.tasty.TreePickler.withLength(TreePickler.scala:70)
at dotty.tools.dotc.core.tasty.TreePickler.pickleTree(TreePickler.scala:478)
at dotty.tools.dotc.core.tasty.TreePickler.pickleTreeUnlessEmpty(TreePickler.scala:330)
at dotty.tools.dotc.core.tasty.TreePickler.pickleDef$$anonfun$2(TreePickler.scala:345)
at dotty.runtime.function.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12)
at dotty.tools.dotc.core.tasty.TreePickler.withLength(TreePickler.scala:70)
at dotty.tools.dotc.core.tasty.TreePickler.pickleDef(TreePickler.scala:347)
at dotty.tools.dotc.core.tasty.TreePickler.pickleTree(TreePickler.scala:561)
at dotty.tools.dotc.core.tasty.TreePickler.pickleStats$$anonfun$2(TreePickler.scala:371)
at dotty.runtime.function.JProcedure1.apply(JProcedure1.java:15)
at dotty.runtime.function.JProcedure1.apply(JProcedure1.java:10)
at scala.collection.immutable.List.foreach(List.scala:333)
at dotty.tools.dotc.core.tasty.TreePickler.pickleStats(TreePickler.scala:371)
at dotty.tools.dotc.core.tasty.TreePickler.pickleTree$$anonfun$26(TreePickler.scala:587)
at dotty.runtime.function.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12)
at dotty.tools.dotc.core.tasty.TreePickler.withLength(TreePickler.scala:70)
at dotty.tools.dotc.core.tasty.TreePickler.pickleTree(TreePickler.scala:588)
at dotty.tools.dotc.core.tasty.TreePickler.pickleDef$$anonfun$2(TreePickler.scala:342)
at dotty.runtime.function.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12)
at dotty.tools.dotc.core.tasty.TreePickler.withLength(TreePickler.scala:70)
at dotty.tools.dotc.core.tasty.TreePickler.pickleDef(TreePickler.scala:347)
at dotty.tools.dotc.core.tasty.TreePickler.pickleTree(TreePickler.scala:563)
at dotty.tools.dotc.core.tasty.TreePickler.pickleStats$$anonfun$2(TreePickler.scala:371)
at dotty.runtime.function.JProcedure1.apply(JProcedure1.java:15)
at dotty.runtime.function.JProcedure1.apply(JProcedure1.java:10)
at scala.collection.immutable.List.foreach(List.scala:333)
at dotty.tools.dotc.core.tasty.TreePickler.pickleStats(TreePickler.scala:371)
at dotty.tools.dotc.core.tasty.TreePickler.pickleTree$$anonfun$28(TreePickler.scala:597)
at dotty.runtime.function.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12)
at dotty.tools.dotc.core.tasty.TreePickler.withLength(TreePickler.scala:70)
at dotty.tools.dotc.core.tasty.TreePickler.pickleTree(TreePickler.scala:597)
at dotty.tools.dotc.core.tasty.TreePickler.pickle$$anonfun$1(TreePickler.scala:766)
at dotty.runtime.function.JProcedure1.apply(JProcedure1.java:15)
at dotty.runtime.function.JProcedure1.apply(JProcedure1.java:10)
at scala.collection.immutable.List.foreach(List.scala:333)
at dotty.tools.dotc.core.tasty.TreePickler.pickle(TreePickler.scala:766)
at dotty.tools.dotc.transform.Pickler.run$$anonfun$3$$anonfun$2(Pickler.scala:69)
at dotty.runtime.function.JProcedure1.apply(JProcedure1.java:15)
at dotty.runtime.function.JProcedure1.apply(JProcedure1.java:10)
at scala.collection.immutable.List.foreach(List.scala:333)
at dotty.tools.dotc.transform.Pickler.run$$anonfun$1(Pickler.scala:105)
at dotty.runtime.function.JProcedure1.apply(JProcedure1.java:15)
at dotty.runtime.function.JProcedure1.apply(JProcedure1.java:10)
at scala.collection.immutable.List.foreach(List.scala:333)
at dotty.tools.dotc.transform.Pickler.run(Pickler.scala:105)
at dotty.tools.dotc.core.Phases$Phase.runOn$$anonfun$1(Phases.scala:296)
at scala.collection.immutable.List.map(List.scala:246)
at dotty.tools.dotc.core.Phases$Phase.runOn(Phases.scala:297)
at dotty.tools.dotc.transform.Pickler.runOn(Pickler.scala:110)
at dotty.tools.dotc.Run.runPhases$4$$anonfun$4(Run.scala:185)
at dotty.runtime.function.JProcedure1.apply(JProcedure1.java:15)
at dotty.runtime.function.JProcedure1.apply(JProcedure1.java:10)
at scala.collection.ArrayOps$.foreach$extension(ArrayOps.scala:1323)
at dotty.tools.dotc.Run.runPhases$5(Run.scala:195)
at dotty.tools.dotc.Run.compileUnits$$anonfun$1(Run.scala:203)
at dotty.runtime.function.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12)
at dotty.tools.dotc.util.Stats$.maybeMonitored(Stats.scala:63)
at dotty.tools.dotc.Run.compileUnits(Run.scala:210)
at dotty.tools.dotc.Run.compileSources(Run.scala:147)
at dotty.tools.dotc.Run.compile(Run.scala:129)
at dotty.tools.dotc.Driver.doCompile(Driver.scala:38)
at dotty.tools.dotc.Driver.process(Driver.scala:195)
at dotty.tools.dotc.Driver.process(Driver.scala:164)
at dotty.tools.dotc.Driver.process(Driver.scala:176)
at dotty.tools.dotc.Driver.main(Driver.scala:203)
at dotty.tools.dotc.Main.main(Main.scala)
P.S. I hope not to make a habit of minimizing others' 75KLOC Akka codebases submitted as bug reports. 馃槵
To all bug reporters: it is very helpful to attempt to minimize your code before submitting! This example shows it can be done!
Alternatively:
trait T
def test(x: Any)(using t: T = ???)(using u: T = ???, disregard: Any): Any = ???
val a = test(???)
Amazing minimization @griggt :sweat_smile:, in your last example we can go a bit further and still get the TreePickler crash:
object Test {
def test(using u: String = ???, disregard: Any): Any = ???
val a = test
}
The generated tree for a does look weird:
val a: Any = Test.test(using Test.test$default$1, disregard = $conforms[A])
$conforms[A] doesn't make sense since there isn't any A in scope, somehow this problem doesn't appear if I do this:
object Test {
def test(using u: Any = ???, disregard: Any): Any = ???
val a = test
}
Now the generated tree for a is:
val a: Any = Test.test($conforms[Any], $conforms[Any])
as expected.
Most helpful comment
P.S. I hope not to make a habit of minimizing others' 75KLOC Akka codebases submitted as bug reports. 馃槵
To all bug reporters: it is very helpful to attempt to minimize your code before submitting! This example shows it can be done!