scala3 icon indicating copy to clipboard operation
scala3 copied to clipboard

Compiler crushes when multiple groups of type arguments are used inside smth that extends AnyVal

Open road21 opened this issue 6 months ago • 0 comments

Compiler version

3.6.4 3.7.0

Minimized code

//> using scala 3.7.0

class Foo(v: Any) extends AnyVal:
  def bar[X](bar: X)[Y]: Any = v

@main def run: Unit =
  val f = new Foo("lol")
  println(f.bar[String]("")[Boolean])

https://scastie.scala-lang.org/road21/KVxB0mpuShWmkcJQRdLnRQ

Output (click arrow to expand)

Error: java.lang.AssertionError: assertion failed
        at scala.runtime.Scala3RunTime$.assertFailed(Scala3RunTime.scala:11)
        at dotty.tools.dotc.transform.VCInlineMethods.rewire(VCInlineMethods.scala:65)
        at dotty.tools.dotc.transform.VCInlineMethods.rewireIfNeeded(VCInlineMethods.scala:98)
        at dotty.tools.dotc.transform.VCInlineMethods.transformTypeApply(VCInlineMethods.scala:106)
        at dotty.tools.dotc.transform.MegaPhase.goTypeApply(MegaPhase.scala:696)
        at dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:321)
        at dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:454)
        at dotty.tools.dotc.transform.MegaPhase.loop$3(MegaPhase.scala:486)
        at dotty.tools.dotc.transform.MegaPhase.transformTrees(MegaPhase.scala:486)
        at dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:296)
        at dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:454)
        at dotty.tools.dotc.transform.MegaPhase.loop$2$$anonfun$1(MegaPhase.scala:474)
        at dotty.tools.dotc.transform.MegaPhase.loop$2(MegaPhase.scala:476)
        at dotty.tools.dotc.transform.MegaPhase.transformBlock(MegaPhase.scala:476)
        at dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:315)
        at dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:454)
        at dotty.tools.dotc.transform.MegaPhase.mapDefDef$1(MegaPhase.scala:265)
        at dotty.tools.dotc.transform.MegaPhase.transformNamed$1(MegaPhase.scala:268)
        at dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:452)

road21 avatar May 26 '25 09:05 road21