Aladdin - Scala Bugtracking
[#1090] project: compiler priority: low category: bug
submitter assigned to status date submitted
Sean Adriaan fixed 2007-05-07 13:43:45.0
subject stack overflow in inferencer on widen
code
object Test {
  trait Manager {
    type Node;
    def elements : Iterator[Node]
  }
  trait Core {
    type Node;
    trait NodeImpl
    trait Manager extends Test.Manager {
      type Node = Core.this.Node
    }
    def f(manager : Manager) = manager.elements.foreach{
      case node : NodeImpl => 
    }
  }
}
what happened
java.lang.StackOverflowError
	at scala.tools.nsc.symtab.Symbols$ClassSymbol.name(Symbols.scala:1250)
	at scala.tools.nsc.symtab.Symbols$Symbol.rawInfo(Symbols.scala:450)
	at scala.tools.nsc.symtab.Symbols$Symbol.info(Symbols.scala:421)
	at scala.tools.nsc.symtab.Symbols$Symbol.closureLength$0(Symbols.scala:572)
	at scala.tools.nsc.symtab.Symbols$Symbol.isLess(Symbols.scala:575)
	at scala.tools.nsc.symtab.Types$Type.closurePos(Types.scala:424)
	at scala.tools.nsc.symtab.Symbols$Symbol.isNonBottomSubClass(Symbols.scala:591)
	at scala.tools.nsc.symtab.Types$AsSeenFromMap.toPrefix$0(Types.scala:1858)
	at scala.tools.nsc.symtab.Types$AsSeenFromMap.apply(Types.scala:1865)
	at scala.tools.nsc.symtab.Types$AsSeenFromMap.apply(Types.scala:1840)
	at scala.tools.nsc.symtab.Types$TypeMap.mapOver(Types.scala:1727)
	at scala.tools.nsc.symtab.Types$AsSeenFromMap.apply(Types.scala:1907)
	at scala.tools.nsc.symtab.Types$Type.asSeenFrom(Types.scala:282)
	at scala.tools.nsc.symtab.Types$TypeRef.transform(Types.scala:1126)
	at scala.tools.nsc.symtab.Types$TypeRef.normalize(Types.scala:1205)
	at scala.tools.nsc.typechecker.Infer$Inferencer.widen(Infer.scala:863)
	at scala.tools.nsc.typechecker.Infer$Inferencer.widen(Infer.scala:865)
	at scala.tools.nsc.typechecker.Infer$Inferencer.widen(Infer.scala:865)
	at scala.tools.nsc.typechecker.Infer$Inferencer.widen(Infer.scala:865)
	at scala.tools.nsc.typechecker.Infer$Inferencer.widen(Infer.scala:865)
	at scala.tools.nsc.typechecker.Infer$Inferencer.widen(Infer.scala:865)
	at scala.tools.nsc.typechecker.Infer$Inferencer.widen(Infer.scala:865)
	at scala.tools.nsc.typechecker.Infer$Inferencer.widen(Infer.scala:865)
	at scala.tools.nsc.typechecker.Infer$Inferencer.widen(Infer.scala:865)
	at scala.tools.nsc.typechecker.Infer$Inferencer.widen(Infer.scala:865)
	at scala.tools.nsc.typechecker.Infer$Inferencer.widen(Infer.scala:865)
	at scala.tools.nsc.typechecker.Infer$Inferencer.widen(Infer.scala:865)
	at scala.tools.nsc.typechecker.Infer$Inferencer.widen(Infer.scala:865)
	at scala.tools.nsc.typechecker.Infer$Inferencer.widen(Infer.scala:865)
	at scala.tools.nsc.typechecker.Infer$Inferencer.widen(Infer.scala:865)
	at scala.tools.nsc.typechecker.Infer$Inferencer.widen(Infer.scala:865)
	at scala.tools.nsc.typechecker.Infer$Inferencer.widen(Infer.scala:865)
	at scala.tools.nsc.typechecker.Infer$Inferencer.widen(Infer.scala:865)
	at scala.tools.nsc.typechecker.Infer$Inferencer.widen(Infer.scala:865)
	at scala.tools.nsc.typechecker.Infer$Inferencer.widen(Infer.scala:865)
	at scala.tools.nsc.typechecker.Infer$Inferencer.widen(Infer.scala:865)
	at scala.tools.nsc.typechecker.Infer$Inferencer.widen(Infer.scala:865)
	at scala.tools.nsc.typechecker.Infer$Inferencer.widen(Infer.scala:865)
	at scala.tools.nsc.typechecker.Infer$Inferencer.widen(Infer.scala:865)
	at scala.tools.nsc.typechecker.Infer$Inferencer.widen(Infer.scala:865)
	at scala.tools.nsc.typechecker.Infer$Inferencer.widen(Infer.scala:865)
	at scala.tools.nsc.typechecker.Infer$Inferencer.widen(Infer.scala:865)
	at scala.tools.nsc.typechecker.Infer$Inferencer.widen(Infer.scala:865)
	at scala.tools.nsc.typechecker.Infer$Inferencer.widen(Infer.scala:865)
	at scala.tools.nsc.typechecker.Infer$Inferencer.widen(Infer.scala:865)
	at scala.tools.nsc.typechecker.Infer$Inferencer.widen(Infer.scala:865)
	at scala.tools.nsc.typechecker.Infer$Inferencer.widen(Infer.scala:865)
	at scala.tools.nsc.typechecker.Infer$Inferencer.widen(Infer.scala:865)
	at scala.tools.nsc.typechecker.Infer$Inferencer.widen(Infer.scala:865)
	at scala.tools.nsc.typechecker.Infer$Inferencer.widen(Infer.scala:865)
	at scala.tools.nsc.typechecker.Infer$Inferencer.widen(Infer.scala:865)
	at scala.tools.nsc.typechecker.Infer$Inferencer.widen(Infer.scala:865)
	at scala.tools.nsc.typechecker.Infer$Inferencer.widen(Infer.scala:865)
	at scala.tools.nsc.typechecker.Infer$Inferencer.widen(Infer.scala:865)
	at scala.tools.nsc.typechecker.Infer$Inferencer.widen(Infer.scala:865)
	at scala.tools.nsc.typechecker.Infer$Inferencer.widen(Infer.scala:865)
	at scala.tools.nsc.typechecker.Infer$Inferencer.widen(Infer.scala:865)
	at scala.tools.nsc.typechecker.Infer$Inferencer.widen(Infer.scala:865)
	at scala.tools.nsc.typechecker.Infer$Inferencer.widen(Infer.scala:865)
what expected
[back to overview]
Changes of this bug report
Adriaan  edited on  2007-05-08 17:25:30.0
fixed in r10963