bug1001.scala

来自「JAVA 语言的函数式编程扩展」· SCALA 代码 · 共 106 行

SCALA
106
字号
// I suspect the stack overflow is occurring when the compiler is determining the types for the following line at the end of the file:-//    val data = List(N26,N25)abstract class A{    // commenting out the following line (only) leads to successful compilation    protected val data: List[A]}trait B[T <: B[T]] extends A { self: T => }abstract class C extends A{    // commenting out the following line (only) leads to successful compilation    protected val data: List[C]}abstract class D extends C with B[D] {}abstract class Ee extends C with B[Ee]{}object N1 extends D{    val data = Nil}object N2 extends D{    val data = Nil}object N5 extends D{    val data = List(N1)}object N6 extends D{    val data = List(N1)}object N8 extends D{    val data = List(N1)}object N10 extends D{    val data = Nil}object N13 extends D{    val data = List(N2)}object N14 extends D{    val data = List(N5,N10,N8)}object N15 extends D{    val data = List(N14)}object N16 extends D{    val data = List(N13,N6,N15)}object N17 extends D{    val data = List(N16)}object N21 extends D{    val data = List(N16)}object N22 extends D{    val data = List(N17)}object N25 extends D{    val data = List(N22)}object N26 extends Ee{    val data = List(N21,N17)}// Commenting out the following object (only) leads to successful compilationobject N31 extends Ee{    // If we use List[C](N26,N25), we achieve successful compilation    val data = List(N26,N25)}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?