Open
Description
Scalac 2.12 got an assertion failure compiling the following code snippet.
It seems to be a recent regression since scalac version 2.11.8 can compile the code.
The case is generated from an exsiting test program in the scala repository.
$ scalac -version
Scala compiler version 2.12.0-20161028-204919-0666377 -- Copyright 2002-2016, LAMP/EPFL and Lightbend, Inc.
$ scalac abc.scala
java.lang.AssertionError: assertion failed: List(Ltest/p/A;, Ltest/p/A$;)
at scala.Predef$.assert(Predef.scala:219)
at scala.tools.nsc.backend.jvm.BTypes$ClassBType.checkInfoConsistency(BTypes.scala:887)
at scala.tools.nsc.backend.jvm.BTypes$ClassBType.info_$eq(BTypes.scala:859)
at scala.tools.nsc.backend.jvm.BTypesFromSymbols.setClassInfo(BTypesFromSymbols.scala:446)
at scala.tools.nsc.backend.jvm.BTypesFromSymbols.$anonfun$classBTypeFromSymbol$5(BTypesFromSymbols.scala:126)
at scala.collection.MapLike.getOrElse(MapLike.scala:128)
at scala.collection.MapLike.getOrElse$(MapLike.scala:126)
at scala.collection.concurrent.TrieMap.getOrElse(TrieMap.scala:631)
at scala.tools.nsc.backend.jvm.BTypesFromSymbols.classBTypeFromSymbol(BTypesFromSymbols.scala:118)
at scala.tools.nsc.backend.jvm.BCodeSkelBuilder$PlainSkelBuilder.genPlainClass(BCodeSkelBuilder.scala:94)
at scala.tools.nsc.backend.jvm.GenBCode$BCodePhase$Worker1.visit(GenBCode.scala:190)
at scala.tools.nsc.backend.jvm.GenBCode$BCodePhase$Worker1.$anonfun$run$1(GenBCode.scala:139)
at scala.tools.nsc.Global$GlobalPhase.withCurrentUnitNoLog(Global.scala:395)
at scala.tools.nsc.backend.jvm.GenBCode$BCodePhase$Worker1.run(GenBCode.scala:139)
at scala.tools.nsc.backend.jvm.GenBCode$BCodePhase.buildAndSendToDisk(GenBCode.scala:381)
at scala.tools.nsc.backend.jvm.GenBCode$BCodePhase.run(GenBCode.scala:350)
at scala.tools.nsc.Global$Run.compileUnitsInternal(Global.scala:1404)
at scala.tools.nsc.Global$Run.compileUnits(Global.scala:1389)
at scala.tools.nsc.Global$Run.compileSources(Global.scala:1384)
at scala.tools.nsc.Global$Run.compile(Global.scala:1478)
at scala.tools.nsc.Driver.doCompile(Driver.scala:35)
at scala.tools.nsc.MainClass.doCompile(Main.scala:24)
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)
error: Error while emitting abc.scala
assertion failed: List(Ltest/p/A;, Ltest/p/A$;)
one error found
$ cat abc.scala
package test
package p { class A(a: String = "") }
package object po { type A = p.A }
import po._
class p { val a = new A() }