Skip to content
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

Regression in virtuslab/scala-cli for derivation #21320

Closed
WojciechMazur opened this issue Aug 2, 2024 · 5 comments · Fixed by #21356
Closed

Regression in virtuslab/scala-cli for derivation #21320

WojciechMazur opened this issue Aug 2, 2024 · 5 comments · Fixed by #21356
Assignees
Labels
area:typeclass-derivation itype:bug itype:crash regression This worked in a previous version but doesn't anymore
Milestone

Comments

@WojciechMazur
Copy link
Contributor

Compiler version

Last good release: 3.6.0-RC1-bin-20240719-af933c4-NIGHTLY
First bad release: 3.6.0-RC1-bin-20240723-46ff151-NIGHTLY
Bisect points to 2facda0, maybe related to #21303

Minimized code

import scala.deriving.*
import scala.compiletime.*

trait ConfigMonoid[T]:
  def zero: T
  def orElse(main: T, defaults: T): T

object ConfigMonoid:
  given option[T]: ConfigMonoid[Option[T]] = ???

  inline def zeroTuple[C <: Tuple]: Tuple =
    inline erasedValue[C] match
      case _: EmptyTuple => EmptyTuple
      case _: (t *: ts) =>
        summonInline[ConfigMonoid[t]].zero *: zeroTuple[ts]

  inline def valueTuple[C <: Tuple, T](index: Int, main: T, defaults: T): Tuple =
    inline erasedValue[C] match
      case _: EmptyTuple => EmptyTuple
      case _: (t *: ts) =>
        def get(v: T) = v.asInstanceOf[Product].productElement(index).asInstanceOf[t]
        summonInline[ConfigMonoid[t]].orElse(get(main), get(defaults)) *: valueTuple[ts, T](
          index + 1,
          main,
          defaults
        )

  inline given derive[T](using m: Mirror.ProductOf[T]): ConfigMonoid[T] =
    new ConfigMonoid[T]:
      def zero: T = m.fromProduct(zeroTuple[m.MirroredElemTypes])
      def orElse(main: T, defaults: T): T = m.fromProduct(valueTuple[m.MirroredElemTypes, T](0, main, defaults))



final case class PublishOptions(
  v1: Option[String] = None,
  v2: Option[String] = None,
  v3: Option[String] = None,
  v4: Option[String] = None,
  v5: Option[String] = None,
  v6: Option[String] = None,
  v7: Option[String] = None,
  v8: Option[String] = None,
  v9: Option[String] = None,  
  ci: PublishContextualOptions = PublishContextualOptions(),
)
object PublishOptions:
  implicit val monoid: ConfigMonoid[PublishOptions] = ConfigMonoid.derive

final case class PublishContextualOptions(
  v1: Option[String] = None,
  v2: Option[String] = None,
  v3: Option[String] = None,
  v4: Option[String] = None,
  v5: Option[String] = None,
  v6: Option[String] = None,
  v7: Option[String] = None,
  v8: Option[String] = None,
  v9: Option[String] = None,
  v10: Option[String] = None,
  v11: Option[String] = None,
  v12: Option[String] = None,
  v13: Option[String] = None,
  v14: Option[String] = None,
  v15: Option[String] = None,
  v16: Option[String] = None,
  v17: Option[String] = None,
  v18: Option[String] = None,
  v19: Option[String] = None,
  v20: Option[String] = None
)
object PublishContextualOptions:
  implicit val monoid: ConfigMonoid[PublishContextualOptions] = ConfigMonoid.derive

Output (click arrow to expand)

-- Error: /Users/wmazur/projects/sandbox/src/test.scala:49:54 ------------------
49 |  implicit val monoid: ConfigMonoid[PublishOptions] = ConfigMonoid.derive
   |                                                      ^^^^^^^^^^^^^^^^^^^
   |           method zeroTuple is declared as `inline`, but was not inlined
   |
   |           Try increasing `-Xmax-inlines` above 32
   |----------------------------------------------------------------------------
   |Inline stack trace
   |- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   |This location contains code that was inlined from test.scala:16
16 |        summonInline[ConfigMonoid[t]].zero *: zeroTuple[ts]
   |                                              ^^^^^^^^^
   |- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   |This location contains code that was inlined from test.scala:16
16 |        summonInline[ConfigMonoid[t]].zero *: zeroTuple[ts]
   |                                              ^^^^^^^^^^^^^
   |- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   |This location contains code that was inlined from test.scala:16
16 |        summonInline[ConfigMonoid[t]].zero *: zeroTuple[ts]
   |                                              ^^^^^^^^^^^^^
   |- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   |This location contains code that was inlined from test.scala:16
16 |        summonInline[ConfigMonoid[t]].zero *: zeroTuple[ts]
   |                                              ^^^^^^^^^^^^^
   |- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   |This location contains code that was inlined from test.scala:16
16 |        summonInline[ConfigMonoid[t]].zero *: zeroTuple[ts]
   |                                              ^^^^^^^^^^^^^
   |- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   |This location contains code that was inlined from test.scala:16
16 |        summonInline[ConfigMonoid[t]].zero *: zeroTuple[ts]
   |                                              ^^^^^^^^^^^^^
   |- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   |This location contains code that was inlined from test.scala:16
16 |        summonInline[ConfigMonoid[t]].zero *: zeroTuple[ts]
   |                                              ^^^^^^^^^^^^^
   |- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   |This location contains code that was inlined from test.scala:16
16 |        summonInline[ConfigMonoid[t]].zero *: zeroTuple[ts]
   |                                              ^^^^^^^^^^^^^
   |- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   |This location contains code that was inlined from test.scala:16
16 |        summonInline[ConfigMonoid[t]].zero *: zeroTuple[ts]
   |                                              ^^^^^^^^^^^^^
   |- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   |This location contains code that was inlined from test.scala:16
16 |        summonInline[ConfigMonoid[t]].zero *: zeroTuple[ts]
   |                                              ^^^^^^^^^^^^^
   |- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   |This location contains code that was inlined from test.scala:16
31 |      def zero: T = m.fromProduct(zeroTuple[m.MirroredElemTypes])
   |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    ----------------------------------------------------------------------------

  unhandled exception while running erasure on /Users/wmazur/projects/sandbox/src/test.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/wmazur/projects/sandbox/src/test.scala
        during phase: erasure
                mode: Mode(ImplicitsEnabled)
     library version: version 2.13.14
    compiler version: version 3.6.0-RC1-bin-SNAPSHOT-git-2facda0
            settings: -classpath /Users/wmazur/.ivy2/local/org.scala-lang/scala3-library_3/3.6.0-RC1-bin-SNAPSHOT/jars/scala3-library_3.jar:/Users/wmazur/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/wmazur/projects/sandbox/src/.scala-build/src_141c625e29-1c48eb88cd/classes/main -java-output-version 17 -sourceroot /Users/wmazur/projects/sandbox/src

Exception in thread "main" java.lang.AssertionError: assertion failed: method *: in trait Tuple
        at scala.runtime.Scala3RunTime$.assertFailed(Scala3RunTime.scala:8)
        at dotty.tools.dotc.transform.Erasure$Typer.mapOwner$1(Erasure.scala:697)
        at dotty.tools.dotc.transform.Erasure$Typer.typedSelect(Erasure.scala:709)
        at dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:3410)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3519)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3597)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3601)
        at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3712)
        at dotty.tools.dotc.transform.Erasure$Typer.typedTypeApply(Erasure.scala:823)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3455)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3520)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3597)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3601)
        at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3712)
        at dotty.tools.dotc.transform.Erasure$Typer.typedApply(Erasure.scala:850)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3435)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3520)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3597)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3601)
        at dotty.tools.dotc.transform.Erasure$Typer.typedTyped(Erasure.scala:640)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3440)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3520)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3597)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3601)
        at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3712)
        at dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:1419)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3443)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3520)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3597)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3601)
        at dotty.tools.dotc.transform.Erasure$Typer.typedTyped(Erasure.scala:640)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3440)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3520)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3597)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3601)
        at dotty.tools.dotc.typer.ReTyper.typedInlined(ReTyper.scala:100)
        at dotty.tools.dotc.transform.Erasure$Typer.typedInlined(Erasure.scala:911)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3458)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3520)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3597)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3601)
        at dotty.tools.dotc.transform.Erasure$Typer.typedSelect(Erasure.scala:678)
        at dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:3410)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3519)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3597)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3601)
        at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3712)
        at dotty.tools.dotc.transform.Erasure$Typer.typedTypeApply(Erasure.scala:823)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3455)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3520)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3597)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3601)
        at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3712)
        at dotty.tools.dotc.transform.Erasure$Typer.typedApply(Erasure.scala:850)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3435)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3520)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3597)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3601)
        at dotty.tools.dotc.transform.Erasure$Typer.typedTyped(Erasure.scala:640)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3440)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3520)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3597)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3601)
        at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3712)
        at dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:1419)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3443)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3520)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3597)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3601)
        at dotty.tools.dotc.transform.Erasure$Typer.typedTyped(Erasure.scala:640)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3440)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3520)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3597)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3601)
        at dotty.tools.dotc.typer.ReTyper.typedInlined(ReTyper.scala:100)
        at dotty.tools.dotc.transform.Erasure$Typer.typedInlined(Erasure.scala:911)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3458)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3520)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3597)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3601)
        at dotty.tools.dotc.transform.Erasure$Typer.typedSelect(Erasure.scala:678)
        at dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:3410)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3519)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3597)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3601)
        at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3712)
        at dotty.tools.dotc.transform.Erasure$Typer.typedTypeApply(Erasure.scala:823)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3455)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3520)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3597)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3601)
        at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3712)
        at dotty.tools.dotc.transform.Erasure$Typer.typedApply(Erasure.scala:850)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3435)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3520)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3597)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3601)
        at dotty.tools.dotc.transform.Erasure$Typer.typedTyped(Erasure.scala:640)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3440)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3520)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3597)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3601)
        at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3712)
        at dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:1419)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3443)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3520)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3597)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3601)
        at dotty.tools.dotc.transform.Erasure$Typer.typedTyped(Erasure.scala:640)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3440)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3520)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3597)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3601)
        at dotty.tools.dotc.typer.ReTyper.typedInlined(ReTyper.scala:100)
        at dotty.tools.dotc.transform.Erasure$Typer.typedInlined(Erasure.scala:911)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3458)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3520)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3597)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3601)
        at dotty.tools.dotc.transform.Erasure$Typer.typedSelect(Erasure.scala:678)
        at dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:3410)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3519)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3597)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3601)
        at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3712)
        at dotty.tools.dotc.transform.Erasure$Typer.typedTypeApply(Erasure.scala:823)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3455)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3520)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3597)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3601)
        at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3712)
        at dotty.tools.dotc.transform.Erasure$Typer.typedApply(Erasure.scala:850)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3435)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3520)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3597)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3601)
        at dotty.tools.dotc.transform.Erasure$Typer.typedTyped(Erasure.scala:640)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3440)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3520)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3597)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3601)
        at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3712)
        at dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:1419)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3443)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3520)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3597)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3601)
        at dotty.tools.dotc.transform.Erasure$Typer.typedTyped(Erasure.scala:640)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3440)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3520)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3597)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3601)
        at dotty.tools.dotc.typer.ReTyper.typedInlined(ReTyper.scala:100)
        at dotty.tools.dotc.transform.Erasure$Typer.typedInlined(Erasure.scala:911)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3458)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3520)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3597)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3601)
        at dotty.tools.dotc.transform.Erasure$Typer.typedSelect(Erasure.scala:678)
        at dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:3410)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3519)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3597)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3601)
        at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3712)
        at dotty.tools.dotc.transform.Erasure$Typer.typedTypeApply(Erasure.scala:823)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3455)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3520)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3597)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3601)
        at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3712)
        at dotty.tools.dotc.transform.Erasure$Typer.typedApply(Erasure.scala:850)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3435)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3520)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3597)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3601)
        at dotty.tools.dotc.transform.Erasure$Typer.typedTyped(Erasure.scala:640)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3440)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3520)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3597)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3601)
        at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3712)
        at dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:1419)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3443)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3520)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3597)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3601)
        at dotty.tools.dotc.transform.Erasure$Typer.typedTyped(Erasure.scala:640)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3440)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3520)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3597)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3601)
        at dotty.tools.dotc.typer.ReTyper.typedInlined(ReTyper.scala:100)
        at dotty.tools.dotc.transform.Erasure$Typer.typedInlined(Erasure.scala:911)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3458)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3520)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3597)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3601)
        at dotty.tools.dotc.transform.Erasure$Typer.typedSelect(Erasure.scala:678)
        at dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:3410)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3519)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3597)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3601)
        at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3712)
        at dotty.tools.dotc.transform.Erasure$Typer.typedTypeApply(Erasure.scala:823)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3455)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3520)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3597)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3601)
        at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3712)
        at dotty.tools.dotc.transform.Erasure$Typer.typedApply(Erasure.scala:850)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3435)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3520)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3597)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3601)
        at dotty.tools.dotc.transform.Erasure$Typer.typedTyped(Erasure.scala:640)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3440)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3520)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3597)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3601)
        at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3712)
        at dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:1419)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3443)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3520)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3597)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3601)
        at dotty.tools.dotc.transform.Erasure$Typer.typedTyped(Erasure.scala:640)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3440)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3520)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3597)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3601)
        at dotty.tools.dotc.typer.ReTyper.typedInlined(ReTyper.scala:100)
        at dotty.tools.dotc.transform.Erasure$Typer.typedInlined(Erasure.scala:911)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3458)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3520)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3597)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3601)
        at dotty.tools.dotc.transform.Erasure$Typer.typedSelect(Erasure.scala:678)
        at dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:3410)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3519)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3597)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3601)
        at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3712)
        at dotty.tools.dotc.transform.Erasure$Typer.typedTypeApply(Erasure.scala:823)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3455)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3520)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3597)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3601)
        at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3712)
        at dotty.tools.dotc.transform.Erasure$Typer.typedApply(Erasure.scala:850)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3435)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3520)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3597)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3601)
        at dotty.tools.dotc.transform.Erasure$Typer.typedTyped(Erasure.scala:640)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3440)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3520)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3597)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3601)
        at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3712)
        at dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:1419)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3443)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3520)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3597)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3601)
        at dotty.tools.dotc.transform.Erasure$Typer.typedTyped(Erasure.scala:640)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3440)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3520)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3597)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3601)
        at dotty.tools.dotc.typer.ReTyper.typedInlined(ReTyper.scala:100)
        at dotty.tools.dotc.transform.Erasure$Typer.typedInlined(Erasure.scala:911)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3458)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3520)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3597)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3601)
        at dotty.tools.dotc.transform.Erasure$Typer.typedSelect(Erasure.scala:678)
        at dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:3410)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3519)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3597)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3601)
        at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3712)
        at dotty.tools.dotc.transform.Erasure$Typer.typedTypeApply(Erasure.scala:823)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3455)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3520)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3597)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3601)
        at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3712)
        at dotty.tools.dotc.transform.Erasure$Typer.typedApply(Erasure.scala:850)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3435)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3520)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3597)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3601)
        at dotty.tools.dotc.transform.Erasure$Typer.typedTyped(Erasure.scala:640)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3440)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3520)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3597)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3601)
        at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3712)
        at dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:1419)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3443)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3520)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3597)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3601)
        at dotty.tools.dotc.transform.Erasure$Typer.typedTyped(Erasure.scala:640)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3440)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3520)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3597)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3601)
        at dotty.tools.dotc.typer.ReTyper.typedInlined(ReTyper.scala:100)
        at dotty.tools.dotc.transform.Erasure$Typer.typedInlined(Erasure.scala:911)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3458)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3520)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3597)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3601)
        at dotty.tools.dotc.transform.Erasure$Typer.typedSelect(Erasure.scala:678)
        at dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:3410)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3519)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3597)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3601)
        at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3712)
        at dotty.tools.dotc.transform.Erasure$Typer.typedTypeApply(Erasure.scala:823)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3455)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3520)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3597)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3601)
        at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3712)
        at dotty.tools.dotc.transform.Erasure$Typer.typedApply(Erasure.scala:850)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3435)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3520)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3597)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3601)
        at dotty.tools.dotc.transform.Erasure$Typer.typedTyped(Erasure.scala:640)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3440)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3520)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3597)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3601)
        at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3712)
        at dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:1419)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3443)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3520)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3597)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3601)
        at dotty.tools.dotc.transform.Erasure$Typer.typedTyped(Erasure.scala:640)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3440)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3520)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3597)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3601)
        at dotty.tools.dotc.typer.ReTyper.typedInlined(ReTyper.scala:100)
        at dotty.tools.dotc.transform.Erasure$Typer.typedInlined(Erasure.scala:911)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3458)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3520)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3597)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3601)
        at dotty.tools.dotc.transform.Erasure$Typer.typedSelect(Erasure.scala:678)
        at dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:3410)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3519)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3597)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3601)
        at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3712)
        at dotty.tools.dotc.transform.Erasure$Typer.typedTypeApply(Erasure.scala:823)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3455)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3520)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3597)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3601)
        at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3712)
        at dotty.tools.dotc.transform.Erasure$Typer.typedApply(Erasure.scala:850)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3435)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3520)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3597)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3601)
        at dotty.tools.dotc.transform.Erasure$Typer.typedTyped(Erasure.scala:640)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3440)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3520)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3597)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3601)
        at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3712)
        at dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:1419)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3443)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3520)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3597)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3601)
        at dotty.tools.dotc.transform.Erasure$Typer.typedTyped(Erasure.scala:640)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3440)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3520)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3597)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3601)
        at dotty.tools.dotc.typer.ReTyper.typedInlined(ReTyper.scala:100)
        at dotty.tools.dotc.transform.Erasure$Typer.typedInlined(Erasure.scala:911)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3458)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3520)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3597)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3601)
        at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3712)
        at dotty.tools.dotc.transform.Erasure$Typer.$anonfun$7(Erasure.scala:863)
        at dotty.tools.dotc.core.Decorators$.zipWithConserve(Decorators.scala:160)
        at dotty.tools.dotc.transform.Erasure$Typer.typedApply(Erasure.scala:863)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3435)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3520)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3597)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3601)
        at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3712)
        at dotty.tools.dotc.typer.Typer.$anonfun$65(Typer.scala:2859)
        at dotty.tools.dotc.inlines.PrepareInlineable$.dropInlineIfError(PrepareInlineable.scala:256)
        at dotty.tools.dotc.typer.Typer.typedDefDef(Typer.scala:2859)
        at dotty.tools.dotc.transform.Erasure$Typer.typedDefDef(Erasure.scala:969)
        at dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:3417)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3519)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3597)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3601)
        at dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:3623)
        at dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:3669)
        at dotty.tools.dotc.transform.Erasure$Typer.typedStats(Erasure.scala:1082)
        at dotty.tools.dotc.typer.Typer.typedClassDef(Typer.scala:3117)
        at dotty.tools.dotc.transform.Erasure$Typer.typedClassDef(Erasure.scala:1058)
        at dotty.tools.dotc.typer.Typer.typedTypeOrClassDef$1(Typer.scala:3423)
        at dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:3427)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3519)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3597)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3601)
        at dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:3623)
        at dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:3669)
        at dotty.tools.dotc.transform.Erasure$Typer.typedStats(Erasure.scala:1082)
        at dotty.tools.dotc.typer.Typer.typedBlockStats(Typer.scala:1412)
        at dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:1416)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3443)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3520)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3597)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3601)
        at dotty.tools.dotc.transform.Erasure$Typer.typedTyped(Erasure.scala:640)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3440)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3520)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3597)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3601)
        at dotty.tools.dotc.typer.ReTyper.typedInlined(ReTyper.scala:100)
        at dotty.tools.dotc.transform.Erasure$Typer.typedInlined(Erasure.scala:911)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3458)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3520)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3597)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3601)
        at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3712)
        at dotty.tools.dotc.typer.Typer.$anonfun$65(Typer.scala:2859)
        at dotty.tools.dotc.inlines.PrepareInlineable$.dropInlineIfError(PrepareInlineable.scala:256)
        at dotty.tools.dotc.typer.Typer.typedDefDef(Typer.scala:2859)
        at dotty.tools.dotc.transform.Erasure$Typer.typedDefDef(Erasure.scala:969)
        at dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:3417)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3519)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3597)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3601)
        at dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:3623)
        at dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:3669)
        at dotty.tools.dotc.transform.Erasure$Typer.typedStats(Erasure.scala:1082)
        at dotty.tools.dotc.typer.Typer.typedClassDef(Typer.scala:3117)
        at dotty.tools.dotc.transform.Erasure$Typer.typedClassDef(Erasure.scala:1058)
        at dotty.tools.dotc.typer.Typer.typedTypeOrClassDef$1(Typer.scala:3423)
        at dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:3427)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3519)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3597)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3601)
        at dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:3623)
        at dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:3669)
        at dotty.tools.dotc.transform.Erasure$Typer.typedStats(Erasure.scala:1082)
        at dotty.tools.dotc.typer.Typer.typedPackageDef(Typer.scala:3250)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3469)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3520)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3597)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3601)
        at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3712)
        at dotty.tools.dotc.transform.Erasure.run(Erasure.scala:145)
        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.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)
@WojciechMazur WojciechMazur added itype:bug itype:crash area:typeclass-derivation regression This worked in a previous version but doesn't anymore labels Aug 2, 2024
@WojciechMazur
Copy link
Contributor Author

Fixed by #21305

@Gedochao Gedochao linked a pull request Aug 2, 2024 that will close this issue
@odersky
Copy link
Contributor

odersky commented Aug 3, 2024

If #21305 does not get merged, a fix to correct this is to replace the last line with

  given monoid: ConfigMonoid[PublishContextualOptions] = ConfigMonoid.derive

@WojciechMazur
Copy link
Contributor Author

This reproducer is now failing crashing in main.
The crash is caused by 8a41389 introduced in #21339, (it was reverted during backport to 3.5.0)
It crashes with every -source:3.X setting

When applying the workaround (implicit val -> given) from previous post it compiles successfully

-- Error: /Users/wmazur/projects/sandbox/src/main/scala/schema.scala:48:54 -----
48 |  implicit val monoid: ConfigMonoid[PublishOptions] = ConfigMonoid.derive
   |                                                      ^^^^^^^^^^^^^^^^^^^
   |           method zeroTuple is declared as `inline`, but was not inlined
   |
   |           Try increasing `-Xmax-inlines` above 32
   |----------------------------------------------------------------------------
   |Inline stack trace
   |- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   |This location contains code that was inlined from schema.scala:15
15 |        summonInline[ConfigMonoid[t]].zero *: zeroTuple[ts]
   |                                              ^^^^^^^^^
   |- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   |This location contains code that was inlined from schema.scala:15
15 |        summonInline[ConfigMonoid[t]].zero *: zeroTuple[ts]
   |                                              ^^^^^^^^^^^^^
   |- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   |This location contains code that was inlined from schema.scala:15
15 |        summonInline[ConfigMonoid[t]].zero *: zeroTuple[ts]
   |                                              ^^^^^^^^^^^^^
   |- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   |This location contains code that was inlined from schema.scala:15
15 |        summonInline[ConfigMonoid[t]].zero *: zeroTuple[ts]
   |                                              ^^^^^^^^^^^^^
   |- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   |This location contains code that was inlined from schema.scala:15
15 |        summonInline[ConfigMonoid[t]].zero *: zeroTuple[ts]
   |                                              ^^^^^^^^^^^^^
   |- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   |This location contains code that was inlined from schema.scala:15
15 |        summonInline[ConfigMonoid[t]].zero *: zeroTuple[ts]
   |                                              ^^^^^^^^^^^^^
   |- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   |This location contains code that was inlined from schema.scala:15
15 |        summonInline[ConfigMonoid[t]].zero *: zeroTuple[ts]
   |                                              ^^^^^^^^^^^^^
   |- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   |This location contains code that was inlined from schema.scala:15
15 |        summonInline[ConfigMonoid[t]].zero *: zeroTuple[ts]
   |                                              ^^^^^^^^^^^^^
   |- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   |This location contains code that was inlined from schema.scala:15
15 |        summonInline[ConfigMonoid[t]].zero *: zeroTuple[ts]
   |                                              ^^^^^^^^^^^^^
   |- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   |This location contains code that was inlined from schema.scala:15
15 |        summonInline[ConfigMonoid[t]].zero *: zeroTuple[ts]
   |                                              ^^^^^^^^^^^^^
   |- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   |This location contains code that was inlined from schema.scala:15
30 |      def zero: T = m.fromProduct(zeroTuple[m.MirroredElemTypes])
   |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    ----------------------------------------------------------------------------
Exception in thread "main" java.lang.AssertionError: assertion failed: method *: in trait Tuple
        at scala.runtime.Scala3RunTime$.assertFailed(Scala3RunTime.scala:8)
        at dotty.tools.dotc.transform.Erasure$Typer.mapOwner$1(Erasure.scala:697)
        at dotty.tools.dotc.transform.Erasure$Typer.typedSelect(Erasure.scala:709)
        at dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:3421)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3530)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3608)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3612)
        at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3723)
        at dotty.tools.dotc.transform.Erasure$Typer.typedTypeApply(Erasure.scala:823)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3466)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3531)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3608)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3612)
        at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3723)
        at dotty.tools.dotc.transform.Erasure$Typer.typedApply(Erasure.scala:850)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3446)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3531)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3608)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3612)
        at dotty.tools.dotc.transform.Erasure$Typer.typedTyped(Erasure.scala:640)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3451)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3531)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3608)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3612)
        at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3723)
        at dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:1419)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3454)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3531)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3608)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3612)
        at dotty.tools.dotc.transform.Erasure$Typer.typedTyped(Erasure.scala:640)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3451)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3531)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3608)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3612)
        at dotty.tools.dotc.typer.ReTyper.typedInlined(ReTyper.scala:100)
        at dotty.tools.dotc.transform.Erasure$Typer.typedInlined(Erasure.scala:911)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3469)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3531)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3608)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3612)
        at dotty.tools.dotc.transform.Erasure$Typer.typedSelect(Erasure.scala:678)
        at dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:3421)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3530)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3608)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3612)
        at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3723)
        at dotty.tools.dotc.transform.Erasure$Typer.typedTypeApply(Erasure.scala:823)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3466)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3531)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3608)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3612)
        at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3723)
        at dotty.tools.dotc.transform.Erasure$Typer.typedApply(Erasure.scala:850)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3446)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3531)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3608)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3612)
        at dotty.tools.dotc.transform.Erasure$Typer.typedTyped(Erasure.scala:640)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3451)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3531)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3608)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3612)
        at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3723)
        at dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:1419)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3454)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3531)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3608)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3612)
        at dotty.tools.dotc.transform.Erasure$Typer.typedTyped(Erasure.scala:640)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3451)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3531)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3608)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3612)
        at dotty.tools.dotc.typer.ReTyper.typedInlined(ReTyper.scala:100)
        at dotty.tools.dotc.transform.Erasure$Typer.typedInlined(Erasure.scala:911)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3469)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3531)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3608)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3612)
        at dotty.tools.dotc.transform.Erasure$Typer.typedSelect(Erasure.scala:678)
        at dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:3421)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3530)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3608)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3612)
        at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3723)
        at dotty.tools.dotc.transform.Erasure$Typer.typedTypeApply(Erasure.scala:823)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3466)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3531)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3608)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3612)
        at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3723)
        at dotty.tools.dotc.transform.Erasure$Typer.typedApply(Erasure.scala:850)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3446)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3531)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3608)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3612)
        at dotty.tools.dotc.transform.Erasure$Typer.typedTyped(Erasure.scala:640)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3451)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3531)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3608)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3612)
        at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3723)
        at dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:1419)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3454)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3531)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3608)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3612)
        at dotty.tools.dotc.transform.Erasure$Typer.typedTyped(Erasure.scala:640)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3451)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3531)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3608)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3612)
        at dotty.tools.dotc.typer.ReTyper.typedInlined(ReTyper.scala:100)
        at dotty.tools.dotc.transform.Erasure$Typer.typedInlined(Erasure.scala:911)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3469)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3531)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3608)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3612)
        at dotty.tools.dotc.transform.Erasure$Typer.typedSelect(Erasure.scala:678)
        at dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:3421)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3530)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3608)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3612)
        at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3723)
        at dotty.tools.dotc.transform.Erasure$Typer.typedTypeApply(Erasure.scala:823)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3466)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3531)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3608)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3612)
        at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3723)
        at dotty.tools.dotc.transform.Erasure$Typer.typedApply(Erasure.scala:850)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3446)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3531)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3608)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3612)
        at dotty.tools.dotc.transform.Erasure$Typer.typedTyped(Erasure.scala:640)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3451)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3531)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3608)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3612)
        at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3723)
        at dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:1419)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3454)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3531)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3608)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3612)
        at dotty.tools.dotc.transform.Erasure$Typer.typedTyped(Erasure.scala:640)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3451)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3531)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3608)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3612)
        at dotty.tools.dotc.typer.ReTyper.typedInlined(ReTyper.scala:100)
        at dotty.tools.dotc.transform.Erasure$Typer.typedInlined(Erasure.scala:911)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3469)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3531)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3608)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3612)
        at dotty.tools.dotc.transform.Erasure$Typer.typedSelect(Erasure.scala:678)
        at dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:3421)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3530)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3608)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3612)
        at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3723)
        at dotty.tools.dotc.transform.Erasure$Typer.typedTypeApply(Erasure.scala:823)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3466)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3531)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3608)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3612)
        at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3723)
        at dotty.tools.dotc.transform.Erasure$Typer.typedApply(Erasure.scala:850)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3446)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3531)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3608)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3612)
        at dotty.tools.dotc.transform.Erasure$Typer.typedTyped(Erasure.scala:640)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3451)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3531)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3608)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3612)
        at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3723)
        at dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:1419)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3454)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3531)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3608)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3612)
        at dotty.tools.dotc.transform.Erasure$Typer.typedTyped(Erasure.scala:640)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3451)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3531)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3608)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3612)
        at dotty.tools.dotc.typer.ReTyper.typedInlined(ReTyper.scala:100)
        at dotty.tools.dotc.transform.Erasure$Typer.typedInlined(Erasure.scala:911)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3469)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3531)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3608)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3612)
        at dotty.tools.dotc.transform.Erasure$Typer.typedSelect(Erasure.scala:678)
        at dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:3421)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3530)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3608)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3612)
        at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3723)
        at dotty.tools.dotc.transform.Erasure$Typer.typedTypeApply(Erasure.scala:823)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3466)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3531)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3608)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3612)
        at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3723)
        at dotty.tools.dotc.transform.Erasure$Typer.typedApply(Erasure.scala:850)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3446)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3531)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3608)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3612)
        at dotty.tools.dotc.transform.Erasure$Typer.typedTyped(Erasure.scala:640)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3451)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3531)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3608)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3612)
        at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3723)
        at dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:1419)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3454)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3531)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3608)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3612)
        at dotty.tools.dotc.transform.Erasure$Typer.typedTyped(Erasure.scala:640)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3451)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3531)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3608)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3612)
        at dotty.tools.dotc.typer.ReTyper.typedInlined(ReTyper.scala:100)
        at dotty.tools.dotc.transform.Erasure$Typer.typedInlined(Erasure.scala:911)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3469)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3531)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3608)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3612)
        at dotty.tools.dotc.transform.Erasure$Typer.typedSelect(Erasure.scala:678)
        at dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:3421)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3530)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3608)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3612)
        at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3723)
        at dotty.tools.dotc.transform.Erasure$Typer.typedTypeApply(Erasure.scala:823)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3466)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3531)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3608)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3612)
        at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3723)
        at dotty.tools.dotc.transform.Erasure$Typer.typedApply(Erasure.scala:850)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3446)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3531)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3608)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3612)
        at dotty.tools.dotc.transform.Erasure$Typer.typedTyped(Erasure.scala:640)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3451)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3531)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3608)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3612)
        at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3723)
        at dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:1419)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3454)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3531)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3608)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3612)
        at dotty.tools.dotc.transform.Erasure$Typer.typedTyped(Erasure.scala:640)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3451)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3531)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3608)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3612)
        at dotty.tools.dotc.typer.ReTyper.typedInlined(ReTyper.scala:100)
        at dotty.tools.dotc.transform.Erasure$Typer.typedInlined(Erasure.scala:911)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3469)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3531)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3608)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3612)
        at dotty.tools.dotc.transform.Erasure$Typer.typedSelect(Erasure.scala:678)
        at dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:3421)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3530)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3608)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3612)
        at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3723)
        at dotty.tools.dotc.transform.Erasure$Typer.typedTypeApply(Erasure.scala:823)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3466)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3531)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3608)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3612)
        at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3723)
        at dotty.tools.dotc.transform.Erasure$Typer.typedApply(Erasure.scala:850)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3446)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3531)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3608)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3612)
        at dotty.tools.dotc.transform.Erasure$Typer.typedTyped(Erasure.scala:640)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3451)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3531)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3608)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3612)
        at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3723)
        at dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:1419)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3454)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3531)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3608)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3612)
        at dotty.tools.dotc.transform.Erasure$Typer.typedTyped(Erasure.scala:640)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3451)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3531)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3608)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3612)
        at dotty.tools.dotc.typer.ReTyper.typedInlined(ReTyper.scala:100)
        at dotty.tools.dotc.transform.Erasure$Typer.typedInlined(Erasure.scala:911)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3469)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3531)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3608)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3612)
        at dotty.tools.dotc.transform.Erasure$Typer.typedSelect(Erasure.scala:678)
        at dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:3421)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3530)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3608)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3612)
        at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3723)
        at dotty.tools.dotc.transform.Erasure$Typer.typedTypeApply(Erasure.scala:823)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3466)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3531)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3608)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3612)
        at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3723)
        at dotty.tools.dotc.transform.Erasure$Typer.typedApply(Erasure.scala:850)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3446)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3531)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3608)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3612)
        at dotty.tools.dotc.transform.Erasure$Typer.typedTyped(Erasure.scala:640)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3451)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3531)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3608)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3612)
        at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3723)
        at dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:1419)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3454)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3531)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3608)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3612)
        at dotty.tools.dotc.transform.Erasure$Typer.typedTyped(Erasure.scala:640)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3451)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3531)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3608)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3612)
        at dotty.tools.dotc.typer.ReTyper.typedInlined(ReTyper.scala:100)
        at dotty.tools.dotc.transform.Erasure$Typer.typedInlined(Erasure.scala:911)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3469)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3531)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3608)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3612)
        at dotty.tools.dotc.transform.Erasure$Typer.typedSelect(Erasure.scala:678)
        at dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:3421)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3530)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3608)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3612)
        at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3723)
        at dotty.tools.dotc.transform.Erasure$Typer.typedTypeApply(Erasure.scala:823)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3466)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3531)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3608)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3612)
        at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3723)
        at dotty.tools.dotc.transform.Erasure$Typer.typedApply(Erasure.scala:850)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3446)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3531)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3608)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3612)
        at dotty.tools.dotc.transform.Erasure$Typer.typedTyped(Erasure.scala:640)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3451)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3531)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3608)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3612)
        at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3723)
        at dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:1419)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3454)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3531)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3608)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3612)
        at dotty.tools.dotc.transform.Erasure$Typer.typedTyped(Erasure.scala:640)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3451)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3531)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3608)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3612)
        at dotty.tools.dotc.typer.ReTyper.typedInlined(ReTyper.scala:100)
        at dotty.tools.dotc.transform.Erasure$Typer.typedInlined(Erasure.scala:911)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3469)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3531)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3608)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3612)
        at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3723)
        at dotty.tools.dotc.transform.Erasure$Typer.$anonfun$7(Erasure.scala:863)
        at dotty.tools.dotc.core.Decorators$.zipWithConserve(Decorators.scala:160)
        at dotty.tools.dotc.transform.Erasure$Typer.typedApply(Erasure.scala:863)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3446)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3531)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3608)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3612)
        at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3723)
        at dotty.tools.dotc.typer.Typer.$anonfun$65(Typer.scala:2865)
        at dotty.tools.dotc.inlines.PrepareInlineable$.dropInlineIfError(PrepareInlineable.scala:256)
        at dotty.tools.dotc.typer.Typer.typedDefDef(Typer.scala:2865)
        at dotty.tools.dotc.transform.Erasure$Typer.typedDefDef(Erasure.scala:969)
        at dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:3428)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3530)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3608)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3612)
        at dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:3634)
        at dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:3680)
        at dotty.tools.dotc.transform.Erasure$Typer.typedStats(Erasure.scala:1082)
        at dotty.tools.dotc.typer.Typer.typedClassDef(Typer.scala:3128)
        at dotty.tools.dotc.transform.Erasure$Typer.typedClassDef(Erasure.scala:1058)
        at dotty.tools.dotc.typer.Typer.typedTypeOrClassDef$1(Typer.scala:3434)
        at dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:3438)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3530)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3608)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3612)
        at dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:3634)
        at dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:3680)
        at dotty.tools.dotc.transform.Erasure$Typer.typedStats(Erasure.scala:1082)
        at dotty.tools.dotc.typer.Typer.typedBlockStats(Typer.scala:1412)
        at dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:1416)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3454)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3531)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3608)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3612)
        at dotty.tools.dotc.transform.Erasure$Typer.typedTyped(Erasure.scala:640)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3451)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3531)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3608)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3612)
        at dotty.tools.dotc.typer.ReTyper.typedInlined(ReTyper.scala:100)
        at dotty.tools.dotc.transform.Erasure$Typer.typedInlined(Erasure.scala:911)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3469)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3531)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3608)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3612)
        at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3723)
        at dotty.tools.dotc.typer.Typer.$anonfun$65(Typer.scala:2865)
        at dotty.tools.dotc.inlines.PrepareInlineable$.dropInlineIfError(PrepareInlineable.scala:256)
        at dotty.tools.dotc.typer.Typer.typedDefDef(Typer.scala:2865)
        at dotty.tools.dotc.transform.Erasure$Typer.typedDefDef(Erasure.scala:969)
        at dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:3428)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3530)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3608)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3612)
        at dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:3634)
        at dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:3680)
        at dotty.tools.dotc.transform.Erasure$Typer.typedStats(Erasure.scala:1082)
        at dotty.tools.dotc.typer.Typer.typedClassDef(Typer.scala:3128)
        at dotty.tools.dotc.transform.Erasure$Typer.typedClassDef(Erasure.scala:1058)
        at dotty.tools.dotc.typer.Typer.typedTypeOrClassDef$1(Typer.scala:3434)
        at dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:3438)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3530)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3608)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3612)
        at dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:3634)
        at dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:3680)
        at dotty.tools.dotc.transform.Erasure$Typer.typedStats(Erasure.scala:1082)
        at dotty.tools.dotc.typer.Typer.typedPackageDef(Typer.scala:3261)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3480)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3531)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3608)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3612)
        at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3723)
        at dotty.tools.dotc.transform.Erasure.run(Erasure.scala:145)
        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.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)

  unhandled exception while running erasure on /Users/wmazur/projects/sandbox/src/main/scala/schema.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/wmazur/projects/sandbox/src/main/scala/schema.scala
        during phase: erasure
                mode: Mode(ImplicitsEnabled)
     library version: version 2.13.14
    compiler version: version 3.6.0-RC1-bin-SNAPSHOT-nonbootstrapped-git-c09154a
            settings: -classpath /Users/wmazur/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.14/scala-library-2.13.14.jar:/Users/wmazur/projects/scala3/library/../out/bootstrap/scala3-library-bootstrapped/scala-3.6.0-RC1-bin-SNAPSHOT-nonbootstrapped/scala3-library_3-3.6.0-RC1-bin-SNAPSHOT.jar -d out/test 

@odersky
Copy link
Contributor

odersky commented Aug 9, 2024

I think we should revert 8a41389 in main as well. @EugeneFlesselle can you do that?

@EugeneFlesselle
Copy link
Contributor

I think we should revert 8a41389 in main as well. @EugeneFlesselle can you do that?

Yes I agree, I'll do that this morning.

EugeneFlesselle added a commit that referenced this issue Aug 9, 2024
This reverts commit 7c4bd67
See [#21344 comment]
(#21344 (comment))

We will have to reconsider how to alleviate the transitory problem
before releasing 3.6.

Fixes #21320
Fixes #21352
WojciechMazur added a commit that referenced this issue Aug 28, 2024
This reverts commit 7c4bd67
See #21344 (comment)

Fixes #21320

[Cherry-picked 58f3407][modified]
@WojciechMazur WojciechMazur added this to the 3.5.2 milestone Oct 8, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area:typeclass-derivation itype:bug itype:crash regression This worked in a previous version but doesn't anymore
Projects
None yet
3 participants