class Foo[A] {
class Bar[B >: A](x: B) extends Foo[B]
}
object bug {
new Foo[Int]#Bar(0)
}
produces the following exception (2.7.x and trunk):
Exception in thread "main" java.lang.AssertionError: assertion failed: Foo[Int]
at scala.Predef$$.assert(Predef.scala:107)
at scala.tools.nsc.ast.TreeGen.mkAttributedQualifier(TreeGen.scala:76)
at scala.tools.nsc.ast.TreeGen.mkAttributedQualifier(TreeGen.scala:42)
at scala.tools.nsc.transform.ExplicitOuter$$ExplicitOuterTransformer.transform(ExplicitOuter.scala:472)
at scala.tools.nsc.ast.Trees$$Transformer$$$$anonfun$$transformStats$$1$$$$anonfun$$apply$$4.apply(Trees.scala:1537)
at scala.tools.nsc.ast.Trees$$Transformer$$$$anonfun$$transformStats$$1$$$$anonfun$$apply$$4.apply(Trees.scala:1537)
at scala.tools.nsc.ast.Trees$$Transformer.atOwner(Trees.scala:1546)
at scala.tools.nsc.transform.TypingTransformers$$TypingTransformer.atOwner(TypingTransformers.scala:37)
at scala.tools.nsc.transform.TypingTransformers$$TypingTransformer.atOwner(TypingTransformers.scala:30)
at scala.tools.nsc.ast.Trees$$Transformer$$$$anonfun$$transformStats$$1.apply(Trees.scala:1537)
at scala.tools.nsc.ast.Trees$$Transformer$$$$anonfun$$transformStats$$1.apply(Trees.scala:1536)
at scala.collection.immutable.List.loop$$2(List.scala:123)
at scala.collection.immutable.List.mapConserve(List.scala:140)
at scala.tools.nsc.ast.Trees$$Transformer.transformStats(Trees.scala:1536)
[...]
Compiling the code below
produces the following exception (2.7.x and trunk):