found when testing Result in lampepfl/steps. This crashes with not too much detail other than stack trace.
Compiler version
3.8.4, 3.9.0-RC5
Minimized code
// Lib.scala
import language.experimental.captureChecking
object Lib:
def wrap[T](t: T): T = t // simulate e.g. constructor call for case class Result.Ok
inline def make[T](x: => T): T = wrap(x) // simple form of Result.cond(predicate, ifTrue, orElse)
// Use.scala
import language.experimental.captureChecking
val a = Lib.make(1)
$ mkdir libout
$ scala compile -S 3.9.0-RC5 -d libout Lib.scala
$ scala compile -S 3.9.0-RC5 -cp libout Use.scala
Output (click arrow to expand)
Details
Error: Unexpected error when compiling repro-cond-crash_46c42ec178-b2cdff6dde: java.lang.AssertionError: assertion failed
at scala.runtime.Scala3RunTime$.assertFailed(Scala3RunTime.scala:13)
at dotty.tools.dotc.cc.CaptureOps$package$.recur$1(CaptureOps.scala:245)
at dotty.tools.dotc.cc.CaptureOps$package$.boxDeeply(CaptureOps.scala:268)
at dotty.tools.dotc.cc.Setup$$anon$2.transformTT(Setup.scala:610)
at dotty.tools.dotc.cc.Setup$$anon$2.traverse$$anonfun$5(Setup.scala:679)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
at scala.collection.AbstractIterable.foreach(Iterable.scala:979)
at scala.collection.IterableOps$WithFilter.foreach(Iterable.scala:946)
at dotty.tools.dotc.cc.Setup$$anon$2.traverse(Setup.scala:674)
at dotty.tools.dotc.ast.Trees$Instance$TreeTraverser.apply(Trees.scala:1819)
at dotty.tools.dotc.ast.Trees$Instance$TreeTraverser.apply(Trees.scala:1819)
at dotty.tools.dotc.ast.Trees$Instance$TreeAccumulator.foldOver(Trees.scala:1702)
at dotty.tools.dotc.ast.Trees$Instance$TreeTraverser.traverseChildren(Trees.scala:1820)
at dotty.tools.dotc.cc.Setup$$anon$2.traverse(Setup.scala:650)
at dotty.tools.dotc.ast.Trees$Instance$TreeTraverser.apply(Trees.scala:1819)
at dotty.tools.dotc.ast.Trees$Instance$TreeTraverser.apply(Trees.scala:1819)
at dotty.tools.dotc.ast.Trees$Instance$TreeAccumulator.foldOver(Trees.scala:1710)
at dotty.tools.dotc.ast.Trees$Instance$TreeAccumulator.foldOver(Trees.scala:1689)
at dotty.tools.dotc.ast.Trees$Instance$TreeTraverser.traverseChildren(Trees.scala:1820)
at dotty.tools.dotc.cc.Setup$$anon$2.traverse(Setup.scala:708)
at dotty.tools.dotc.ast.Trees$Instance$TreeTraverser.apply(Trees.scala:1819)
at dotty.tools.dotc.ast.Trees$Instance$TreeTraverser.apply(Trees.scala:1819)
at dotty.tools.dotc.ast.Trees$Instance$TreeAccumulator.foldOver(Trees.scala:1736)
at dotty.tools.dotc.ast.Trees$Instance$TreeTraverser.traverseChildren(Trees.scala:1820)
at dotty.tools.dotc.cc.Setup$$anon$2.traverse(Setup.scala:708)
at dotty.tools.dotc.cc.Setup$$anon$2.traverse(Setup.scala:667)
at dotty.tools.dotc.ast.tpd$TreeTraverserWithPreciseImportContexts.recur$2(tpd.scala:1360)
at dotty.tools.dotc.ast.tpd$TreeTraverserWithPreciseImportContexts.apply(tpd.scala:1363)
at dotty.tools.dotc.ast.tpd$TreeTraverserWithPreciseImportContexts.apply(tpd.scala:1355)
at dotty.tools.dotc.ast.Trees$Instance$TreeTraverser.traverse(Trees.scala:1818)
at dotty.tools.dotc.ast.tpd$TreeTraverserWithPreciseImportContexts.recur$2(tpd.scala:1361)
at dotty.tools.dotc.ast.tpd$TreeTraverserWithPreciseImportContexts.apply(tpd.scala:1363)
at dotty.tools.dotc.ast.tpd$TreeTraverserWithPreciseImportContexts.apply(tpd.scala:1355)
at dotty.tools.dotc.ast.Trees$Instance$TreeTraverser.traverse(Trees.scala:1818)
at dotty.tools.dotc.ast.tpd$TreeTraverserWithPreciseImportContexts.recur$2(tpd.scala:1361)
at dotty.tools.dotc.ast.tpd$TreeTraverserWithPreciseImportContexts.apply(tpd.scala:1363)
at dotty.tools.dotc.ast.tpd$TreeTraverserWithPreciseImportContexts.apply(tpd.scala:1355)
at dotty.tools.dotc.ast.Trees$Instance$TreeAccumulator.foldOver(Trees.scala:1778)
at dotty.tools.dotc.ast.Trees$Instance$TreeTraverser.traverseChildren(Trees.scala:1820)
at dotty.tools.dotc.cc.Setup$$anon$2.traverse(Setup.scala:708)
at dotty.tools.dotc.ast.Trees$Instance$TreeTraverser.apply(Trees.scala:1819)
at dotty.tools.dotc.ast.Trees$Instance$TreeTraverser.apply(Trees.scala:1819)
at dotty.tools.dotc.ast.Trees$Instance$TreeAccumulator.foldOver(Trees.scala:1775)
at dotty.tools.dotc.ast.Trees$Instance$TreeTraverser.traverseChildren(Trees.scala:1820)
at dotty.tools.dotc.cc.Setup$$anon$2.traverse(Setup.scala:684)
at dotty.tools.dotc.ast.tpd$TreeTraverserWithPreciseImportContexts.recur$2(tpd.scala:1360)
at dotty.tools.dotc.ast.tpd$TreeTraverserWithPreciseImportContexts.apply(tpd.scala:1363)
at dotty.tools.dotc.ast.tpd$TreeTraverserWithPreciseImportContexts.apply(tpd.scala:1355)
at dotty.tools.dotc.ast.Trees$Instance$TreeTraverser.traverse(Trees.scala:1818)
at dotty.tools.dotc.ast.tpd$TreeTraverserWithPreciseImportContexts.recur$2(tpd.scala:1361)
at dotty.tools.dotc.ast.tpd$TreeTraverserWithPreciseImportContexts.apply(tpd.scala:1363)
at dotty.tools.dotc.ast.tpd$TreeTraverserWithPreciseImportContexts.apply(tpd.scala:1355)
at dotty.tools.dotc.ast.Trees$Instance$TreeTraverser.traverse(Trees.scala:1818)
at dotty.tools.dotc.ast.tpd$TreeTraverserWithPreciseImportContexts.recur$2(tpd.scala:1358)
at dotty.tools.dotc.ast.tpd$TreeTraverserWithPreciseImportContexts.apply(tpd.scala:1363)
at dotty.tools.dotc.ast.tpd$TreeTraverserWithPreciseImportContexts.apply(tpd.scala:1355)
at dotty.tools.dotc.ast.Trees$Instance$TreeAccumulator.foldOver(Trees.scala:1784)
at dotty.tools.dotc.ast.Trees$Instance$TreeTraverser.traverseChildren(Trees.scala:1820)
at dotty.tools.dotc.cc.Setup$$anon$2.traverse(Setup.scala:708)
at dotty.tools.dotc.cc.Setup.setupUnit(Setup.scala:1040)
at dotty.tools.dotc.cc.CheckCaptures$CaptureChecker.checkUnit(CheckCaptures.scala:2249)
at dotty.tools.dotc.transform.Recheck.run(Recheck.scala:154)
at dotty.tools.dotc.cc.CheckCaptures.run(CheckCaptures.scala:280)
at dotty.tools.dotc.core.Phases$Phase.runOn$$anonfun$1(Phases.scala:405)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
at scala.collection.immutable.List.foreach(List.scala:331)
at dotty.tools.dotc.core.Phases$Phase.runOn(Phases.scala:397)
at dotty.tools.dotc.transform.Recheck.runOn(Recheck.scala:158)
at dotty.tools.dotc.cc.CheckCaptures.runOn(CheckCaptures.scala:276)
at dotty.tools.dotc.Run.runPhases$1(Run.scala:412)
at dotty.tools.dotc.Run.compileUnits$$anonfun$1$$anonfun$2(Run.scala:454)
at dotty.tools.dotc.Run.compileUnits$$anonfun$1$$anonfun$adapted$1(Run.scala:454)
at scala.Function0.apply$mcV$sp(Function0.scala:42)
at dotty.tools.dotc.Run.showProgress(Run.scala:517)
at dotty.tools.dotc.Run.compileUnits$$anonfun$1(Run.scala:454)
at dotty.tools.dotc.Run.compileUnits$$anonfun$adapted$1(Run.scala:467)
at dotty.tools.dotc.util.Stats$.maybeMonitored(Stats.scala:69)
at dotty.tools.dotc.Run.compileUnits(Run.scala:467)
at dotty.tools.dotc.Run.compileSources(Run.scala:342)
at dotty.tools.dotc.Run.compile(Run.scala:327)
at dotty.tools.dotc.Driver.doCompile(Driver.scala:36)
at dotty.tools.xsbt.CompilerBridgeDriver.run(CompilerBridgeDriver.java:141)
at dotty.tools.xsbt.CompilerBridge.run(CompilerBridge.java:22)
at sbt.internal.inc.AnalyzingCompiler.compile(AnalyzingCompiler.scala:91)
at sbt.internal.inc.bloop.internal.BloopHighLevelCompiler.compileSources$1(BloopHighLevelCompiler.scala:148)
at sbt.internal.inc.bloop.internal.BloopHighLevelCompiler.$anonfun$compile$9(BloopHighLevelCompiler.scala:181)
at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23)
at sbt.internal.inc.bloop.internal.BloopHighLevelCompiler.$anonfun$compile$1(BloopHighLevelCompiler.scala:73)
at bloop.tracing.NoopTracer$.trace(BraveTracer.scala:53)
at sbt.internal.inc.bloop.internal.BloopHighLevelCompiler.timed$1(BloopHighLevelCompiler.scala:72)
at sbt.internal.inc.bloop.internal.BloopHighLevelCompiler.$anonfun$compile$8(BloopHighLevelCompiler.scala:181)
at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23)
at monix.eval.internal.TaskRunLoop$.startFull(TaskRunLoop.scala:81)
at monix.eval.internal.TaskRestartCallback.syncOnSuccess(TaskRestartCallback.scala:101)
at monix.eval.internal.TaskRestartCallback.onSuccess(TaskRestartCallback.scala:74)
at monix.eval.internal.TaskExecuteOn$AsyncRegister$$anon$1.run(TaskExecuteOn.scala:71)
at java.base/java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1423)
at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:387)
at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1312)
at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1843)
at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1808)
at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:188)
found when testing Result in lampepfl/steps. This crashes with not too much detail other than stack trace.
Compiler version
3.8.4, 3.9.0-RC5
Minimized code
Output (click arrow to expand)
Details