Skip to content

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

Open
@road21

Description

@road21

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)

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions