Closed
Description
Compiler version
3.0.0
Minimized code
package x
trait CpsMonad[F[_]]:
def pure[A](x:A): F[A]
def flatMap[A,B](fa:F[A])(f: A=>F[B]): F[B]
abstract sealed class CpsStream[-F[_],+T]
case class Cons[F[_],T](head:T, tailFun: ()=>F[CpsStream[F,T]]) extends CpsStream[F,T]
case class Empty[F[_]]() extends CpsStream[F,Nothing]
def unfold[S,F[_]:CpsMonad,T](s0:S)(f:S => F[Option[(S,T)]]):F[CpsStream[F,T]] =
summon[CpsMonad[F]].flatMap(f(s0)){
case Some(s1,a) => Cons(a, () => unfold(s1,f))
case None => summon[CpsMonad[F]].pure(Empty[F]())
}
Output (click arrow to expand)
[info] welcome to sbt 1.5.2 (N/A Java 15.0.2)
[info] loading global plugins from /Users/rssh/.sbt/1.0/plugins
[info] loading project definition from /Users/rssh/tests/dotty/crash-asyncstream/project
[info] loading settings for project root from build.sbt ...
[info] set current project to incorrect-notfound (in build file:/Users/rssh/tests/dotty/crash-asyncstream/)
[info] Executing in batch mode. For better performance use sbt's shell
[info] compiling 1 Scala source to /Users/rssh/tests/dotty/crash-asyncstream/target/scala-3.0.0/classes ...
java.lang.StackOverflowError while compiling /Users/rssh/tests/dotty/crash-asyncstream/src/main/scala/x/X.scala
[error] ## Exception when compiling 1 sources to /Users/rssh/tests/dotty/crash-asyncstream/target/scala-3.0.0/classes
[error] java.lang.StackOverflowError
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldOver(Types.scala:5628)
[error] dotty.tools.dotc.typer.Inferencing$IsFullyDefinedAccumulator.apply(Inferencing.scala:191)
[error] dotty.tools.dotc.typer.Inferencing$IsFullyDefinedAccumulator.apply(Inferencing.scala:168)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldOver(Types.scala:5644)
[error] dotty.tools.dotc.typer.Inferencing$IsFullyDefinedAccumulator.apply(Inferencing.scala:191)
[error] dotty.tools.dotc.typer.Inferencing$IsFullyDefinedAccumulator.apply(Inferencing.scala:168)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.op$proxy22$1(Types.scala:5640)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldArgs$1(Types.scala:5640)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldOver(Types.scala:5644)
[error] dotty.tools.dotc.typer.Inferencing$IsFullyDefinedAccumulator.apply(Inferencing.scala:191)
[error] dotty.tools.dotc.typer.Inferencing$IsFullyDefinedAccumulator.apply(Inferencing.scala:168)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.op$proxy22$1(Types.scala:5640)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldArgs$1(Types.scala:5640)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldOver(Types.scala:5644)
[error] dotty.tools.dotc.typer.Inferencing$IsFullyDefinedAccumulator.apply(Inferencing.scala:191)
[error] dotty.tools.dotc.typer.Inferencing$IsFullyDefinedAccumulator.apply(Inferencing.scala:168)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.op$proxy22$1(Types.scala:5640)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldArgs$1(Types.scala:5640)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldOver(Types.scala:5644)
[error] dotty.tools.dotc.typer.Inferencing$IsFullyDefinedAccumulator.apply(Inferencing.scala:191)
[error] dotty.tools.dotc.typer.Inferencing$IsFullyDefinedAccumulator.apply(Inferencing.scala:168)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldOver(Types.scala:5654)
[error] dotty.tools.dotc.typer.Inferencing$IsFullyDefinedAccumulator.apply(Inferencing.scala:191)
[error] dotty.tools.dotc.typer.Inferencing$IsFullyDefinedAccumulator.apply(Inferencing.scala:168)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.op$proxy22$1(Types.scala:5640)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldArgs$1(Types.scala:5640)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldOver(Types.scala:5644)
[error] dotty.tools.dotc.typer.Inferencing$IsFullyDefinedAccumulator.apply(Inferencing.scala:191)
[error] dotty.tools.dotc.typer.Inferencing$IsFullyDefinedAccumulator.apply(Inferencing.scala:168)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.op$proxy22$1(Types.scala:5640)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldArgs$1(Types.scala:5640)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldOver(Types.scala:5644)
[error] dotty.tools.dotc.typer.Inferencing$IsFullyDefinedAccumulator.apply(Inferencing.scala:191)
[error] dotty.tools.dotc.typer.Inferencing$IsFullyDefinedAccumulator.apply(Inferencing.scala:168)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.op$proxy22$1(Types.scala:5640)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldArgs$1(Types.scala:5640)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldOver(Types.scala:5644)
[error] dotty.tools.dotc.typer.Inferencing$IsFullyDefinedAccumulator.apply(Inferencing.scala:191)
[error] dotty.tools.dotc.typer.Inferencing$IsFullyDefinedAccumulator.apply(Inferencing.scala:168)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldOver(Types.scala:5654)
[error] dotty.tools.dotc.typer.Inferencing$IsFullyDefinedAccumulator.apply(Inferencing.scala:191)
[error] dotty.tools.dotc.typer.Inferencing$IsFullyDefinedAccumulator.apply(Inferencing.scala:168)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.op$proxy22$1(Types.scala:5640)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldArgs$1(Types.scala:5640)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldOver(Types.scala:5644)
[error] dotty.tools.dotc.typer.Inferencing$IsFullyDefinedAccumulator.apply(Inferencing.scala:191)
[error] dotty.tools.dotc.typer.Inferencing$IsFullyDefinedAccumulator.apply(Inferencing.scala:168)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.op$proxy22$1(Types.scala:5640)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldArgs$1(Types.scala:5640)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldOver(Types.scala:5644)
[error] dotty.tools.dotc.typer.Inferencing$IsFullyDefinedAccumulator.apply(Inferencing.scala:191)
[error] dotty.tools.dotc.typer.Inferencing$IsFullyDefinedAccumulator.apply(Inferencing.scala:168)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.op$proxy22$1(Types.scala:5640)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldArgs$1(Types.scala:5640)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldOver(Types.scala:5644)
[error] dotty.tools.dotc.typer.Inferencing$IsFullyDefinedAccumulator.apply(Inferencing.scala:191)
[error] dotty.tools.dotc.typer.Inferencing$IsFullyDefinedAccumulator.apply(Inferencing.scala:168)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldOver(Types.scala:5654)
[error] dotty.tools.dotc.typer.Inferencing$IsFullyDefinedAccumulator.apply(Inferencing.scala:191)
[error] dotty.tools.dotc.typer.Inferencing$IsFullyDefinedAccumulator.apply(Inferencing.scala:168)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.op$proxy22$1(Types.scala:5640)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldArgs$1(Types.scala:5640)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldOver(Types.scala:5644)
[error] dotty.tools.dotc.typer.Inferencing$IsFullyDefinedAccumulator.apply(Inferencing.scala:191)
[error] dotty.tools.dotc.typer.Inferencing$IsFullyDefinedAccumulator.apply(Inferencing.scala:168)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.op$proxy22$1(Types.scala:5640)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldArgs$1(Types.scala:5640)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldOver(Types.scala:5644)
[error] dotty.tools.dotc.typer.Inferencing$IsFullyDefinedAccumulator.apply(Inferencing.scala:191)
[error] dotty.tools.dotc.typer.Inferencing$IsFullyDefinedAccumulator.apply(Inferencing.scala:168)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.op$proxy22$1(Types.scala:5640)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldArgs$1(Types.scala:5640)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldOver(Types.scala:5644)
[error] dotty.tools.dotc.typer.Inferencing$IsFullyDefinedAccumulator.apply(Inferencing.scala:191)
[error] dotty.tools.dotc.typer.Inferencing$IsFullyDefinedAccumulator.apply(Inferencing.scala:168)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldOver(Types.scala:5654)
[error] dotty.tools.dotc.typer.Inferencing$IsFullyDefinedAccumulator.apply(Inferencing.scala:191)
[error] dotty.tools.dotc.typer.Inferencing$IsFullyDefinedAccumulator.apply(Inferencing.scala:168)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.op$proxy22$1(Types.scala:5640)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldArgs$1(Types.scala:5640)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldOver(Types.scala:5644)
[error] dotty.tools.dotc.typer.Inferencing$IsFullyDefinedAccumulator.apply(Inferencing.scala:191)
[error] dotty.tools.dotc.typer.Inferencing$IsFullyDefinedAccumulator.apply(Inferencing.scala:168)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.op$proxy22$1(Types.scala:5640)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldArgs$1(Types.scala:5640)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldOver(Types.scala:5644)
[error] dotty.tools.dotc.typer.Inferencing$IsFullyDefinedAccumulator.apply(Inferencing.scala:191)
[error] dotty.tools.dotc.typer.Inferencing$IsFullyDefinedAccumulator.apply(Inferencing.scala:168)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.op$proxy22$1(Types.scala:5640)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldArgs$1(Types.scala:5640)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldOver(Types.scala:5644)
[error] dotty.tools.dotc.typer.Inferencing$IsFullyDefinedAccumulator.apply(Inferencing.scala:191)
[error] dotty.tools.dotc.typer.Inferencing$IsFullyDefinedAccumulator.apply(Inferencing.scala:168)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldOver(Types.scala:5654)
[error] dotty.tools.dotc.typer.Inferencing$IsFullyDefinedAccumulator.apply(Inferencing.scala:191)
[error] dotty.tools.dotc.typer.Inferencing$IsFullyDefinedAccumulator.apply(Inferencing.scala:168)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.op$proxy22$1(Types.scala:5640)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldArgs$1(Types.scala:5640)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldOver(Types.scala:5644)
[error] dotty.tools.dotc.typer.Inferencing$IsFullyDefinedAccumulator.apply(Inferencing.scala:191)
[error] dotty.tools.dotc.typer.Inferencing$IsFullyDefinedAccumulator.apply(Inferencing.scala:168)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.op$proxy22$1(Types.scala:5640)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldArgs$1(Types.scala:5640)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldOver(Types.scala:5644)
[error] dotty.tools.dotc.typer.Inferencing$IsFullyDefinedAccumulator.apply(Inferencing.scala:191)
[error] dotty.tools.dotc.typer.Inferencing$IsFullyDefinedAccumulator.apply(Inferencing.scala:168)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.op$proxy22$1(Types.scala:5640)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldArgs$1(Types.scala:5640)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldOver(Types.scala:5644)
[error] dotty.tools.dotc.typer.Inferencing$IsFullyDefinedAccumulator.apply(Inferencing.scala:191)
[error] dotty.tools.dotc.typer.Inferencing$IsFullyDefinedAccumulator.apply(Inferencing.scala:168)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldOver(Types.scala:5654)
[error] dotty.tools.dotc.typer.Inferencing$IsFullyDefinedAccumulator.apply(Inferencing.scala:191)
[error] dotty.tools.dotc.typer.Inferencing$IsFullyDefinedAccumulator.apply(Inferencing.scala:168)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.op$proxy22$1(Types.scala:5640)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldArgs$1(Types.scala:5640)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldOver(Types.scala:5644)
[error] dotty.tools.dotc.typer.Inferencing$IsFullyDefinedAccumulator.apply(Inferencing.scala:191)
[error] dotty.tools.dotc.typer.Inferencing$IsFullyDefinedAccumulator.apply(Inferencing.scala:168)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.op$proxy22$1(Types.scala:5640)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldArgs$1(Types.scala:5640)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldOver(Types.scala:5644)
[error] dotty.tools.dotc.typer.Inferencing$IsFullyDefinedAccumulator.apply(Inferencing.scala:191)
[error] dotty.tools.dotc.typer.Inferencing$IsFullyDefinedAccumulator.apply(Inferencing.scala:168)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.op$proxy22$1(Types.scala:5640)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldArgs$1(Types.scala:5640)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldOver(Types.scala:5644)
[error] dotty.tools.dotc.typer.Inferencing$IsFullyDefinedAccumulator.apply(Inferencing.scala:191)
[error] dotty.tools.dotc.typer.Inferencing$IsFullyDefinedAccumulator.apply(Inferencing.scala:168)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldOver(Types.scala:5654)
[error] dotty.tools.dotc.typer.Inferencing$IsFullyDefinedAccumulator.apply(Inferencing.scala:191)
[error] dotty.tools.dotc.typer.Inferencing$IsFullyDefinedAccumulator.apply(Inferencing.scala:168)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.op$proxy22$1(Types.scala:5640)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldArgs$1(Types.scala:5640)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldOver(Types.scala:5644)
[error] dotty.tools.dotc.typer.Inferencing$IsFullyDefinedAccumulator.apply(Inferencing.scala:191)
[error] dotty.tools.dotc.typer.Inferencing$IsFullyDefinedAccumulator.apply(Inferencing.scala:168)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.op$proxy22$1(Types.scala:5640)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldArgs$1(Types.scala:5640)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldOver(Types.scala:5644)
[error] dotty.tools.dotc.typer.Inferencing$IsFullyDefinedAccumulator.apply(Inferencing.scala:191)
[error] dotty.tools.dotc.typer.Inferencing$IsFullyDefinedAccumulator.apply(Inferencing.scala:168)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.op$proxy22$1(Types.scala:5640)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldArgs$1(Types.scala:5640)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldOver(Types.scala:5644)
[error] dotty.tools.dotc.typer.Inferencing$IsFullyDefinedAccumulator.apply(Inferencing.scala:191)
[error] dotty.tools.dotc.typer.Inferencing$IsFullyDefinedAccumulator.apply(Inferencing.scala:168)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldOver(Types.scala:5654)
[error] dotty.tools.dotc.typer.Inferencing$IsFullyDefinedAccumulator.apply(Inferencing.scala:191)
[error] dotty.tools.dotc.typer.Inferencing$IsFullyDefinedAccumulator.apply(Inferencing.scala:168)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.op$proxy22$1(Types.scala:5640)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldArgs$1(Types.scala:5640)
[error] dotty.tools.dotc.core.Types$TypeAccumulator.foldOver(Types.scala:5644)
[error] dotty.tools.dotc.typer.Inferencing
....