Closed scabug closed 6 years ago
Imported From: https://issues.scala-lang.org/browse/SI-4704?orig=1 Reporter: Jorge Ortiz (jorgeortiz85) Affected Versions: 2.8.0, 2.8.1, 2.9.0, 2.11.0-M8
@paulp said: Don't know how to handle. Here's a test, in case this starts looking too easy.
trait MM {
protected def method = "bip"
}
trait NN {
protected def method = "bop"
}
trait OOOOO extends MM with NN {
override protected def method = super[MM].method + super[NN].method
override def hashCode = super[MM].hashCode + super[NN].hashCode
}
@VladUreche said: The variant I found independently:
trait IterableLike[A]
trait SeqLike[A] extends IterableLike[A] {
override def toString = super[IterableLike].toString
}
History: https://github.com/miniboxing/miniboxing-plugin/issues/40
fixed since Scala 2.12.x? 🤔
Welcome to Scala 2.12.6 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_181).
Type in expressions for evaluation. Or try :help.
scala> trait Bar {
| super[Object].hashCode
| }
defined trait Bar
Welcome to Scala 2.13.0-M4 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_181).
Type in expressions for evaluation. Or try :help.
scala> trait Bar {
| super[Object].hashCode
| }
defined trait Bar
Welcome to Scala 2.11.12 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_181).
Type in expressions for evaluation. Or try :help.
scala> trait Bar {
| super[Object].hashCode
| }
java.lang.AssertionError: assertion failed:
class iw$Bar$class
while compiling: <console>
during phase: globalPhase=mixin, enteringPhase=cleanup
library version: version 2.11.12
compiler version: version 2.11.12
reconstructed args:
last tree to typer: type $iw
tree position: line 9 of <console>
tree tpe: <notype>
symbol: object iw in package $line3
symbol definition: class iw extends Object (a ModuleClassSymbol)
symbol package: $line3
symbol owners: object iw
call site: object iw$Bar$class in package $line3 in package $line3
<Cannot read source file>
at scala.tools.nsc.transform.Mixin$MixinTransformer.scala$tools$nsc$transform$Mixin$MixinTransformer$$postTransform(Mixin.scala:1217)
at scala.tools.nsc.transform.Mixin$MixinTransformer$$anonfun$transform$1.apply(Mixin.scala:1261)
at scala.tools.nsc.transform.Mixin$MixinTransformer$$anonfun$transform$1.apply(Mixin.scala:1261)
at scala.reflect.internal.SymbolTable.enteringPhase(SymbolTable.scala:235)
at scala.reflect.internal.SymbolTable.exitingPhase(SymbolTable.scala:256)
at scala.tools.nsc.transform.Mixin$MixinTransformer.transform(Mixin.scala:1261)
at scala.tools.nsc.transform.Mixin$MixinTransformer.transform(Mixin.scala:468)
at scala.reflect.api.Trees$Transformer$$anonfun$transformStats$1.apply(Trees.scala:2589)
If I try to compile the following code:
I get a compiler crash with the following stacktrace: