-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
assertion failed: orphan parameter reference during pickling #21558
Labels
Comments
theosotr
added
itype:bug
itype:crash
stat:needs triage
Every issue needs to have an "area" and "itype" label
labels
Sep 6, 2024
Gedochao
added
area:pickling
and removed
stat:needs triage
Every issue needs to have an "area" and "itype" label
labels
Sep 10, 2024
Full crash output: error when pickling type T
error when pickling tree T
error when pickling tree new A[T]
error when pickling tree new A[T](Int.int2float(m2(repro$package.m2$default$1)))
error when pickling tree m1(new A[T](Int.int2float(m2(repro$package.m2$default$1))))
error when pickling tree {
m1(new A[T](Int.int2float(m2(repro$package.m2$default$1))))
}
error when pickling tree def test(): Unit =
{
m1(new A[T](Int.int2float(m2(repro$package.m2$default$1))))
}
error when pickling tree () extends Object() { this: repro$package.type =>
private def writeReplace(): AnyRef =
new scala.runtime.ModuleSerializationProxy(classOf[repro$package.type])
def test(): Unit =
{
m1(new A[T](Int.int2float(m2(repro$package.m2$default$1))))
}
def m1(x: Base): Unit =
{
()
}
def m2(p: A[? >: Nothing <: Float]): Int = 1
def m2$default$1: A[? <: Float] @uncheckedVariance = new A[T](1.0f)
}
error when pickling tree @SourceFile("repro.scala") final module class repro$package() extends Object() {
this: repro$package.type =>
private def writeReplace(): AnyRef =
new scala.runtime.ModuleSerializationProxy(classOf[repro$package.type])
def test(): Unit =
{
m1(new A[T](Int.int2float(m2(repro$package.m2$default$1))))
}
def m1(x: Base): Unit =
{
()
}
def m2(p: A[? >: Nothing <: Float]): Int = 1
def m2$default$1: A[? <: Float] @uncheckedVariance = new A[T](1.0f)
}
error when pickling tree package <empty> {
final lazy module val repro$package: repro$package = new repro$package()
@SourceFile("repro.scala") final module class repro$package() extends Object()
{ this: repro$package.type =>
private def writeReplace(): AnyRef =
new scala.runtime.ModuleSerializationProxy(classOf[repro$package.type])
def test(): Unit =
{
m1(new A[T](Int.int2float(m2(repro$package.m2$default$1))))
}
def m1(x: Base): Unit =
{
()
}
def m2(p: A[? >: Nothing <: Float]): Int = 1
def m2$default$1: A[? <: Float] @uncheckedVariance = new A[T](1.0f)
}
}
unhandled exception while running pickler on /Users/pchabelski/IdeaProjects/scala-cli-tests-2/untitled/compiler-repro/repro.scala
An unhandled exception was thrown in the compiler.
Please file a crash report here:
https://github.com/scala/scala3/issues/new/choose
For non-enriched exceptions, compile with -Xno-enrich-error-messages.
while compiling: /Users/pchabelski/IdeaProjects/scala-cli-tests-2/untitled/compiler-repro/repro.scala
during phase: pickler
mode: Mode(ImplicitsEnabled)
library version: version 2.13.14
compiler version: version 3.5.0
settings: -classpath /Users/pchabelski/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-library_3/3.5.0/scala3-library_3-3.5.0.jar:/Users/pchabelski/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.14/scala-library-2.13.14.jar -d /Users/pchabelski/IdeaProjects/scala-cli-tests-2/untitled/compiler-repro/.scala-build/compiler-repro_473cbde4c4-d9eb8ef26f/classes/main -sourceroot /Users/pchabelski/IdeaProjects/scala-cli-tests-2/untitled/compiler-repro
Exception in thread "main" java.lang.AssertionError: assertion failed: orphan parameter reference: TypeParamRef(T)
at scala.runtime.Scala3RunTime$.assertFailed(Scala3RunTime.scala:8)
at dotty.tools.dotc.core.tasty.TreePickler.pickleNewType(TreePickler.scala:311)
at dotty.tools.dotc.core.tasty.TreePickler.pickleType(TreePickler.scala:177)
at dotty.tools.dotc.core.tasty.TreePickler.pickleTree(TreePickler.scala:699)
at dotty.tools.dotc.core.tasty.TreePickler.pickleTpt(TreePickler.scala:345)
at dotty.tools.dotc.core.tasty.TreePickler.pickleTree$$anonfun$3(TreePickler.scala:517)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
at scala.collection.immutable.List.foreach(List.scala:334)
at dotty.tools.dotc.core.tasty.TreePickler.pickleTree(TreePickler.scala:517)
at dotty.tools.dotc.core.tasty.TreePickler.pickleTree(TreePickler.scala:509)
at dotty.tools.dotc.core.tasty.TreePickler.pickleTree$$anonfun$2(TreePickler.scala:510)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
at scala.collection.immutable.List.foreach(List.scala:334)
at dotty.tools.dotc.core.tasty.TreePickler.pickleTree(TreePickler.scala:510)
at dotty.tools.dotc.core.tasty.TreePickler.pickleTree(TreePickler.scala:554)
at dotty.tools.dotc.core.tasty.TreePickler.pickleTreeUnlessEmpty(TreePickler.scala:349)
at dotty.tools.dotc.core.tasty.TreePickler.pickleDef(TreePickler.scala:383)
at dotty.tools.dotc.core.tasty.TreePickler.pickleTree(TreePickler.scala:645)
at dotty.tools.dotc.core.tasty.TreePickler.pickleStats$$anonfun$2(TreePickler.scala:416)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
at scala.collection.immutable.List.foreach(List.scala:334)
at dotty.tools.dotc.core.tasty.TreePickler.pickleStats(TreePickler.scala:416)
at dotty.tools.dotc.core.tasty.TreePickler.pickleTree(TreePickler.scala:681)
at dotty.tools.dotc.core.tasty.TreePickler.pickleDef(TreePickler.scala:374)
at dotty.tools.dotc.core.tasty.TreePickler.pickleTree(TreePickler.scala:647)
at dotty.tools.dotc.core.tasty.TreePickler.pickleStats$$anonfun$2(TreePickler.scala:416)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
at scala.collection.immutable.List.foreach(List.scala:334)
at dotty.tools.dotc.core.tasty.TreePickler.pickleStats(TreePickler.scala:416)
at dotty.tools.dotc.core.tasty.TreePickler.pickleTree(TreePickler.scala:697)
at dotty.tools.dotc.core.tasty.TreePickler.pickle$$anonfun$1(TreePickler.scala:922)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
at scala.collection.immutable.List.foreach(List.scala:334)
at dotty.tools.dotc.core.tasty.TreePickler.pickle(TreePickler.scala:920)
at dotty.tools.dotc.transform.Pickler.run$$anonfun$1$$anonfun$1(Pickler.scala:306)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
at scala.collection.immutable.List.foreach(List.scala:334)
at dotty.tools.dotc.transform.Pickler.run$$anonfun$1(Pickler.scala:279)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
at scala.collection.immutable.List.foreach(List.scala:334)
at dotty.tools.dotc.transform.Pickler.run(Pickler.scala:278)
at dotty.tools.dotc.core.Phases$Phase.runOn$$anonfun$1(Phases.scala:380)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
at scala.collection.immutable.List.foreach(List.scala:334)
at dotty.tools.dotc.core.Phases$Phase.runOn(Phases.scala:373)
at dotty.tools.dotc.transform.Pickler.runPhase$1(Pickler.scala:392)
at dotty.tools.dotc.transform.Pickler.runOn(Pickler.scala:398)
at dotty.tools.dotc.Run.runPhases$1$$anonfun$1(Run.scala:343)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
at scala.collection.ArrayOps$.foreach$extension(ArrayOps.scala:1323)
at dotty.tools.dotc.Run.runPhases$1(Run.scala:336)
at dotty.tools.dotc.Run.compileUnits$$anonfun$1(Run.scala:384)
at dotty.tools.dotc.Run.compileUnits$$anonfun$adapted$1(Run.scala:396)
at dotty.tools.dotc.util.Stats$.maybeMonitored(Stats.scala:69)
at dotty.tools.dotc.Run.compileUnits(Run.scala:396)
at dotty.tools.dotc.Run.compileSources(Run.scala:282)
at dotty.tools.dotc.Run.compile(Run.scala:267)
at dotty.tools.dotc.Driver.doCompile(Driver.scala:37)
at dotty.tools.dotc.Driver.process(Driver.scala:201)
at dotty.tools.dotc.Driver.process(Driver.scala:169)
at dotty.tools.dotc.Driver.process(Driver.scala:181)
at dotty.tools.dotc.Driver.main(Driver.scala:211)
at dotty.tools.dotc.Main.main(Main.scala) Reproduced on 3.3.3, 3.5.0, 3.6.0-RC1-bin-20240907-614170f-NIGHTLY-git-614170f |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Compiler version
3.5.0
Minimized code
Output (click arrow to expand)
The text was updated successfully, but these errors were encountered: