Skip to content

Bootstrapped pickling exception when pickling locally defined class. #2340

Closed
@felixmulder

Description

@felixmulder

From ZipArchive.scala:

for (zipEntry <- iter) {
  val dir = getDir(dirs, zipEntry)
  if (!zipEntry.isDirectory) {
    class FileEntry() extends Entry(zipEntry.getName) {
      override def lastModified = zipEntry.getTime()
      override def input        = resourceInputStream(path)
      override def sizeOption   = None
    }
    val f = new FileEntry()
    dir.entries(f.name) = f
  }
}

Pickling fails when bootstrapping this as part of the killing reflect io PR.

Message:

java.lang.AssertionError: assertion failed: unresolved symbols: class FileEntry when pickling /Users/fixel/Projects/dotty/compiler/src/dotty/tools/io/ZipArchive.scala
	at scala.Predef$.assert(Predef.scala:170)
	at dotty.tools.dotc.core.tasty.TreePickler.pickle(TreePickler.scala:608)
	at dotty.tools.dotc.transform.Pickler$$anonfun$run$2$$anonfun$apply$1.apply(Pickler.scala:51)
	at dotty.tools.dotc.transform.Pickler$$anonfun$run$2$$anonfun$apply$1.apply(Pickler.scala:44)
	at scala.collection.immutable.List.foreach(List.scala:392)
	at dotty.tools.dotc.transform.Pickler$$anonfun$run$2.apply(Pickler.scala:44)
	at dotty.tools.dotc.transform.Pickler$$anonfun$run$2.apply(Pickler.scala:43)
	at scala.collection.immutable.List.foreach(List.scala:392)
	at dotty.tools.dotc.transform.Pickler.run(Pickler.scala:43)
	at dotty.tools.dotc.core.Phases$Phase$$anonfun$runOn$1.apply(Phases.scala:283)
	at dotty.tools.dotc.core.Phases$Phase$$anonfun$runOn$1.apply(Phases.scala:281)
	at scala.collection.immutable.List.map(List.scala:288)
	at dotty.tools.dotc.core.Phases$Phase$class.runOn(Phases.scala:281)
	at dotty.tools.dotc.transform.Pickler.runOn(Pickler.scala:75)
	at dotty.tools.dotc.Run$$anonfun$compileUnits$1$$anonfun$apply$mcV$sp$1.apply(Run.scala:76)
	at dotty.tools.dotc.Run$$anonfun$compileUnits$1$$anonfun$apply$mcV$sp$1.apply(Run.scala:73)
	at scala.collection.IndexedSeqOptimized$class.foreach(IndexedSeqOptimized.scala:33)
	at scala.collection.mutable.ArrayOps$ofRef.foreach(ArrayOps.scala:186)
	at dotty.tools.dotc.Run$$anonfun$compileUnits$1.apply$mcV$sp(Run.scala:73)
	at dotty.tools.dotc.Run$$anonfun$compileUnits$1.apply(Run.scala:67)
	at dotty.tools.dotc.Run$$anonfun$compileUnits$1.apply(Run.scala:67)
	at dotty.tools.dotc.util.Stats$.monitorHeartBeat(Stats.scala:76)
	at dotty.tools.dotc.Run.compileUnits(Run.scala:67)
	at dotty.tools.dotc.Run.compileSources(Run.scala:64)
	at dotty.tools.dotc.Run.compile(Run.scala:48)
	at dotty.tools.dotc.Driver.doCompile(Driver.scala:26)
	at dotty.tools.dotc.Driver.process(Driver.scala:124)
	at xsbt.CachedCompilerImpl.run(CompilerInterface.scala:63)
	at xsbt.CachedCompilerImpl.run(CompilerInterface.scala:53)
	at xsbt.CompilerInterface.run(CompilerInterface.scala:37)
	at sun.reflect.GeneratedMethodAccessor22.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at sbt.compiler.AnalyzingCompiler.call(AnalyzingCompiler.scala:107)
	at sbt.compiler.AnalyzingCompiler.compile(AnalyzingCompiler.scala:53)
	at sbt.compiler.AnalyzingCompiler.compile(AnalyzingCompiler.scala:47)
	at sbt.compiler.MixedAnalyzingCompiler$$anonfun$compileScala$1$1.apply$mcV$sp(MixedAnalyzingCompiler.scala:50)

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions