[#597] | project: compiler | priority: high | category: bug | |
---|---|---|---|---|
submitter | assigned to | status | date submitted | |
Sean | Martin | fixed | 2006-05-17 14:23:40.0 | |
subject | Resident compiler recursion gone wild. | |||
code |
test/Test.scala: package test; abstract class Base { type A <: Ax; abstract class Ax { def a = null; def string = "A"; } } trait ExtA extends Base { type A <: Ax; trait Ax extends super.Ax { def b = null; override def string = super.string + "B"; } } trait ExtB extends Base { type A <: Ax; trait Ax extends super.Ax { def c = null; override def string = super.string + "C"; } } trait ExtC extends ExtA with ExtB { type A <: Ax; trait Ax extends super[ExtA].Ax with super[ExtB].Ax { a b c def d = null; override def string = super.string + "D"; } } test/Main.scala package test; object Main { def main(args : Array[String]) : Unit = { new ExtC { type A = Ax; class Ax extends super.Ax; } } } |
|||
what happened | Run in resident:bash-3.00$ ~/runtime-workspace/scala/dists/latest/bin/scalac -resident -d ../bin -sourcepath . nsc> test/Test.scala nsc> test/Main.scala Exception in thread "main" java.lang.OutOfMemoryError: Java heap spaceI think there is a recursive function gone crazy somewhere. |
|||
what expected | ||||
[back to overview] |
Sean edited on 2006-05-17 15:30:22.0 |
This bug really sucks, its making the IDE pretty much useless. I think the problem has to do with using super so the names can remain the same. Before I was mangling my own class names because I wasn't sure how to use super, but at least the IDE didn't hang so much! |
Sean edited on 2006-05-17 15:54:44.0 |
Found a better way to reproduce bug on command line! |
Sean edited on 2006-05-17 15:55:06.0 |
Martin edited on 2006-05-18 18:29:59.0 |