Open
Description
The compiler ends with an java.lang.AssertionError when compiling the following file (and I have to look for another exam question....)
class A {
def print(): Unit = { }
}
trait B extends A {
def print(): Unit
}
trait T3 extends B {
override def print(): Unit = { super[B].print }
}
The error message looks as follows:
error: java.lang.AssertionError: assertion failed:
class T3$class
while compiling: Bug.scala
during phase: globalPhase=mixin, enteringPhase=cleanup
library version: version 2.11.0
compiler version: version 2.11.0
reconstructed args:
last tree to typer: Select(Super(trait T3), print)
tree position: line 10 of Bug.scala
symbol: method print in class A
symbol definition: def print(): Unit (a MethodSymbol)
symbol package: <empty>
symbol owners: method print -> class A
call site: object T3$class in package <empty>
== Source file context for tree position ==
7
8 trait T3 extends B {
9 override def print(): Unit = { super[B].print }
10 }
11
at scala.tools.nsc.transform.Mixin$MixinTransformer.scala$tools$nsc$transform$Mixin$MixinTransformer$$postTransform(Mixin.scala:1195)
at scala.tools.nsc.transform.Mixin$MixinTransformer$$anonfun$transform$1.apply(Mixin.scala:1239)
at scala.tools.nsc.transform.Mixin$MixinTransformer$$anonfun$transform$1.apply(Mixin.scala:1239)
at scala.reflect.internal.SymbolTable.enteringPhase(SymbolTable.scala:242)
at scala.reflect.internal.SymbolTable.exitingPhase(SymbolTable.scala:263)
at scala.tools.nsc.transform.Mixin$MixinTransformer.transform(Mixin.scala:1239)
at scala.tools.nsc.transform.Mixin$MixinTransformer.transform(Mixin.scala:468)
at scala.reflect.internal.Trees$$anonfun$itransform$2.apply(Trees.scala:1356)
at scala.reflect.internal.Trees$$anonfun$itransform$2.apply(Trees.scala:1354)
at scala.reflect.api.Trees$Transformer.atOwner(Trees.scala:2600)
at scala.reflect.internal.Trees$class.itransform(Trees.scala:1353)
at scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:16)
at scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:16)
at scala.reflect.api.Trees$Transformer.transform(Trees.scala:2555)
at scala.tools.nsc.transform.Mixin$MixinTransformer.transform(Mixin.scala:1236)
at scala.tools.nsc.transform.Mixin$MixinTransformer.transform(Mixin.scala:468)
at scala.reflect.api.Trees$Transformer$$anonfun$transformStats$1.apply(Trees.scala:2589)
at scala.reflect.api.Trees$Transformer$$anonfun$transformStats$1.apply(Trees.scala:2587)
at scala.collection.immutable.List.loop$1(List.scala:172)
at scala.collection.immutable.List.mapConserve(List.scala:188)
at scala.reflect.api.Trees$Transformer.transformStats(Trees.scala:2587)
at scala.reflect.internal.Trees$class.itransform(Trees.scala:1397)
at scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:16)
at scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:16)
at scala.reflect.api.Trees$Transformer.transform(Trees.scala:2555)
at scala.tools.nsc.transform.Mixin$MixinTransformer.transform(Mixin.scala:1236)
at scala.tools.nsc.transform.Mixin$MixinTransformer.transform(Mixin.scala:468)
at scala.reflect.api.Trees$Transformer.transformTemplate(Trees.scala:2563)
at scala.reflect.internal.Trees$$anonfun$itransform$4.apply(Trees.scala:1401)
at scala.reflect.internal.Trees$$anonfun$itransform$4.apply(Trees.scala:1400)
at scala.reflect.api.Trees$Transformer.atOwner(Trees.scala:2600)
at scala.reflect.internal.Trees$class.itransform(Trees.scala:1399)
at scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:16)
at scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:16)
at scala.reflect.api.Trees$Transformer.transform(Trees.scala:2555)
at scala.tools.nsc.transform.Mixin$MixinTransformer.transform(Mixin.scala:1236)
at scala.tools.nsc.transform.Mixin$MixinTransformer.transform(Mixin.scala:468)
at scala.reflect.api.Trees$Transformer$$anonfun$transformStats$1.apply(Trees.scala:2589)
at scala.reflect.api.Trees$Transformer$$anonfun$transformStats$1.apply(Trees.scala:2587)
at scala.collection.immutable.List.loop$1(List.scala:172)
at scala.collection.immutable.List.mapConserve(List.scala:188)
at scala.reflect.api.Trees$Transformer.transformStats(Trees.scala:2587)
at scala.reflect.internal.Trees$$anonfun$itransform$7.apply(Trees.scala:1419)
at scala.reflect.internal.Trees$$anonfun$itransform$7.apply(Trees.scala:1419)
at scala.reflect.api.Trees$Transformer.atOwner(Trees.scala:2600)
at scala.reflect.internal.Trees$class.itransform(Trees.scala:1418)
at scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:16)
at scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:16)
at scala.reflect.api.Trees$Transformer.transform(Trees.scala:2555)
at scala.tools.nsc.transform.Mixin$MixinTransformer.transform(Mixin.scala:1236)
at scala.tools.nsc.transform.Mixin$MixinTransformer.transform(Mixin.scala:468)
at scala.tools.nsc.ast.Trees$Transformer.transformUnit(Trees.scala:147)
at scala.tools.nsc.transform.Transform$Phase.apply(Transform.scala:30)
at scala.tools.nsc.Global$GlobalPhase.applyPhase(Global.scala:430)
at scala.tools.nsc.Global$GlobalPhase$$anonfun$run$1.apply(Global.scala:397)
at scala.tools.nsc.Global$GlobalPhase$$anonfun$run$1.apply(Global.scala:397)
at scala.collection.Iterator$class.foreach(Iterator.scala:743)
at scala.collection.AbstractIterator.foreach(Iterator.scala:1174)
at scala.tools.nsc.Global$GlobalPhase.run(Global.scala:397)
at scala.tools.nsc.Global$Run.compileUnitsInternal(Global.scala:1625)
at scala.tools.nsc.Global$Run.compileUnits(Global.scala:1610)
at scala.tools.nsc.Global$Run.compileSources(Global.scala:1605)
at scala.tools.nsc.Global$Run.compile(Global.scala:1703)
at scala.tools.nsc.Driver.doCompile(Driver.scala:34)
at scala.tools.nsc.MainClass.doCompile(Main.scala:23)
at scala.tools.nsc.Driver.process(Driver.scala:55)
at scala.tools.nsc.Driver.main(Driver.scala:68)
at scala.tools.nsc.Main.main(Main.scala)
Exception in thread "main" java.lang.AssertionError: assertion failed:
class T3$class
while compiling: Bug.scala
during phase: globalPhase=mixin, enteringPhase=cleanup
library version: version 2.11.0
compiler version: version 2.11.0
reconstructed args:
last tree to typer: Select(Super(trait T3), print)
tree position: line 10 of Bug.scala
symbol: method print in class A
symbol definition: def print(): Unit (a MethodSymbol)
symbol package: <empty>
symbol owners: method print -> class A
call site: object T3$class in package <empty>
== Source file context for tree position ==
7
8 trait T3 extends B {
9 override def print(): Unit = { super[B].print }
10 }
11
at scala.tools.nsc.transform.Mixin$MixinTransformer.scala$tools$nsc$transform$Mixin$MixinTransformer$$postTransform(Mixin.scala:1195)
at scala.tools.nsc.transform.Mixin$MixinTransformer$$anonfun$transform$1.apply(Mixin.scala:1239)
at scala.tools.nsc.transform.Mixin$MixinTransformer$$anonfun$transform$1.apply(Mixin.scala:1239)
at scala.reflect.internal.SymbolTable.enteringPhase(SymbolTable.scala:242)
at scala.reflect.internal.SymbolTable.exitingPhase(SymbolTable.scala:263)
at scala.tools.nsc.transform.Mixin$MixinTransformer.transform(Mixin.scala:1239)
at scala.tools.nsc.transform.Mixin$MixinTransformer.transform(Mixin.scala:468)
at scala.reflect.internal.Trees$$anonfun$itransform$2.apply(Trees.scala:1356)
at scala.reflect.internal.Trees$$anonfun$itransform$2.apply(Trees.scala:1354)
at scala.reflect.api.Trees$Transformer.atOwner(Trees.scala:2600)
at scala.reflect.internal.Trees$class.itransform(Trees.scala:1353)
at scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:16)
at scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:16)
at scala.reflect.api.Trees$Transformer.transform(Trees.scala:2555)
at scala.tools.nsc.transform.Mixin$MixinTransformer.transform(Mixin.scala:1236)
at scala.tools.nsc.transform.Mixin$MixinTransformer.transform(Mixin.scala:468)
at scala.reflect.api.Trees$Transformer$$anonfun$transformStats$1.apply(Trees.scala:2589)
at scala.reflect.api.Trees$Transformer$$anonfun$transformStats$1.apply(Trees.scala:2587)
at scala.collection.immutable.List.loop$1(List.scala:172)
at scala.collection.immutable.List.mapConserve(List.scala:188)
at scala.reflect.api.Trees$Transformer.transformStats(Trees.scala:2587)
at scala.reflect.internal.Trees$class.itransform(Trees.scala:1397)
at scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:16)
at scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:16)
at scala.reflect.api.Trees$Transformer.transform(Trees.scala:2555)
at scala.tools.nsc.transform.Mixin$MixinTransformer.transform(Mixin.scala:1236)
at scala.tools.nsc.transform.Mixin$MixinTransformer.transform(Mixin.scala:468)
at scala.reflect.api.Trees$Transformer.transformTemplate(Trees.scala:2563)
at scala.reflect.internal.Trees$$anonfun$itransform$4.apply(Trees.scala:1401)
at scala.reflect.internal.Trees$$anonfun$itransform$4.apply(Trees.scala:1400)
at scala.reflect.api.Trees$Transformer.atOwner(Trees.scala:2600)
at scala.reflect.internal.Trees$class.itransform(Trees.scala:1399)
at scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:16)
at scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:16)
at scala.reflect.api.Trees$Transformer.transform(Trees.scala:2555)
at scala.tools.nsc.transform.Mixin$MixinTransformer.transform(Mixin.scala:1236)
at scala.tools.nsc.transform.Mixin$MixinTransformer.transform(Mixin.scala:468)
at scala.reflect.api.Trees$Transformer$$anonfun$transformStats$1.apply(Trees.scala:2589)
at scala.reflect.api.Trees$Transformer$$anonfun$transformStats$1.apply(Trees.scala:2587)
at scala.collection.immutable.List.loop$1(List.scala:172)
at scala.collection.immutable.List.mapConserve(List.scala:188)
at scala.reflect.api.Trees$Transformer.transformStats(Trees.scala:2587)
at scala.reflect.internal.Trees$$anonfun$itransform$7.apply(Trees.scala:1419)
at scala.reflect.internal.Trees$$anonfun$itransform$7.apply(Trees.scala:1419)
at scala.reflect.api.Trees$Transformer.atOwner(Trees.scala:2600)
at scala.reflect.internal.Trees$class.itransform(Trees.scala:1418)
at scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:16)
at scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:16)
at scala.reflect.api.Trees$Transformer.transform(Trees.scala:2555)
at scala.tools.nsc.transform.Mixin$MixinTransformer.transform(Mixin.scala:1236)
at scala.tools.nsc.transform.Mixin$MixinTransformer.transform(Mixin.scala:468)
at scala.tools.nsc.ast.Trees$Transformer.transformUnit(Trees.scala:147)
at scala.tools.nsc.transform.Transform$Phase.apply(Transform.scala:30)
at scala.tools.nsc.Global$GlobalPhase.applyPhase(Global.scala:430)
at scala.tools.nsc.Global$GlobalPhase$$anonfun$run$1.apply(Global.scala:397)
at scala.tools.nsc.Global$GlobalPhase$$anonfun$run$1.apply(Global.scala:397)
at scala.collection.Iterator$class.foreach(Iterator.scala:743)
at scala.collection.AbstractIterator.foreach(Iterator.scala:1174)
at scala.tools.nsc.Global$GlobalPhase.run(Global.scala:397)
at scala.tools.nsc.Global$Run.compileUnitsInternal(Global.scala:1625)
at scala.tools.nsc.Global$Run.compileUnits(Global.scala:1610)
at scala.tools.nsc.Global$Run.compileSources(Global.scala:1605)
at scala.tools.nsc.Global$Run.compile(Global.scala:1703)
at scala.tools.nsc.Driver.doCompile(Driver.scala:34)
at scala.tools.nsc.MainClass.doCompile(Main.scala:23)
at scala.tools.nsc.Driver.process(Driver.scala:55)
at scala.tools.nsc.Driver.main(Driver.scala:68)
at scala.tools.nsc.Main.main(Main.scala)
Metadata
Metadata
Assignees
Labels
No labels