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 + -
显示快捷键?