Skip to content

Compiler crash for a package object containing a class and companion #5954

Closed
scala/scala
#9661
@scabug

Description

@scabug

When I compile the following compilation unit, the compiler crashes upon the third compilation. I do not delete the generated class files between the compiler runs.

package p {
  package object base {
    case class B()
  }
}

The first compiler run is fine, the second generates a message regarding a suppressed failed assert, and on the third run the compiler crashes.

% scalac -version
Scala compiler version 2.9.2 -- Copyright 2002-2011, LAMP/EPFL

% rm -r p
% scalac Test.scala
% scalac Test.scala
Suppressing failed assert: java.lang.AssertionError: assertion failed: List(obje
ct package$B, object package$B)

% scalac Test.scala
Suppressing failed assert: java.lang.AssertionError: assertion failed: List(obje
ct package$B, object package$B)
error: java.lang.AssertionError: assertion failed: List(object package$B, object
 package$B)
        at scala.tools.nsc.symtab.Symbols$Symbol.suchThat(Symbols.scala:1055)
        at scala.tools.nsc.symtab.Symbols$Symbol.companionModule0(Symbols.scala:
1317)
        at scala.tools.nsc.symtab.Symbols$Symbol.companionSymbol(Symbols.scala:1
338)
        at scala.tools.nsc.backend.jvm.GenJVM$BytecodeGenerator.scalaSignatureAd
dingMarker(GenJVM.scala:236)
        at scala.tools.nsc.backend.jvm.GenJVM$BytecodeGenerator.genClass(GenJVM.
scala:350)
        at scala.tools.nsc.backend.jvm.GenJVM$JvmPhase$$anonfun$run$4.apply(GenJ
VM.scala:86)
        at scala.tools.nsc.backend.jvm.GenJVM$JvmPhase$$anonfun$run$4.apply(GenJ
VM.scala:86)
        at scala.collection.mutable.HashMap$$anon$2$$anonfun$foreach$3.apply(Has
hMap.scala:104)
        at scala.collection.mutable.HashMap$$anon$2$$anonfun$foreach$3.apply(Has
hMap.scala:104)
        at scala.collection.Iterator$class.foreach(Iterator.scala:772)
        at scala.collection.mutable.HashTable$$anon$1.foreach(HashTable.scala:15
7)
        at scala.collection.mutable.HashTable$class.foreachEntry(HashTable.scala
:190)
        at scala.collection.mutable.HashMap.foreachEntry(HashMap.scala:45)
        at scala.collection.mutable.HashMap$$anon$2.foreach(HashMap.scala:104)
        at scala.tools.nsc.backend.jvm.GenJVM$JvmPhase.run(GenJVM.scala:86)
        at scala.tools.nsc.Global$Run.compileSources(Global.scala:953)
        at scala.tools.nsc.Global$Run.compile(Global.scala:1041)
        at scala.tools.nsc.Main$.process(Main.scala:106)
        at scala.tools.nsc.Main$.main(Main.scala:123)
        at scala.tools.nsc.Main.main(Main.scala)

Exception in thread "main" java.lang.AssertionError: assertion failed: List(obje
ct package$B, object package$B)
        at scala.tools.nsc.symtab.Symbols$Symbol.suchThat(Symbols.scala:1055)
        at scala.tools.nsc.symtab.Symbols$Symbol.companionModule0(Symbols.scala:
1317)
        at scala.tools.nsc.symtab.Symbols$Symbol.companionSymbol(Symbols.scala:1
338)
        at scala.tools.nsc.backend.jvm.GenJVM$BytecodeGenerator.scalaSignatureAd
dingMarker(GenJVM.scala:236)
        at scala.tools.nsc.backend.jvm.GenJVM$BytecodeGenerator.genClass(GenJVM.
scala:350)
        at scala.tools.nsc.backend.jvm.GenJVM$JvmPhase$$anonfun$run$4.apply(GenJ
VM.scala:86)
        at scala.tools.nsc.backend.jvm.GenJVM$JvmPhase$$anonfun$run$4.apply(GenJ
VM.scala:86)
        at scala.collection.mutable.HashMap$$anon$2$$anonfun$foreach$3.apply(Has
hMap.scala:104)
        at scala.collection.mutable.HashMap$$anon$2$$anonfun$foreach$3.apply(Has
hMap.scala:104)
        at scala.collection.Iterator$class.foreach(Iterator.scala:772)
        at scala.collection.mutable.HashTable$$anon$1.foreach(HashTable.scala:15
7)
        at scala.collection.mutable.HashTable$class.foreachEntry(HashTable.scala
:190)
        at scala.collection.mutable.HashMap.foreachEntry(HashMap.scala:45)
        at scala.collection.mutable.HashMap$$anon$2.foreach(HashMap.scala:104)
        at scala.tools.nsc.backend.jvm.GenJVM$JvmPhase.run(GenJVM.scala:86)
        at scala.tools.nsc.Global$Run.compileSources(Global.scala:953)
        at scala.tools.nsc.Global$Run.compile(Global.scala:1041)
        at scala.tools.nsc.Main$.process(Main.scala:106)
        at scala.tools.nsc.Main$.main(Main.scala:123)
        at scala.tools.nsc.Main.main(Main.scala)

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions