scala3
scala3 copied to clipboard
Compiler crash when deriving typeclass for a sum type defined inside a def
Compiler version
3.0.0-RC3
Minimized code
The problem disappears if I move the sealed trait definition outside of the def. It also disappears if I have a given for A and B in scope.
import scala.deriving.Mirror
import scala.compiletime._
trait Schema[T]
object Schema {
inline def recurse[A <: Tuple]: List[Schema[Any]] =
inline erasedValue[A] match {
case _: (t *: ts) => summonInline[Schema[t]].asInstanceOf[Schema[Any]] :: recurse[ts]
case EmptyTuple => Nil
}
inline def derived[T]: Schema[T] =
inline summonInline[Mirror.Of[T]] match {
case m: Mirror.SumOf[T] =>
val subTypes = recurse[m.MirroredElemTypes]
new Schema[T] { }
case m: Mirror.ProductOf[T] =>
val fields = recurse[m.MirroredElemTypes]
new Schema[T] { }
}
inline given gen[T]: Schema[T] = derived
}
@main def hello: Unit = {
sealed trait Item
object Item {
case object A extends Item
case object B extends Item
}
summon[Schema[Item]]
}
Output (click arrow to expand)
Test / clean / compile
exception while typing Item$.this of class class dotty.tools.dotc.ast.Trees$This # -1
exception while typing Item$.this.A of class class dotty.tools.dotc.ast.Trees$Select # -1
exception while typing Item$.this.A:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
of class class dotty.tools.dotc.ast.Trees$Typed # -1
exception while typing Item$.this.A.$asInstanceOf$[
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
] of class class dotty.tools.dotc.ast.Trees$TypeApply # -1
exception while typing given val t:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
=
Item$.this.A.$asInstanceOf$[
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
] of class class dotty.tools.dotc.ast.Trees$ValDef # -1
exception while typing {
given val t:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
=
Item$.this.A.$asInstanceOf$[
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
]
t:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
} of class class dotty.tools.dotc.ast.Trees$Block # -1
exception while typing {
given val t:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
=
Item$.this.A.$asInstanceOf$[
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
]
t:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
} of class class dotty.tools.dotc.ast.Trees$Inlined # -1
exception while typing val $scrutinee6:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
=
{
given val t:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
=
Item$.this.A.$asInstanceOf$[
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
]
t:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
} of class class dotty.tools.dotc.ast.Trees$ValDef # -1
exception while typing {
val $scrutinee6:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
=
{
given val t:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
=
Item$.this.A.$asInstanceOf$[
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
]
t:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
}
val m:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
= $scrutinee6
val fields: scala.collection.immutable.List[Schema[Any]] =
Nil:scala.collection.immutable.List[Schema[Any]]
{
final class $anon() extends Object(), Schema[Test$package.Item.A.type] {}
new Object with Schema {...}():Schema[Test$package.Item.A.type]
}
} of class class dotty.tools.dotc.ast.Trees$Block # -1
exception while typing {
val $scrutinee6:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
=
{
given val t:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
=
Item$.this.A.$asInstanceOf$[
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
]
t:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
}
val m:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
= $scrutinee6
val fields: scala.collection.immutable.List[Schema[Any]] =
Nil:scala.collection.immutable.List[Schema[Any]]
{
final class $anon() extends Object(), Schema[Test$package.Item.A.type] {}
new Object with Schema {...}():Schema[Test$package.Item.A.type]
}
}:Schema[Test$package.Item.A.type] of class class dotty.tools.dotc.ast.Trees$Typed # -1
exception while typing {
val $scrutinee6:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
=
{
given val t:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
=
Item$.this.A.$asInstanceOf$[
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
]
t:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
}
val m:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
= $scrutinee6
val fields: scala.collection.immutable.List[Schema[Any]] =
Nil:scala.collection.immutable.List[Schema[Any]]
{
final class $anon() extends Object(), Schema[Test$package.Item.A.type] {}
new Object with Schema {...}():Schema[Test$package.Item.A.type]
}
}:Schema[Test$package.Item.A.type] of class class dotty.tools.dotc.ast.Trees$Inlined # -1
exception while typing {
val $scrutinee6:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
=
{
given val t:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
=
Item$.this.A.$asInstanceOf$[
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
]
t:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
}
val m:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
= $scrutinee6
val fields: scala.collection.immutable.List[Schema[Any]] =
Nil:scala.collection.immutable.List[Schema[Any]]
{
final class $anon() extends Object(), Schema[Test$package.Item.A.type] {}
new Object with Schema {...}():Schema[Test$package.Item.A.type]
}
}:Schema[Test$package.Item.A.type]:Schema[Test$package.Item.A.type] of class class dotty.tools.dotc.ast.Trees$Typed # -1
exception while typing {
val $scrutinee6:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
=
{
given val t:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
=
Item$.this.A.$asInstanceOf$[
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
]
t:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
}
val m:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
= $scrutinee6
val fields: scala.collection.immutable.List[Schema[Any]] =
Nil:scala.collection.immutable.List[Schema[Any]]
{
final class $anon() extends Object(), Schema[Test$package.Item.A.type] {}
new Object with Schema {...}():Schema[Test$package.Item.A.type]
}
}:Schema[Test$package.Item.A.type]:Schema[Test$package.Item.A.type] of class class dotty.tools.dotc.ast.Trees$Inlined # -1
exception while typing given val t: Schema[Test$package.Item.A.type] =
{
val $scrutinee6:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
=
{
given val t:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
=
Item$.this.A.$asInstanceOf$[
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
]
t:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
}
val m:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
= $scrutinee6
val fields: scala.collection.immutable.List[Schema[Any]] =
Nil:scala.collection.immutable.List[Schema[Any]]
{
final class $anon() extends Object(), Schema[Test$package.Item.A.type] {}
new Object with Schema {...}():Schema[Test$package.Item.A.type]
}
}:Schema[Test$package.Item.A.type]:Schema[Test$package.Item.A.type] of class class dotty.tools.dotc.ast.Trees$ValDef # -1
exception while typing {
given val t: Schema[Test$package.Item.A.type] =
{
val $scrutinee6:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
=
{
given val t:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
=
Item$.this.A.$asInstanceOf$[
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
]
t:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
}
val m:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
= $scrutinee6
val fields: scala.collection.immutable.List[Schema[Any]] =
Nil:scala.collection.immutable.List[Schema[Any]]
{
final class $anon() extends Object(), Schema[Test$package.Item.A.type] {
}
new Object with Schema {...}():Schema[Test$package.Item.A.type]
}
}:Schema[Test$package.Item.A.type]:Schema[Test$package.Item.A.type]
t:Schema[Test$package.Item.A.type]
} of class class dotty.tools.dotc.ast.Trees$Block # -1
exception while typing {
given val t: Schema[Test$package.Item.A.type] =
{
val $scrutinee6:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
=
{
given val t:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
=
Item$.this.A.$asInstanceOf$[
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
]
t:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
}
val m:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
= $scrutinee6
val fields: scala.collection.immutable.List[Schema[Any]] =
Nil:scala.collection.immutable.List[Schema[Any]]
{
final class $anon() extends Object(), Schema[Test$package.Item.A.type] {
}
new Object with Schema {...}():Schema[Test$package.Item.A.type]
}
}:Schema[Test$package.Item.A.type]:Schema[Test$package.Item.A.type]
t:Schema[Test$package.Item.A.type]
} of class class dotty.tools.dotc.ast.Trees$Inlined # -1
exception while typing {
given val t: Schema[Test$package.Item.A.type] =
{
val $scrutinee6:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
=
{
given val t:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
=
Item$.this.A.$asInstanceOf$[
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
]
t:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
}
val m:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
= $scrutinee6
val fields: scala.collection.immutable.List[Schema[Any]] =
Nil:scala.collection.immutable.List[Schema[Any]]
{
final class $anon() extends Object(), Schema[Test$package.Item.A.type] {
}
new Object with Schema {...}():Schema[Test$package.Item.A.type]
}
}:Schema[Test$package.Item.A.type]:Schema[Test$package.Item.A.type]
t:Schema[Test$package.Item.A.type]
}:Schema[Any] of class class dotty.tools.dotc.ast.Trees$Typed # -1
exception while typing {
given val t: Schema[Test$package.Item.A.type] =
(
{
val $scrutinee6:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
=
{
given val t:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
=
Item$.this.A.$asInstanceOf$[
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
]
t:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
}
val m:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
= $scrutinee6
val fields: scala.collection.immutable.List[Schema[Any]] =
Nil:scala.collection.immutable.List[Schema[Any]]
{
final class $anon() extends Object(), Schema[Test$package.Item.A.type]
{
}
new Object with Schema {...}():Schema[Test$package.Item.A.type]
}
}:Schema[Test$package.Item.A.type]
:Schema[Test$package.Item.A.type])
(t:Schema[Test$package.Item.A.type])
}.asInstanceOf[Schema[Any]] of class class dotty.tools.dotc.ast.Trees$TypeApply # -1
exception while typing val elem$1: Schema[Any] =
{
given val t: Schema[Test$package.Item.A.type] =
(
{
val $scrutinee6:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
=
{
given val t:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
=
Item$.this.A.$asInstanceOf$[
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
]
t:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
}
val m:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
= $scrutinee6
val fields: scala.collection.immutable.List[Schema[Any]] =
Nil:scala.collection.immutable.List[Schema[Any]]
{
final class $anon() extends Object(),
Schema[Test$package.Item.A.type]
{}
new Object with Schema {...}():Schema[Test$package.Item.A.type]
}
}:Schema[Test$package.Item.A.type]
:Schema[Test$package.Item.A.type])
(t:Schema[Test$package.Item.A.type])
}.asInstanceOf[Schema[Any]] of class class dotty.tools.dotc.ast.Trees$ValDef # -1
exception while typing {
val elem$1: Schema[Any] =
{
given val t: Schema[Test$package.Item.A.type] =
(
{
val $scrutinee6:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
=
{
given val t:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
=
Item$.this.A.$asInstanceOf$[
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
]
t:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
}
val m:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
= $scrutinee6
val fields: scala.collection.immutable.List[Schema[Any]] =
Nil:scala.collection.immutable.List[Schema[Any]]
{
final class $anon() extends Object(),
Schema[Test$package.Item.A.type]
{}
new Object with Schema {...}():Schema[Test$package.Item.A.type]
}
}:Schema[Test$package.Item.A.type]
:Schema[Test$package.Item.A.type])
(t:Schema[Test$package.Item.A.type])
}.asInstanceOf[Schema[Any]]
(
{
val elem$1: Schema[Any] =
{
given val t: Schema[Test$package.Item.B.type] =
(
{
val $scrutinee11:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.B.type;
MirroredType = Test$package.Item.B.type
; MirroredLabel = ("B" : String)
}
=
{
given val t:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.B.type;
MirroredType = Test$package.Item.B.type
; MirroredLabel = ("B" : String)
}
=
Item$.this.B.$asInstanceOf$[
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.B.type;
MirroredType = Test$package.Item.B.type
; MirroredLabel = ("B" : String)
}
]
t:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.B.type;
MirroredType = Test$package.Item.B.type
; MirroredLabel = ("B" : String)
}
}
val m:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.B.type;
MirroredType = Test$package.Item.B.type
; MirroredLabel = ("B" : String)
}
= $scrutinee11
val fields: scala.collection.immutable.List[Schema[Any]] =
Nil:scala.collection.immutable.List[Schema[Any]]
{
final class $anon() extends Object(),
Schema[Test$package.Item.B.type]
{}
new Object with Schema {...}():
Schema[Test$package.Item.B.type]
}
}:Schema[Test$package.Item.B.type]
:Schema[Test$package.Item.B.type])
(t:Schema[Test$package.Item.B.type])
}.asInstanceOf[Schema[Any]]
(Nil:scala.collection.immutable.List[Schema[Any]]).::[Schema[Any]](elem$1)
}
:scala.collection.immutable.List[Schema[Any]]).::[Schema[Any]](elem$1)
} of class class dotty.tools.dotc.ast.Trees$Block # -1
exception while typing {
val elem$1: Schema[Any] =
{
given val t: Schema[Test$package.Item.A.type] =
(
{
val $scrutinee6:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
=
{
given val t:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
=
Item$.this.A.$asInstanceOf$[
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
]
t:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
}
val m:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
= $scrutinee6
val fields: scala.collection.immutable.List[Schema[Any]] =
Nil:scala.collection.immutable.List[Schema[Any]]
{
final class $anon() extends Object(),
Schema[Test$package.Item.A.type]
{}
new Object with Schema {...}():Schema[Test$package.Item.A.type]
}
}:Schema[Test$package.Item.A.type]
:Schema[Test$package.Item.A.type])
(t:Schema[Test$package.Item.A.type])
}.asInstanceOf[Schema[Any]]
(
{
val elem$1: Schema[Any] =
{
given val t: Schema[Test$package.Item.B.type] =
(
{
val $scrutinee11:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.B.type;
MirroredType = Test$package.Item.B.type
; MirroredLabel = ("B" : String)
}
=
{
given val t:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.B.type;
MirroredType = Test$package.Item.B.type
; MirroredLabel = ("B" : String)
}
=
Item$.this.B.$asInstanceOf$[
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.B.type;
MirroredType = Test$package.Item.B.type
; MirroredLabel = ("B" : String)
}
]
t:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.B.type;
MirroredType = Test$package.Item.B.type
; MirroredLabel = ("B" : String)
}
}
val m:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.B.type;
MirroredType = Test$package.Item.B.type
; MirroredLabel = ("B" : String)
}
= $scrutinee11
val fields: scala.collection.immutable.List[Schema[Any]] =
Nil:scala.collection.immutable.List[Schema[Any]]
{
final class $anon() extends Object(),
Schema[Test$package.Item.B.type]
{}
new Object with Schema {...}():
Schema[Test$package.Item.B.type]
}
}:Schema[Test$package.Item.B.type]
:Schema[Test$package.Item.B.type])
(t:Schema[Test$package.Item.B.type])
}.asInstanceOf[Schema[Any]]
(Nil:scala.collection.immutable.List[Schema[Any]]).::[Schema[Any]](elem$1)
}
:scala.collection.immutable.List[Schema[Any]]).::[Schema[Any]](elem$1)
}:scala.collection.immutable.List[Schema[Any]] of class class dotty.tools.dotc.ast.Trees$Typed # -1
exception while typing {
val elem$1: Schema[Any] =
{
given val t: Schema[Test$package.Item.A.type] =
(
{
val $scrutinee6:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
=
{
given val t:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
=
Item$.this.A.$asInstanceOf$[
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
]
t:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
}
val m:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
= $scrutinee6
val fields: scala.collection.immutable.List[Schema[Any]] =
Nil:scala.collection.immutable.List[Schema[Any]]
{
final class $anon() extends Object(),
Schema[Test$package.Item.A.type]
{}
new Object with Schema {...}():Schema[Test$package.Item.A.type]
}
}:Schema[Test$package.Item.A.type]
:Schema[Test$package.Item.A.type])
(t:Schema[Test$package.Item.A.type])
}.asInstanceOf[Schema[Any]]
(
{
val elem$1: Schema[Any] =
{
given val t: Schema[Test$package.Item.B.type] =
(
{
val $scrutinee11:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.B.type;
MirroredType = Test$package.Item.B.type
; MirroredLabel = ("B" : String)
}
=
{
given val t:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.B.type;
MirroredType = Test$package.Item.B.type
; MirroredLabel = ("B" : String)
}
=
Item$.this.B.$asInstanceOf$[
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.B.type;
MirroredType = Test$package.Item.B.type
; MirroredLabel = ("B" : String)
}
]
t:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.B.type;
MirroredType = Test$package.Item.B.type
; MirroredLabel = ("B" : String)
}
}
val m:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.B.type;
MirroredType = Test$package.Item.B.type
; MirroredLabel = ("B" : String)
}
= $scrutinee11
val fields: scala.collection.immutable.List[Schema[Any]] =
Nil:scala.collection.immutable.List[Schema[Any]]
{
final class $anon() extends Object(),
Schema[Test$package.Item.B.type]
{}
new Object with Schema {...}():
Schema[Test$package.Item.B.type]
}
}:Schema[Test$package.Item.B.type]
:Schema[Test$package.Item.B.type])
(t:Schema[Test$package.Item.B.type])
}.asInstanceOf[Schema[Any]]
(Nil:scala.collection.immutable.List[Schema[Any]]).::[Schema[Any]](elem$1)
}
:scala.collection.immutable.List[Schema[Any]]).::[Schema[Any]](elem$1)
}:scala.collection.immutable.List[Schema[Any]] of class class dotty.tools.dotc.ast.Trees$Inlined # -1
exception while typing val subTypes: scala.collection.immutable.List[Schema[Any]] =
{
val elem$1: Schema[Any] =
{
given val t: Schema[Test$package.Item.A.type] =
(
{
val $scrutinee6:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
=
{
given val t:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
=
Item$.this.A.$asInstanceOf$[
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
]
t:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
}
val m:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
= $scrutinee6
val fields: scala.collection.immutable.List[Schema[Any]] =
Nil:scala.collection.immutable.List[Schema[Any]]
{
final class $anon() extends Object(),
Schema[Test$package.Item.A.type]
{}
new Object with Schema {...}():Schema[Test$package.Item.A.type]
}
}:Schema[Test$package.Item.A.type]
:Schema[Test$package.Item.A.type])
(t:Schema[Test$package.Item.A.type])
}.asInstanceOf[Schema[Any]]
(
{
val elem$1: Schema[Any] =
{
given val t: Schema[Test$package.Item.B.type] =
(
{
val $scrutinee11:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.B.type;
MirroredType = Test$package.Item.B.type
; MirroredLabel = ("B" : String)
}
=
{
given val t:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.B.type;
MirroredType = Test$package.Item.B.type
; MirroredLabel = ("B" : String)
}
=
Item$.this.B.$asInstanceOf$[
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.B.type;
MirroredType = Test$package.Item.B.type
; MirroredLabel = ("B" : String)
}
]
t:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.B.type;
MirroredType = Test$package.Item.B.type
; MirroredLabel = ("B" : String)
}
}
val m:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.B.type;
MirroredType = Test$package.Item.B.type
; MirroredLabel = ("B" : String)
}
= $scrutinee11
val fields: scala.collection.immutable.List[Schema[Any]] =
Nil:scala.collection.immutable.List[Schema[Any]]
{
final class $anon() extends Object(),
Schema[Test$package.Item.B.type]
{}
new Object with Schema {...}():
Schema[Test$package.Item.B.type]
}
}:Schema[Test$package.Item.B.type]
:Schema[Test$package.Item.B.type])
(t:Schema[Test$package.Item.B.type])
}.asInstanceOf[Schema[Any]]
(Nil:scala.collection.immutable.List[Schema[Any]]).::[Schema[Any]](
elem$1
)
}
:scala.collection.immutable.List[Schema[Any]]).::[Schema[Any]](elem$1)
}:scala.collection.immutable.List[Schema[Any]] of class class dotty.tools.dotc.ast.Trees$ValDef # -1
exception while typing {
val $scrutinee2:
(
deriving.Mirror{
MirroredType = Item; MirroredMonoType = Item;
MirroredElemTypes <: Tuple
}
&
scala.deriving.Mirror.Sum{
MirroredMonoType = Item; MirroredType = Item;
MirroredLabel = ("Item" : String)
}
){
MirroredElemTypes = (Test$package.Item.A.type, Test$package.Item.B.type)
;
MirroredElemLabels = (("A" : String), ("B" : String))
}
=
{
given val t:
(
deriving.Mirror{
MirroredType = Item; MirroredMonoType = Item;
MirroredElemTypes <: Tuple
}
&
scala.deriving.Mirror.Sum{
MirroredMonoType = Item; MirroredType = Item;
MirroredLabel = ("Item" : String)
}
){
MirroredElemTypes = (Test$package.Item.A.type,
Test$package.Item.B.type
); MirroredElemLabels = (("A" : String), ("B" : String))
}
=
Item.$asInstanceOf$[
(
deriving.Mirror{
MirroredType = Item; MirroredMonoType = Item;
MirroredElemTypes <: Tuple
}
&
scala.deriving.Mirror.Sum{
MirroredMonoType = Item; MirroredType = Item;
MirroredLabel = ("Item" : String)
}
){
MirroredElemTypes = (Test$package.Item.A.type,
Test$package.Item.B.type
); MirroredElemLabels = (("A" : String), ("B" : String))
}
]
t:
(
deriving.Mirror{
MirroredType = Item; MirroredMonoType = Item;
MirroredElemTypes <: Tuple
}
&
scala.deriving.Mirror.Sum{
MirroredMonoType = Item; MirroredType = Item;
MirroredLabel = ("Item" : String)
}
){
MirroredElemTypes = (Test$package.Item.A.type,
Test$package.Item.B.type
); MirroredElemLabels = (("A" : String), ("B" : String))
}
}
val m:
(
deriving.Mirror{
MirroredType = Item; MirroredMonoType = Item;
MirroredElemTypes <: Tuple
}
&
scala.deriving.Mirror.Sum{
MirroredMonoType = Item; MirroredType = Item;
MirroredLabel = ("Item" : String)
}
){
MirroredElemTypes = (Test$package.Item.A.type, Test$package.Item.B.type)
;
MirroredElemLabels = (("A" : String), ("B" : String))
}
= $scrutinee2
val subTypes: scala.collection.immutable.List[Schema[Any]] =
{
val elem$1: Schema[Any] =
{
given val t: Schema[Test$package.Item.A.type] =
(
{
val $scrutinee6:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
=
{
given val t:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
=
Item$.this.A.$asInstanceOf$[
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
]
t:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
}
val m:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
= $scrutinee6
val fields: scala.collection.immutable.List[Schema[Any]] =
Nil:scala.collection.immutable.List[Schema[Any]]
{
final class $anon() extends Object(),
Schema[Test$package.Item.A.type]
{}
new Object with Schema {...}():
Schema[Test$package.Item.A.type]
}
}:Schema[Test$package.Item.A.type]
:Schema[Test$package.Item.A.type])
(t:Schema[Test$package.Item.A.type])
}.asInstanceOf[Schema[Any]]
(
{
val elem$1: Schema[Any] =
{
given val t: Schema[Test$package.Item.B.type] =
(
{
val $scrutinee11:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.B.type;
MirroredType = Test$package.Item.B.type
; MirroredLabel = ("B" : String)
}
=
{
given val t:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.B.type;
MirroredType = Test$package.Item.B.type
; MirroredLabel = ("B" : String)
}
=
Item$.this.B.$asInstanceOf$[
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.B.type;
MirroredType = Test$package.Item.B.type
; MirroredLabel = ("B" : String)
}
]
t:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.B.type;
MirroredType = Test$package.Item.B.type
; MirroredLabel = ("B" : String)
}
}
val m:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.B.type;
MirroredType = Test$package.Item.B.type
; MirroredLabel = ("B" : String)
}
= $scrutinee11
val fields: scala.collection.immutable.List[Schema[Any]] =
Nil:scala.collection.immutable.List[Schema[Any]]
{
final class $anon() extends Object(),
Schema[Test$package.Item.B.type]
{}
new Object with Schema {...}():
Schema[Test$package.Item.B.type]
}
}:Schema[Test$package.Item.B.type]
:Schema[Test$package.Item.B.type])
(t:Schema[Test$package.Item.B.type])
}.asInstanceOf[Schema[Any]]
(Nil:scala.collection.immutable.List[Schema[Any]]).::[Schema[Any]](
elem$1
)
}
:scala.collection.immutable.List[Schema[Any]]).::[Schema[Any]](elem$1)
}:scala.collection.immutable.List[Schema[Any]]
{
final class $anon() extends Object(), Schema[Item] {}
new Object with Schema {...}():Schema[Item]
}
} of class class dotty.tools.dotc.ast.Trees$Block # -1
exception while typing {
val $scrutinee2:
(
deriving.Mirror{
MirroredType = Item; MirroredMonoType = Item;
MirroredElemTypes <: Tuple
}
&
scala.deriving.Mirror.Sum{
MirroredMonoType = Item; MirroredType = Item;
MirroredLabel = ("Item" : String)
}
){
MirroredElemTypes = (Test$package.Item.A.type, Test$package.Item.B.type)
;
MirroredElemLabels = (("A" : String), ("B" : String))
}
=
{
given val t:
(
deriving.Mirror{
MirroredType = Item; MirroredMonoType = Item;
MirroredElemTypes <: Tuple
}
&
scala.deriving.Mirror.Sum{
MirroredMonoType = Item; MirroredType = Item;
MirroredLabel = ("Item" : String)
}
){
MirroredElemTypes = (Test$package.Item.A.type,
Test$package.Item.B.type
); MirroredElemLabels = (("A" : String), ("B" : String))
}
=
Item.$asInstanceOf$[
(
deriving.Mirror{
MirroredType = Item; MirroredMonoType = Item;
MirroredElemTypes <: Tuple
}
&
scala.deriving.Mirror.Sum{
MirroredMonoType = Item; MirroredType = Item;
MirroredLabel = ("Item" : String)
}
){
MirroredElemTypes = (Test$package.Item.A.type,
Test$package.Item.B.type
); MirroredElemLabels = (("A" : String), ("B" : String))
}
]
t:
(
deriving.Mirror{
MirroredType = Item; MirroredMonoType = Item;
MirroredElemTypes <: Tuple
}
&
scala.deriving.Mirror.Sum{
MirroredMonoType = Item; MirroredType = Item;
MirroredLabel = ("Item" : String)
}
){
MirroredElemTypes = (Test$package.Item.A.type,
Test$package.Item.B.type
); MirroredElemLabels = (("A" : String), ("B" : String))
}
}
val m:
(
deriving.Mirror{
MirroredType = Item; MirroredMonoType = Item;
MirroredElemTypes <: Tuple
}
&
scala.deriving.Mirror.Sum{
MirroredMonoType = Item; MirroredType = Item;
MirroredLabel = ("Item" : String)
}
){
MirroredElemTypes = (Test$package.Item.A.type, Test$package.Item.B.type)
;
MirroredElemLabels = (("A" : String), ("B" : String))
}
= $scrutinee2
val subTypes: scala.collection.immutable.List[Schema[Any]] =
{
val elem$1: Schema[Any] =
{
given val t: Schema[Test$package.Item.A.type] =
(
{
val $scrutinee6:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
=
{
given val t:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
=
Item$.this.A.$asInstanceOf$[
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
]
t:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
}
val m:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
= $scrutinee6
val fields: scala.collection.immutable.List[Schema[Any]] =
Nil:scala.collection.immutable.List[Schema[Any]]
{
final class $anon() extends Object(),
Schema[Test$package.Item.A.type]
{}
new Object with Schema {...}():
Schema[Test$package.Item.A.type]
}
}:Schema[Test$package.Item.A.type]
:Schema[Test$package.Item.A.type])
(t:Schema[Test$package.Item.A.type])
}.asInstanceOf[Schema[Any]]
(
{
val elem$1: Schema[Any] =
{
given val t: Schema[Test$package.Item.B.type] =
(
{
val $scrutinee11:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.B.type;
MirroredType = Test$package.Item.B.type
; MirroredLabel = ("B" : String)
}
=
{
given val t:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.B.type;
MirroredType = Test$package.Item.B.type
; MirroredLabel = ("B" : String)
}
=
Item$.this.B.$asInstanceOf$[
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.B.type;
MirroredType = Test$package.Item.B.type
; MirroredLabel = ("B" : String)
}
]
t:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.B.type;
MirroredType = Test$package.Item.B.type
; MirroredLabel = ("B" : String)
}
}
val m:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.B.type;
MirroredType = Test$package.Item.B.type
; MirroredLabel = ("B" : String)
}
= $scrutinee11
val fields: scala.collection.immutable.List[Schema[Any]] =
Nil:scala.collection.immutable.List[Schema[Any]]
{
final class $anon() extends Object(),
Schema[Test$package.Item.B.type]
{}
new Object with Schema {...}():
Schema[Test$package.Item.B.type]
}
}:Schema[Test$package.Item.B.type]
:Schema[Test$package.Item.B.type])
(t:Schema[Test$package.Item.B.type])
}.asInstanceOf[Schema[Any]]
(Nil:scala.collection.immutable.List[Schema[Any]]).::[Schema[Any]](
elem$1
)
}
:scala.collection.immutable.List[Schema[Any]]).::[Schema[Any]](elem$1)
}:scala.collection.immutable.List[Schema[Any]]
{
final class $anon() extends Object(), Schema[Item] {}
new Object with Schema {...}():Schema[Item]
}
}:Schema[Item] of class class dotty.tools.dotc.ast.Trees$Typed # -1
exception while typing {
val $scrutinee2:
(
deriving.Mirror{
MirroredType = Item; MirroredMonoType = Item;
MirroredElemTypes <: Tuple
}
&
scala.deriving.Mirror.Sum{
MirroredMonoType = Item; MirroredType = Item;
MirroredLabel = ("Item" : String)
}
){
MirroredElemTypes = (Test$package.Item.A.type, Test$package.Item.B.type)
;
MirroredElemLabels = (("A" : String), ("B" : String))
}
=
{
given val t:
(
deriving.Mirror{
MirroredType = Item; MirroredMonoType = Item;
MirroredElemTypes <: Tuple
}
&
scala.deriving.Mirror.Sum{
MirroredMonoType = Item; MirroredType = Item;
MirroredLabel = ("Item" : String)
}
){
MirroredElemTypes = (Test$package.Item.A.type,
Test$package.Item.B.type
); MirroredElemLabels = (("A" : String), ("B" : String))
}
=
Item.$asInstanceOf$[
(
deriving.Mirror{
MirroredType = Item; MirroredMonoType = Item;
MirroredElemTypes <: Tuple
}
&
scala.deriving.Mirror.Sum{
MirroredMonoType = Item; MirroredType = Item;
MirroredLabel = ("Item" : String)
}
){
MirroredElemTypes = (Test$package.Item.A.type,
Test$package.Item.B.type
); MirroredElemLabels = (("A" : String), ("B" : String))
}
]
t:
(
deriving.Mirror{
MirroredType = Item; MirroredMonoType = Item;
MirroredElemTypes <: Tuple
}
&
scala.deriving.Mirror.Sum{
MirroredMonoType = Item; MirroredType = Item;
MirroredLabel = ("Item" : String)
}
){
MirroredElemTypes = (Test$package.Item.A.type,
Test$package.Item.B.type
); MirroredElemLabels = (("A" : String), ("B" : String))
}
}
val m:
(
deriving.Mirror{
MirroredType = Item; MirroredMonoType = Item;
MirroredElemTypes <: Tuple
}
&
scala.deriving.Mirror.Sum{
MirroredMonoType = Item; MirroredType = Item;
MirroredLabel = ("Item" : String)
}
){
MirroredElemTypes = (Test$package.Item.A.type, Test$package.Item.B.type)
;
MirroredElemLabels = (("A" : String), ("B" : String))
}
= $scrutinee2
val subTypes: scala.collection.immutable.List[Schema[Any]] =
{
val elem$1: Schema[Any] =
{
given val t: Schema[Test$package.Item.A.type] =
(
{
val $scrutinee6:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
=
{
given val t:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
=
Item$.this.A.$asInstanceOf$[
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
]
t:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
}
val m:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
= $scrutinee6
val fields: scala.collection.immutable.List[Schema[Any]] =
Nil:scala.collection.immutable.List[Schema[Any]]
{
final class $anon() extends Object(),
Schema[Test$package.Item.A.type]
{}
new Object with Schema {...}():
Schema[Test$package.Item.A.type]
}
}:Schema[Test$package.Item.A.type]
:Schema[Test$package.Item.A.type])
(t:Schema[Test$package.Item.A.type])
}.asInstanceOf[Schema[Any]]
(
{
val elem$1: Schema[Any] =
{
given val t: Schema[Test$package.Item.B.type] =
(
{
val $scrutinee11:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.B.type;
MirroredType = Test$package.Item.B.type
; MirroredLabel = ("B" : String)
}
=
{
given val t:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.B.type;
MirroredType = Test$package.Item.B.type
; MirroredLabel = ("B" : String)
}
=
Item$.this.B.$asInstanceOf$[
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.B.type;
MirroredType = Test$package.Item.B.type
; MirroredLabel = ("B" : String)
}
]
t:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.B.type;
MirroredType = Test$package.Item.B.type
; MirroredLabel = ("B" : String)
}
}
val m:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.B.type;
MirroredType = Test$package.Item.B.type
; MirroredLabel = ("B" : String)
}
= $scrutinee11
val fields: scala.collection.immutable.List[Schema[Any]] =
Nil:scala.collection.immutable.List[Schema[Any]]
{
final class $anon() extends Object(),
Schema[Test$package.Item.B.type]
{}
new Object with Schema {...}():
Schema[Test$package.Item.B.type]
}
}:Schema[Test$package.Item.B.type]
:Schema[Test$package.Item.B.type])
(t:Schema[Test$package.Item.B.type])
}.asInstanceOf[Schema[Any]]
(Nil:scala.collection.immutable.List[Schema[Any]]).::[Schema[Any]](
elem$1
)
}
:scala.collection.immutable.List[Schema[Any]]).::[Schema[Any]](elem$1)
}:scala.collection.immutable.List[Schema[Any]]
{
final class $anon() extends Object(), Schema[Item] {}
new Object with Schema {...}():Schema[Item]
}
}:Schema[Item] of class class dotty.tools.dotc.ast.Trees$Inlined # -1
exception while typing {
val $scrutinee2:
(
deriving.Mirror{
MirroredType = Item; MirroredMonoType = Item;
MirroredElemTypes <: Tuple
}
&
scala.deriving.Mirror.Sum{
MirroredMonoType = Item; MirroredType = Item;
MirroredLabel = ("Item" : String)
}
){
MirroredElemTypes = (Test$package.Item.A.type, Test$package.Item.B.type)
;
MirroredElemLabels = (("A" : String), ("B" : String))
}
=
{
given val t:
(
deriving.Mirror{
MirroredType = Item; MirroredMonoType = Item;
MirroredElemTypes <: Tuple
}
&
scala.deriving.Mirror.Sum{
MirroredMonoType = Item; MirroredType = Item;
MirroredLabel = ("Item" : String)
}
){
MirroredElemTypes = (Test$package.Item.A.type,
Test$package.Item.B.type
); MirroredElemLabels = (("A" : String), ("B" : String))
}
=
Item.$asInstanceOf$[
(
deriving.Mirror{
MirroredType = Item; MirroredMonoType = Item;
MirroredElemTypes <: Tuple
}
&
scala.deriving.Mirror.Sum{
MirroredMonoType = Item; MirroredType = Item;
MirroredLabel = ("Item" : String)
}
){
MirroredElemTypes = (Test$package.Item.A.type,
Test$package.Item.B.type
); MirroredElemLabels = (("A" : String), ("B" : String))
}
]
t:
(
deriving.Mirror{
MirroredType = Item; MirroredMonoType = Item;
MirroredElemTypes <: Tuple
}
&
scala.deriving.Mirror.Sum{
MirroredMonoType = Item; MirroredType = Item;
MirroredLabel = ("Item" : String)
}
){
MirroredElemTypes = (Test$package.Item.A.type,
Test$package.Item.B.type
); MirroredElemLabels = (("A" : String), ("B" : String))
}
}
val m:
(
deriving.Mirror{
MirroredType = Item; MirroredMonoType = Item;
MirroredElemTypes <: Tuple
}
&
scala.deriving.Mirror.Sum{
MirroredMonoType = Item; MirroredType = Item;
MirroredLabel = ("Item" : String)
}
){
MirroredElemTypes = (Test$package.Item.A.type, Test$package.Item.B.type)
;
MirroredElemLabels = (("A" : String), ("B" : String))
}
= $scrutinee2
val subTypes: scala.collection.immutable.List[Schema[Any]] =
{
val elem$1: Schema[Any] =
{
given val t: Schema[Test$package.Item.A.type] =
(
{
val $scrutinee6:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
=
{
given val t:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
=
Item$.this.A.$asInstanceOf$[
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
]
t:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
}
val m:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
= $scrutinee6
val fields: scala.collection.immutable.List[Schema[Any]] =
Nil:scala.collection.immutable.List[Schema[Any]]
{
final class $anon() extends Object(),
Schema[Test$package.Item.A.type]
{}
new Object with Schema {...}():
Schema[Test$package.Item.A.type]
}
}:Schema[Test$package.Item.A.type]
:Schema[Test$package.Item.A.type])
(t:Schema[Test$package.Item.A.type])
}.asInstanceOf[Schema[Any]]
(
{
val elem$1: Schema[Any] =
{
given val t: Schema[Test$package.Item.B.type] =
(
{
val $scrutinee11:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.B.type;
MirroredType = Test$package.Item.B.type
; MirroredLabel = ("B" : String)
}
=
{
given val t:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.B.type;
MirroredType = Test$package.Item.B.type
; MirroredLabel = ("B" : String)
}
=
Item$.this.B.$asInstanceOf$[
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.B.type;
MirroredType = Test$package.Item.B.type
; MirroredLabel = ("B" : String)
}
]
t:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.B.type;
MirroredType = Test$package.Item.B.type
; MirroredLabel = ("B" : String)
}
}
val m:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.B.type;
MirroredType = Test$package.Item.B.type
; MirroredLabel = ("B" : String)
}
= $scrutinee11
val fields: scala.collection.immutable.List[Schema[Any]] =
Nil:scala.collection.immutable.List[Schema[Any]]
{
final class $anon() extends Object(),
Schema[Test$package.Item.B.type]
{}
new Object with Schema {...}():
Schema[Test$package.Item.B.type]
}
}:Schema[Test$package.Item.B.type]
:Schema[Test$package.Item.B.type])
(t:Schema[Test$package.Item.B.type])
}.asInstanceOf[Schema[Any]]
(Nil:scala.collection.immutable.List[Schema[Any]]).::[Schema[Any]](
elem$1
)
}
:scala.collection.immutable.List[Schema[Any]]).::[Schema[Any]](elem$1)
}:scala.collection.immutable.List[Schema[Any]]
{
final class $anon() extends Object(), Schema[Item] {}
new Object with Schema {...}():Schema[Item]
}
}:Schema[Item]:Schema[Item] of class class dotty.tools.dotc.ast.Trees$Typed # -1
exception while typing {
val $scrutinee2:
(
deriving.Mirror{
MirroredType = Item; MirroredMonoType = Item;
MirroredElemTypes <: Tuple
}
&
scala.deriving.Mirror.Sum{
MirroredMonoType = Item; MirroredType = Item;
MirroredLabel = ("Item" : String)
}
){
MirroredElemTypes = (Test$package.Item.A.type, Test$package.Item.B.type)
;
MirroredElemLabels = (("A" : String), ("B" : String))
}
=
{
given val t:
(
deriving.Mirror{
MirroredType = Item; MirroredMonoType = Item;
MirroredElemTypes <: Tuple
}
&
scala.deriving.Mirror.Sum{
MirroredMonoType = Item; MirroredType = Item;
MirroredLabel = ("Item" : String)
}
){
MirroredElemTypes = (Test$package.Item.A.type,
Test$package.Item.B.type
); MirroredElemLabels = (("A" : String), ("B" : String))
}
=
Item.$asInstanceOf$[
(
deriving.Mirror{
MirroredType = Item; MirroredMonoType = Item;
MirroredElemTypes <: Tuple
}
&
scala.deriving.Mirror.Sum{
MirroredMonoType = Item; MirroredType = Item;
MirroredLabel = ("Item" : String)
}
){
MirroredElemTypes = (Test$package.Item.A.type,
Test$package.Item.B.type
); MirroredElemLabels = (("A" : String), ("B" : String))
}
]
t:
(
deriving.Mirror{
MirroredType = Item; MirroredMonoType = Item;
MirroredElemTypes <: Tuple
}
&
scala.deriving.Mirror.Sum{
MirroredMonoType = Item; MirroredType = Item;
MirroredLabel = ("Item" : String)
}
){
MirroredElemTypes = (Test$package.Item.A.type,
Test$package.Item.B.type
); MirroredElemLabels = (("A" : String), ("B" : String))
}
}
val m:
(
deriving.Mirror{
MirroredType = Item; MirroredMonoType = Item;
MirroredElemTypes <: Tuple
}
&
scala.deriving.Mirror.Sum{
MirroredMonoType = Item; MirroredType = Item;
MirroredLabel = ("Item" : String)
}
){
MirroredElemTypes = (Test$package.Item.A.type, Test$package.Item.B.type)
;
MirroredElemLabels = (("A" : String), ("B" : String))
}
= $scrutinee2
val subTypes: scala.collection.immutable.List[Schema[Any]] =
{
val elem$1: Schema[Any] =
{
given val t: Schema[Test$package.Item.A.type] =
(
{
val $scrutinee6:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
=
{
given val t:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
=
Item$.this.A.$asInstanceOf$[
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
]
t:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
}
val m:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
= $scrutinee6
val fields: scala.collection.immutable.List[Schema[Any]] =
Nil:scala.collection.immutable.List[Schema[Any]]
{
final class $anon() extends Object(),
Schema[Test$package.Item.A.type]
{}
new Object with Schema {...}():
Schema[Test$package.Item.A.type]
}
}:Schema[Test$package.Item.A.type]
:Schema[Test$package.Item.A.type])
(t:Schema[Test$package.Item.A.type])
}.asInstanceOf[Schema[Any]]
(
{
val elem$1: Schema[Any] =
{
given val t: Schema[Test$package.Item.B.type] =
(
{
val $scrutinee11:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.B.type;
MirroredType = Test$package.Item.B.type
; MirroredLabel = ("B" : String)
}
=
{
given val t:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.B.type;
MirroredType = Test$package.Item.B.type
; MirroredLabel = ("B" : String)
}
=
Item$.this.B.$asInstanceOf$[
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.B.type;
MirroredType = Test$package.Item.B.type
; MirroredLabel = ("B" : String)
}
]
t:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.B.type;
MirroredType = Test$package.Item.B.type
; MirroredLabel = ("B" : String)
}
}
val m:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.B.type;
MirroredType = Test$package.Item.B.type
; MirroredLabel = ("B" : String)
}
= $scrutinee11
val fields: scala.collection.immutable.List[Schema[Any]] =
Nil:scala.collection.immutable.List[Schema[Any]]
{
final class $anon() extends Object(),
Schema[Test$package.Item.B.type]
{}
new Object with Schema {...}():
Schema[Test$package.Item.B.type]
}
}:Schema[Test$package.Item.B.type]
:Schema[Test$package.Item.B.type])
(t:Schema[Test$package.Item.B.type])
}.asInstanceOf[Schema[Any]]
(Nil:scala.collection.immutable.List[Schema[Any]]).::[Schema[Any]](
elem$1
)
}
:scala.collection.immutable.List[Schema[Any]]).::[Schema[Any]](elem$1)
}:scala.collection.immutable.List[Schema[Any]]
{
final class $anon() extends Object(), Schema[Item] {}
new Object with Schema {...}():Schema[Item]
}
}:Schema[Item]:Schema[Item] of class class dotty.tools.dotc.ast.Trees$Inlined # -1
exception while typing {
val $scrutinee2:
(
deriving.Mirror{
MirroredType = Item; MirroredMonoType = Item;
MirroredElemTypes <: Tuple
}
&
scala.deriving.Mirror.Sum{
MirroredMonoType = Item; MirroredType = Item;
MirroredLabel = ("Item" : String)
}
){
MirroredElemTypes = (Test$package.Item.A.type, Test$package.Item.B.type)
;
MirroredElemLabels = (("A" : String), ("B" : String))
}
=
{
given val t:
(
deriving.Mirror{
MirroredType = Item; MirroredMonoType = Item;
MirroredElemTypes <: Tuple
}
&
scala.deriving.Mirror.Sum{
MirroredMonoType = Item; MirroredType = Item;
MirroredLabel = ("Item" : String)
}
){
MirroredElemTypes = (Test$package.Item.A.type,
Test$package.Item.B.type
); MirroredElemLabels = (("A" : String), ("B" : String))
}
=
Item.$asInstanceOf$[
(
deriving.Mirror{
MirroredType = Item; MirroredMonoType = Item;
MirroredElemTypes <: Tuple
}
&
scala.deriving.Mirror.Sum{
MirroredMonoType = Item; MirroredType = Item;
MirroredLabel = ("Item" : String)
}
){
MirroredElemTypes = (Test$package.Item.A.type,
Test$package.Item.B.type
); MirroredElemLabels = (("A" : String), ("B" : String))
}
]
t:
(
deriving.Mirror{
MirroredType = Item; MirroredMonoType = Item;
MirroredElemTypes <: Tuple
}
&
scala.deriving.Mirror.Sum{
MirroredMonoType = Item; MirroredType = Item;
MirroredLabel = ("Item" : String)
}
){
MirroredElemTypes = (Test$package.Item.A.type,
Test$package.Item.B.type
); MirroredElemLabels = (("A" : String), ("B" : String))
}
}
val m:
(
deriving.Mirror{
MirroredType = Item; MirroredMonoType = Item;
MirroredElemTypes <: Tuple
}
&
scala.deriving.Mirror.Sum{
MirroredMonoType = Item; MirroredType = Item;
MirroredLabel = ("Item" : String)
}
){
MirroredElemTypes = (Test$package.Item.A.type, Test$package.Item.B.type)
;
MirroredElemLabels = (("A" : String), ("B" : String))
}
= $scrutinee2
val subTypes: scala.collection.immutable.List[Schema[Any]] =
{
val elem$1: Schema[Any] =
{
given val t: Schema[Test$package.Item.A.type] =
(
{
val $scrutinee6:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
=
{
given val t:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
=
Item$.this.A.$asInstanceOf$[
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
]
t:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
}
val m:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
= $scrutinee6
val fields: scala.collection.immutable.List[Schema[Any]] =
Nil:scala.collection.immutable.List[Schema[Any]]
{
final class $anon() extends Object(),
Schema[Test$package.Item.A.type]
{}
new Object with Schema {...}():
Schema[Test$package.Item.A.type]
}
}:Schema[Test$package.Item.A.type]
:Schema[Test$package.Item.A.type])
(t:Schema[Test$package.Item.A.type])
}.asInstanceOf[Schema[Any]]
(
{
val elem$1: Schema[Any] =
{
given val t: Schema[Test$package.Item.B.type] =
(
{
val $scrutinee11:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.B.type;
MirroredType = Test$package.Item.B.type
; MirroredLabel = ("B" : String)
}
=
{
given val t:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.B.type;
MirroredType = Test$package.Item.B.type
; MirroredLabel = ("B" : String)
}
=
Item$.this.B.$asInstanceOf$[
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.B.type;
MirroredType = Test$package.Item.B.type
; MirroredLabel = ("B" : String)
}
]
t:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.B.type;
MirroredType = Test$package.Item.B.type
; MirroredLabel = ("B" : String)
}
}
val m:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.B.type;
MirroredType = Test$package.Item.B.type
; MirroredLabel = ("B" : String)
}
= $scrutinee11
val fields: scala.collection.immutable.List[Schema[Any]] =
Nil:scala.collection.immutable.List[Schema[Any]]
{
final class $anon() extends Object(),
Schema[Test$package.Item.B.type]
{}
new Object with Schema {...}():
Schema[Test$package.Item.B.type]
}
}:Schema[Test$package.Item.B.type]
:Schema[Test$package.Item.B.type])
(t:Schema[Test$package.Item.B.type])
}.asInstanceOf[Schema[Any]]
(Nil:scala.collection.immutable.List[Schema[Any]]).::[Schema[Any]](
elem$1
)
}
:scala.collection.immutable.List[Schema[Any]]).::[Schema[Any]](elem$1)
}:scala.collection.immutable.List[Schema[Any]]
{
final class $anon() extends Object(), Schema[Item] {}
new Object with Schema {...}():Schema[Item]
}
}:Schema[Item]:Schema[Item] of class class dotty.tools.dotc.ast.Trees$Inlined # -1
exception while typing {
val $scrutinee2:
(
deriving.Mirror{
MirroredType = Item; MirroredMonoType = Item;
MirroredElemTypes <: Tuple
}
&
scala.deriving.Mirror.Sum{
MirroredMonoType = Item; MirroredType = Item;
MirroredLabel = ("Item" : String)
}
){
MirroredElemTypes = (Test$package.Item.A.type, Test$package.Item.B.type)
;
MirroredElemLabels = (("A" : String), ("B" : String))
}
=
{
given val t:
(
deriving.Mirror{
MirroredType = Item; MirroredMonoType = Item;
MirroredElemTypes <: Tuple
}
&
scala.deriving.Mirror.Sum{
MirroredMonoType = Item; MirroredType = Item;
MirroredLabel = ("Item" : String)
}
){
MirroredElemTypes = (Test$package.Item.A.type,
Test$package.Item.B.type
); MirroredElemLabels = (("A" : String), ("B" : String))
}
=
Item.$asInstanceOf$[
(
deriving.Mirror{
MirroredType = Item; MirroredMonoType = Item;
MirroredElemTypes <: Tuple
}
&
scala.deriving.Mirror.Sum{
MirroredMonoType = Item; MirroredType = Item;
MirroredLabel = ("Item" : String)
}
){
MirroredElemTypes = (Test$package.Item.A.type,
Test$package.Item.B.type
); MirroredElemLabels = (("A" : String), ("B" : String))
}
]
t:
(
deriving.Mirror{
MirroredType = Item; MirroredMonoType = Item;
MirroredElemTypes <: Tuple
}
&
scala.deriving.Mirror.Sum{
MirroredMonoType = Item; MirroredType = Item;
MirroredLabel = ("Item" : String)
}
){
MirroredElemTypes = (Test$package.Item.A.type,
Test$package.Item.B.type
); MirroredElemLabels = (("A" : String), ("B" : String))
}
}
val m:
(
deriving.Mirror{
MirroredType = Item; MirroredMonoType = Item;
MirroredElemTypes <: Tuple
}
&
scala.deriving.Mirror.Sum{
MirroredMonoType = Item; MirroredType = Item;
MirroredLabel = ("Item" : String)
}
){
MirroredElemTypes = (Test$package.Item.A.type, Test$package.Item.B.type)
;
MirroredElemLabels = (("A" : String), ("B" : String))
}
= $scrutinee2
val subTypes: scala.collection.immutable.List[Schema[Any]] =
{
val elem$1: Schema[Any] =
{
given val t: Schema[Test$package.Item.A.type] =
(
{
val $scrutinee6:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
=
{
given val t:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
=
Item$.this.A.$asInstanceOf$[
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
]
t:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
}
val m:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
= $scrutinee6
val fields: scala.collection.immutable.List[Schema[Any]] =
Nil:scala.collection.immutable.List[Schema[Any]]
{
final class $anon() extends Object(),
Schema[Test$package.Item.A.type]
{}
new Object with Schema {...}():
Schema[Test$package.Item.A.type]
}
}:Schema[Test$package.Item.A.type]
:Schema[Test$package.Item.A.type])
(t:Schema[Test$package.Item.A.type])
}.asInstanceOf[Schema[Any]]
(
{
val elem$1: Schema[Any] =
{
given val t: Schema[Test$package.Item.B.type] =
(
{
val $scrutinee11:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.B.type;
MirroredType = Test$package.Item.B.type
; MirroredLabel = ("B" : String)
}
=
{
given val t:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.B.type;
MirroredType = Test$package.Item.B.type
; MirroredLabel = ("B" : String)
}
=
Item$.this.B.$asInstanceOf$[
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.B.type;
MirroredType = Test$package.Item.B.type
; MirroredLabel = ("B" : String)
}
]
t:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.B.type;
MirroredType = Test$package.Item.B.type
; MirroredLabel = ("B" : String)
}
}
val m:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.B.type;
MirroredType = Test$package.Item.B.type
; MirroredLabel = ("B" : String)
}
= $scrutinee11
val fields: scala.collection.immutable.List[Schema[Any]] =
Nil:scala.collection.immutable.List[Schema[Any]]
{
final class $anon() extends Object(),
Schema[Test$package.Item.B.type]
{}
new Object with Schema {...}():
Schema[Test$package.Item.B.type]
}
}:Schema[Test$package.Item.B.type]
:Schema[Test$package.Item.B.type])
(t:Schema[Test$package.Item.B.type])
}.asInstanceOf[Schema[Any]]
(Nil:scala.collection.immutable.List[Schema[Any]]).::[Schema[Any]](
elem$1
)
}
:scala.collection.immutable.List[Schema[Any]]).::[Schema[Any]](elem$1)
}:scala.collection.immutable.List[Schema[Any]]
{
final class $anon() extends Object(), Schema[Item] {}
new Object with Schema {...}():Schema[Item]
}
}:Schema[Item]:Schema[Item] of class class dotty.tools.dotc.ast.Trees$Inlined # -1
exception while typing {
{
val $scrutinee2:
(
deriving.Mirror{
MirroredType = Item; MirroredMonoType = Item;
MirroredElemTypes <: Tuple
}
&
scala.deriving.Mirror.Sum{
MirroredMonoType = Item; MirroredType = Item;
MirroredLabel = ("Item" : String)
}
){
MirroredElemTypes = (Test$package.Item.A.type,
Test$package.Item.B.type
); MirroredElemLabels = (("A" : String), ("B" : String))
}
=
{
given val t:
(
deriving.Mirror{
MirroredType = Item; MirroredMonoType = Item;
MirroredElemTypes <: Tuple
}
&
scala.deriving.Mirror.Sum{
MirroredMonoType = Item; MirroredType = Item;
MirroredLabel = ("Item" : String)
}
){
MirroredElemTypes = (Test$package.Item.A.type,
Test$package.Item.B.type
); MirroredElemLabels = (("A" : String), ("B" : String))
}
=
Item.$asInstanceOf$[
(
deriving.Mirror{
MirroredType = Item; MirroredMonoType = Item;
MirroredElemTypes <: Tuple
}
&
scala.deriving.Mirror.Sum{
MirroredMonoType = Item; MirroredType = Item;
MirroredLabel = ("Item" : String)
}
){
MirroredElemTypes = (Test$package.Item.A.type,
Test$package.Item.B.type
); MirroredElemLabels = (("A" : String), ("B" : String))
}
]
t:
(
deriving.Mirror{
MirroredType = Item; MirroredMonoType = Item;
MirroredElemTypes <: Tuple
}
&
scala.deriving.Mirror.Sum{
MirroredMonoType = Item; MirroredType = Item;
MirroredLabel = ("Item" : String)
}
){
MirroredElemTypes = (Test$package.Item.A.type,
Test$package.Item.B.type
); MirroredElemLabels = (("A" : String), ("B" : String))
}
}
val m:
(
deriving.Mirror{
MirroredType = Item; MirroredMonoType = Item;
MirroredElemTypes <: Tuple
}
&
scala.deriving.Mirror.Sum{
MirroredMonoType = Item; MirroredType = Item;
MirroredLabel = ("Item" : String)
}
){
MirroredElemTypes = (Test$package.Item.A.type,
Test$package.Item.B.type
); MirroredElemLabels = (("A" : String), ("B" : String))
}
= $scrutinee2
val subTypes: scala.collection.immutable.List[Schema[Any]] =
{
val elem$1: Schema[Any] =
{
given val t: Schema[Test$package.Item.A.type] =
(
{
val $scrutinee6:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
=
{
given val t:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
=
Item$.this.A.$asInstanceOf$[
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
]
t:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
}
val m:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
= $scrutinee6
val fields: scala.collection.immutable.List[Schema[Any]] =
Nil:scala.collection.immutable.List[Schema[Any]]
{
final class $anon() extends Object(),
Schema[Test$package.Item.A.type]
{}
new Object with Schema {...}():
Schema[Test$package.Item.A.type]
}
}:Schema[Test$package.Item.A.type]
:Schema[Test$package.Item.A.type])
(t:Schema[Test$package.Item.A.type])
}.asInstanceOf[Schema[Any]]
(
{
val elem$1: Schema[Any] =
{
given val t: Schema[Test$package.Item.B.type] =
(
{
val $scrutinee11:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.B.type;
MirroredType = Test$package.Item.B.type
; MirroredLabel = ("B" : String)
}
=
{
given val t:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.B.type;
MirroredType = Test$package.Item.B.type
; MirroredLabel = ("B" : String)
}
=
Item$.this.B.$asInstanceOf$[
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.B.type;
MirroredType = Test$package.Item.B.type
; MirroredLabel = ("B" : String)
}
[0m
]
t:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.B.type;
MirroredType = Test$package.Item.B.type
; MirroredLabel = ("B" : String)
}
}
val m:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.B.type;
MirroredType = Test$package.Item.B.type
; MirroredLabel = ("B" : String)
}
= $scrutinee11
val fields: scala.collection.immutable.List[Schema[Any]]
=
Nil:scala.collection.immutable.List[Schema[Any]]
{
final class $anon() extends Object(),
Schema[Test$package.Item.B.type]
{}
new Object with Schema {...}():
Schema[Test$package.Item.B.type]
}
}:Schema[Test$package.Item.B.type]
:Schema[Test$package.Item.B.type])
(t:Schema[Test$package.Item.B.type])
}.asInstanceOf[Schema[Any]]
(Nil:scala.collection.immutable.List[Schema[Any]]).::[Schema[Any]](
elem$1
)
}
:scala.collection.immutable.List[Schema[Any]]).::[Schema[Any]](elem$1)
}:scala.collection.immutable.List[Schema[Any]]
{
final class $anon() extends Object(), Schema[Item] {}
new Object with Schema {...}():Schema[Item]
}
}:Schema[Item]:Schema[Item]
()
} of class class dotty.tools.dotc.ast.Trees$Block # -1
exception while typing {
@scala.annotation.internal.Child[Test$package.Item.B.type]() @
scala.annotation.internal.Child
[Test$package.Item.A.type]() sealed trait Item() extends Object {}
final lazy module def Item: Item$ = new Item$()
final module class Item$() extends Object(), scala.deriving.Mirror.Sum {
final lazy module case def A: Test$package.Item.A$ =
new Test$package.Item.A$()
final module case class A$() extends Object(), Item, Product, Serializable,
scala.deriving.Mirror.Singleton
{
override def hashCode(): Int = 65
override def toString(): String = "A"
override def canEqual(that: Any): Boolean =
that.isInstanceOf[Test$package.Item.A$ @unchecked]
override def productArity: Int = 0
override def productPrefix: String = "A"
override def productElement(n: Int): Any =
matchResult1[Nothing]:
{
case val x1: (n : Int) = n
throw new IndexOutOfBoundsException(n.toString())
}
override def productElementName(n: Int): String =
matchResult2[Nothing]:
{
case val x2: (n : Int) = n
throw new IndexOutOfBoundsException(n.toString())
}
}
final lazy module case def B: Test$package.Item.B$ =
new Test$package.Item.B$()
final module case class B$() extends Object(), Item, Product, Serializable,
scala.deriving.Mirror.Singleton
{
override def hashCode(): Int = 66
override def toString(): String = "B"
override def canEqual(that: Any): Boolean =
that.isInstanceOf[Test$package.Item.B$ @unchecked]
override def productArity: Int = 0
override def productPrefix: String = "B"
override def productElement(n: Int): Any =
matchResult3[Nothing]:
{
case val x3: (n : Int) = n
throw new IndexOutOfBoundsException(n.toString())
}
override def productElementName(n: Int): String =
matchResult4[Nothing]:
{
case val x4: (n : Int) = n
throw new IndexOutOfBoundsException(n.toString())
}
}
type MirroredMonoType = Item
def ordinal(x$0: Test$package.Item.MirroredMonoType): Int =
matchResult5[Int]:
{
case val x5: (x$0 : Item) = x$0
if x5.eq(Item.A) then return[matchResult5] 0 else ()
if x5.eq(Item.B) then return[matchResult5] 1 else ()
throw new MatchError(x5)
}
}
{
{
val $scrutinee2:
(
deriving.Mirror{
MirroredType = Item; MirroredMonoType = Item;
MirroredElemTypes <: Tuple
}
&
scala.deriving.Mirror.Sum{
MirroredMonoType = Item; MirroredType = Item;
MirroredLabel = ("Item" : String)
}
){
MirroredElemTypes = (Test$package.Item.A.type,
Test$package.Item.B.type
); MirroredElemLabels = (("A" : String), ("B" : String))
}
=
{
given val t:
(
deriving.Mirror{
MirroredType = Item; MirroredMonoType = Item;
MirroredElemTypes <: Tuple
}
&
scala.deriving.Mirror.Sum{
MirroredMonoType = Item; MirroredType = Item;
MirroredLabel = ("Item" : String)
}
){
MirroredElemTypes = (Test$package.Item.A.type,
Test$package.Item.B.type
); MirroredElemLabels = (("A" : String), ("B" : String))
}
=
Item.$asInstanceOf$[
(
deriving.Mirror{
MirroredType = Item; MirroredMonoType = Item;
MirroredElemTypes <: Tuple
}
&
scala.deriving.Mirror.Sum{
MirroredMonoType = Item; MirroredType = Item;
MirroredLabel = ("Item" : String)
}
){
MirroredElemTypes = (Test$package.Item.A.type,
Test$package.Item.B.type
); MirroredElemLabels = (("A" : String), ("B" : String))
}
]
t:
(
deriving.Mirror{
MirroredType = Item; MirroredMonoType = Item;
MirroredElemTypes <: Tuple
}
&
scala.deriving.Mirror.Sum{
MirroredMonoType = Item; MirroredType = Item;
MirroredLabel = ("Item" : String)
}
){
MirroredElemTypes = (Test$package.Item.A.type,
Test$package.Item.B.type
); MirroredElemLabels = (("A" : String), ("B" : String))
}
}
val m:
(
deriving.Mirror{
MirroredType = Item; MirroredMonoType = Item;
MirroredElemTypes <: Tuple
}
&
scala.deriving.Mirror.Sum{
MirroredMonoType = Item; MirroredType = Item;
MirroredLabel = ("Item" : String)
}
){
MirroredElemTypes = (Test$package.Item.A.type,
Test$package.Item.B.type
); MirroredElemLabels = (("A" : String), ("B" : String))
}
= $scrutinee2
val subTypes: scala.collection.immutable.List[Schema[Any]] =
{
val elem$1: Schema[Any] =
{
given val t: Schema[Test$package.Item.A.type] =
(
{
val $scrutinee6[0m:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
=
{
given val t:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
=
Item$.this.A.$asInstanceOf$[
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
]
t:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
}
val m:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
= $scrutinee6
val fields: scala.collection.immutable.List[Schema[Any]] =
Nil:scala.collection.immutable.List[Schema[Any]]
{
final class $anon() extends Object(),
Schema[Test$package.Item.A.type]
{}
new Object with Schema {...}():
Schema[Test$package.Item.A.type]
}
}:Schema[Test$package.Item.A.type]
:Schema[Test$package.Item.A.type])
(t:Schema[Test$package.Item.A.type])
}.asInstanceOf[Schema[Any]]
(
{
val elem$1: Schema[Any] =
{
given val t: Schema[Test$package.Item.B.type] =
(
{
val $scrutinee11:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.B.type;
MirroredType = Test$package.Item.B.type
; MirroredLabel = ("B" : String)
}
=
{
given val t:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.B.type;
MirroredType = Test$package.Item.B.type
; MirroredLabel = ("B" : String)
}
=
Item$.this.B.$asInstanceOf$[
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.B.type
;
MirroredType = Test$package.Item.B.type;
MirroredLabel = ("B" : String)
}
]
t:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.B.type;
MirroredType = Test$package.Item.B.type
; MirroredLabel = ("B" : String)
}
}
val m:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.B.type;
MirroredType = Test$package.Item.B.type
; MirroredLabel = ("B" : String)
}
= $scrutinee11
val fields: scala.collection.immutable.List[Schema[Any]]
=
Nil:scala.collection.immutable.List[Schema[Any]]
{
final class $anon() extends Object(),
Schema[Test$package.Item.B.type]
{}
new Object with Schema {...}():
Schema[Test$package.Item.B.type]
}
}:Schema[Test$package.Item.B.type]
:Schema[Test$package.Item.B.type])
(t:Schema[Test$package.Item.B.type])
}.asInstanceOf[Schema[Any]]
(Nil:scala.collection.immutable.List[Schema[Any]]).::[Schema[Any]]
(
elem$1)
}
:scala.collection.immutable.List[Schema[Any]]).::[Schema[Any]](elem$1)
}:scala.collection.immutable.List[Schema[Any]]
{
final class $anon() extends Object(), Schema[Item] {}
new Object with Schema {...}():Schema[Item]
}
}:Schema[Item]:Schema[Item]
()
}
} of class class dotty.tools.dotc.ast.Trees$Block # -1
exception while typing @main() def hello: Unit =
{
@scala.annotation.internal.Child[Test$package.Item.B.type]() @
scala.annotation.internal.Child
[Test$package.Item.A.type]() sealed trait Item() extends Object {}
final lazy module def Item: Item$ = new Item$()
final module class Item$() extends Object(), scala.deriving.Mirror.Sum {
final lazy module case def A: Test$package.Item.A$ =
new Test$package.Item.A$()
final module case class A$() extends Object(), Item, Product, Serializable
,
scala.deriving.Mirror.Singleton {
override def hashCode(): Int = 65
override def toString(): String = "A"
override def canEqual(that: Any): Boolean =
that.isInstanceOf[Test$package.Item.A$ @unchecked]
override def productArity: Int = 0
override def productPrefix: String = "A"
override def productElement(n: Int): Any =
matchResult1[Nothing]:
{
case val x1: (n : Int) = n
throw new IndexOutOfBoundsException(n.toString())
}
override def productElementName(n: Int): String =
matchResult2[Nothing]:
{
case val x2: (n : Int) = n
throw new IndexOutOfBoundsException(n.toString())
}
}
final lazy module case def B: Test$package.Item.B$ =
new Test$package.Item.B$()
final module case class B$() extends Object(), Item, Product, Serializable
,
scala.deriving.Mirror.Singleton {
override def hashCode(): Int = 66
override def toString(): String = "B"
override def canEqual(that: Any): Boolean =
that.isInstanceOf[Test$package.Item.B$ @unchecked]
override def productArity: Int = 0
override def productPrefix: String = "B"
override def productElement(n: Int): Any =
matchResult3[Nothing]:
{
case val x3: (n : Int) = n
throw new IndexOutOfBoundsException(n.toString())
}
override def productElementName(n: Int): String =
matchResult4[Nothing]:
{
case val x4: (n : Int) = n
throw new IndexOutOfBoundsException(n.toString())
}
}
type MirroredMonoType = Item
def ordinal(x$0: Test$package.Item.MirroredMonoType): Int =
matchResult5[Int]:
{
case val x5: (x$0 : Item) = x$0
if x5.eq(Item.A) then return[matchResult5] 0 else ()
if x5.eq(Item.B) then return[matchResult5] 1 else ()
throw new MatchError(x5)
}
}
{
{
val $scrutinee2:
(
deriving.Mirror{
MirroredType = Item; MirroredMonoType = Item;
MirroredElemTypes <: Tuple
}
&
scala.deriving.Mirror.Sum{
MirroredMonoType = Item; MirroredType = Item;
MirroredLabel = ("Item" : String)
}
){
MirroredElemTypes = (Test$package.Item.A.type,
Test$package.Item.B.type
); MirroredElemLabels = (("A" : String), ("B" : String))
}
=
{
given val t:
(
deriving.Mirror{
MirroredType = Item; MirroredMonoType = Item;
MirroredElemTypes <: Tuple
}
&
scala.deriving.Mirror.Sum{
MirroredMonoType = Item; MirroredType = Item;
MirroredLabel = ("Item" : String)
}
){
MirroredElemTypes = (Test$package.Item.A.type,
Test$package.Item.B.type
); MirroredElemLabels = (("A" : String), ("B" : String))
}
=
Item.$asInstanceOf$[
(
deriving.Mirror{
MirroredType = Item; MirroredMonoType = Item;
MirroredElemTypes <: Tuple
}
&
scala.deriving.Mirror.Sum{
MirroredMonoType = Item; MirroredType = Item;
MirroredLabel = ("Item" : String)
}
){
MirroredElemTypes = (Test$package.Item.A.type,
Test$package.Item.B.type
); MirroredElemLabels = (("A" : String), ("B" : String))
}
]
t:
(
deriving.Mirror{
MirroredType = Item; MirroredMonoType = Item;
MirroredElemTypes <: Tuple
}
&
scala.deriving.Mirror.Sum{
MirroredMonoType = Item; MirroredType = Item;
MirroredLabel = ("Item" : String)
}
){
MirroredElemTypes = (Test$package.Item.A.type,
Test$package.Item.B.type
); MirroredElemLabels = (("A" : String), ("B" : String))
}
}
val m:
(
deriving.Mirror{
MirroredType = Item; MirroredMonoType = Item;
MirroredElemTypes <: Tuple
}
&
scala.deriving.Mirror.Sum{
MirroredMonoType = Item; MirroredType = Item;
MirroredLabel = ("Item" : String)
}
){
MirroredElemTypes = (Test$package.Item.A.type,
Test$package.Item.B.type
); MirroredElemLabels = (("A" : String), ("B" : String))
}
= $scrutinee2
val subTypes: scala.collection.immutable.List[Schema[Any]] =
{
val elem$1: Schema[Any] =
{
given val t: Schema[Test$package.Item.A.type] =
(
{
val $scrutinee6:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
=
{
given val t:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
=
Item$.this.A.$asInstanceOf$[
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
]
t:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
}
val m:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
= $scrutinee6
val fields: scala.collection.immutable.List[Schema[Any]]
=
Nil:scala.collection.immutable.List[Schema[Any]]
{
final class $anon() extends Object(),
Schema[Test$package.Item.A.type]
{}
new Object with Schema {...}():
Schema[Test$package.Item.A.type]
}
}:Schema[Test$package.Item.A.type]
:Schema[Test$package.Item.A.type])
(t:Schema[Test$package.Item.A.type])
}.asInstanceOf[Schema[Any]]
(
{
val elem$1: Schema[Any] =
{
given val t: Schema[Test$package.Item.B.type] =
(
{
val $scrutinee11:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.B.type;
MirroredType = Test$package.Item.B.type
; MirroredLabel = ("B" : String)
}
=
{
given val t:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.B.type
;
MirroredType = Test$package.Item.B.type;
MirroredLabel = ("B" : String)
}
=
Item$.this.B.$asInstanceOf$[
scala.deriving.Mirror.Singleton{
MirroredMonoType =
Test$package.Item.B.type
; MirroredType = Test$package.Item.B.type
;
MirroredLabel = ("B" : String)
}
]
t:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.B.type
;
MirroredType = Test$package.Item.B.type;
MirroredLabel = ("B" : String)
}
}
val m:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.B.type;
MirroredType = Test$package.Item.B.type
; MirroredLabel = ("B" : String)
}
= $scrutinee11
val fields:
scala.collection.immutable.List[Schema[Any]]
= Nil:scala.collection.immutable.List[Schema[Any]]
{
final class $anon() extends Object(),
Schema[Test$package.Item.B.type]
{}
new Object with Schema {...}():
Schema[Test$package.Item.B.type]
}
}:Schema[Test$package.Item.B.type]
:Schema[Test$package.Item.B.type])
(t:Schema[Test$package.Item.B.type])
}.asInstanceOf[Schema[Any]]
(Nil:scala.collection.immutable.List[Schema[Any]]).::[
Schema[Any]
](elem$1)
}
:scala.collection.immutable.List[Schema[Any]]).::[Schema[Any]](
elem$1
)
}:scala.collection.immutable.List[Schema[Any]]
{
final class $anon() extends Object(), Schema[Item] {}
new Object with Schema {...}():Schema[Item]
}
}:Schema[Item]:Schema[Item]
()
}
} of class class dotty.tools.dotc.ast.Trees$DefDef # -1
exception while typing @scala.annotation.internal.SourceFile("core/src/test/scala-3/caliban/Test.scala"
)
final module class Test$package$() extends Object() {
private def writeReplace(): AnyRef =
new scala.runtime.ModuleSerializationProxy(classOf[Test$package.type])
@main() def hello: Unit =
{
@scala.annotation.internal.Child[Test$package.Item.B.type]() @
scala.annotation.internal.Child
[Test$package.Item.A.type]() sealed trait Item() extends Object {}
final lazy module def Item: Item$ = new Item$()
final module class Item$() extends Object(), scala.deriving.Mirror.Sum {
final lazy module case def A: Test$package.Item.A$ =
new Test$package.Item.A$()
final module case class A$() extends Object(), Item, Product,
Serializable
, scala.deriving.Mirror.Singleton {
override def hashCode(): Int = 65
override def toString(): String = "A"
override def canEqual(that: Any): Boolean =
that.isInstanceOf[Test$package.Item.A$ @unchecked]
override def productArity: Int = 0
override def productPrefix: String = "A"
override def productElement(n: Int): Any =
matchResult1[Nothing]:
{
case val x1: (n : Int) = n
throw new IndexOutOfBoundsException(n.toString())
}
override def productElementName(n: Int): String =
matchResult2[Nothing]:
{
case val x2: (n : Int) = n
throw new IndexOutOfBoundsException(n.toString())
}
}
final lazy module case def B: Test$package.Item.B$ =
new Test$package.Item.B$()
final module case class B$() extends Object(), Item, Product,
Serializable
, scala.deriving.Mirror.Singleton {
override def hashCode(): Int = 66
override def toString(): String = "B"
override def canEqual(that: Any): Boolean =
that.isInstanceOf[Test$package.Item.B$ @unchecked]
override def productArity: Int = 0
override def productPrefix: String = "B"
override def productElement(n: Int): Any =
matchResult3[Nothing]:
{
case val x3: (n : Int) = n
throw new IndexOutOfBoundsException(n.toString())
}
override def productElementName(n: Int): String =
matchResult4[Nothing]:
{
case val x4: (n : Int) = n
throw new IndexOutOfBoundsException(n.toString())
}
}
type MirroredMonoType = Item
def ordinal(x$0: Test$package.Item.MirroredMonoType): Int =
matchResult5[Int]:
{
case val x5: (x$0 : Item) = x$0
if x5.eq(Item.A) then return[matchResult5] 0 else ()
if x5.eq(Item.B) then return[matchResult5] 1 else ()
throw new MatchError(x5)
}
}
{
{
val $scrutinee2:
(
deriving.Mirror{
MirroredType = Item; MirroredMonoType = Item;
MirroredElemTypes <: Tuple
}
&
scala.deriving.Mirror.Sum{
MirroredMonoType = Item; MirroredType = Item;
MirroredLabel = ("Item" : String)
}
){
MirroredElemTypes = (Test$package.Item.A.type,
Test$package.Item.B.type
); MirroredElemLabels = (("A" : String), ("B" : String))
}
=
{
given val t:
(
deriving.Mirror{
MirroredType = Item; MirroredMonoType = Item;
MirroredElemTypes <: Tuple
}
&
scala.deriving.Mirror.Sum{
MirroredMonoType = Item; MirroredType = Item;
MirroredLabel = ("Item" : String)
}
){
MirroredElemTypes = (Test$package.Item.A.type,
Test$package.Item.B.type
); MirroredElemLabels = (("A" : String), ("B" : String))
}
=
Item.$asInstanceOf$[
(
deriving.Mirror{
MirroredType = Item; MirroredMonoType = Item;
MirroredElemTypes <: Tuple
}
&
scala.deriving.Mirror.Sum{
MirroredMonoType = Item; MirroredType = Item;
MirroredLabel = ("Item" : String)
}
){
MirroredElemTypes = (Test$package.Item.A.type,
Test$package.Item.B.type
); MirroredElemLabels = (("A" : String), ("B" : String))
}
]
t:
(
deriving.Mirror{
MirroredType = Item; MirroredMonoType = Item;
MirroredElemTypes <: Tuple
}
&
scala.deriving.Mirror.Sum{
MirroredMonoType = Item; MirroredType = Item;
MirroredLabel = ("Item" : String)
}
){
MirroredElemTypes = (Test$package.Item.A.type,
Test$package.Item.B.type
); MirroredElemLabels = (("A" : String), ("B" : String))
}
}
val m:
(
deriving.Mirror{
MirroredType = Item; MirroredMonoType = Item;
MirroredElemTypes <: Tuple
}
&
scala.deriving.Mirror.Sum{
MirroredMonoType = Item; MirroredType = Item;
MirroredLabel = ("Item" : String)
}
){
MirroredElemTypes = (Test$package.Item.A.type,
Test$package.Item.B.type
); MirroredElemLabels = (("A" : String), ("B" : String))
}
= $scrutinee2
val subTypes: scala.collection.immutable.List[Schema[Any]] =
{
val elem$1: Schema[Any] =
{
given val t: Schema[Test$package.Item.A.type] =
(
{
val $scrutinee6:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
=
{
given val t:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
=
Item$.this.A.$asInstanceOf$[
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type
;
MirroredType = Test$package.Item.A.type;
MirroredLabel = ("A" : String)
}
]
t:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
}
val m:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
= $scrutinee6
val fields: scala.collection.immutable.List[Schema[Any]]
=
Nil:scala.collection.immutable.List[Schema[Any]]
{
final class $anon() extends Object(),
Schema[Test$package.Item.A.type]
{}
new Object with Schema {...}():
Schema[Test$package.Item.A.type]
}
}:Schema[Test$package.Item.A.type]
:Schema[Test$package.Item.A.type])
(t:Schema[Test$package.Item.A.type])
}.asInstanceOf[Schema[Any]]
(
{
val elem$1: Schema[Any] =
{
given val t: Schema[Test$package.Item.B.type] =
(
{
val $scrutinee11:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.B.type;
MirroredType = Test$package.Item.B.type
; MirroredLabel = ("B" : String)
}
=
{
given val t:
scala.deriving.Mirror.Singleton{
MirroredMonoType =
Test$package.Item.B.type
; MirroredType = Test$package.Item.B.type
;
MirroredLabel = ("B" : String)
}
=
Item$.this.B.$asInstanceOf$[
scala.deriving.Mirror.Singleton{
MirroredMonoType =
Test$package.Item.B.type
;
MirroredType =
Test$package.Item.B.type
; MirroredLabel = ("B" : String)
}
]
t:
scala.deriving.Mirror.Singleton{
MirroredMonoType =
Test$package.Item.B.type
; MirroredType = Test$package.Item.B.type
;
MirroredLabel = ("B" : String)
}
}
val m:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.B.type;
MirroredType = Test$package.Item.B.type
; MirroredLabel = ("B" : String)
}
= $scrutinee11
val fields:
scala.collection.immutable.List[Schema[Any]]
= Nil:scala.collection.immutable.List[Schema[Any]]
{
final class $anon() extends Object(),
Schema[Test$package.Item.B.type]
{}
new [35[0JmObject with Schema {...}():
Schema[Test$package.Item.B.type]
}
}:Schema[Test$package.Item.B.type]
:Schema[Test$package.Item.B.type])
(t:Schema[Test$package.Item.B.type])
}.asInstanceOf[Schema[Any]]
(Nil:scala.collection.immutable.List[Schema[Any]]).::[
Schema[Any]
](elem$1)
}
:scala.collection.immutable.List[Schema[Any]]).::[Schema[Any]](
elem$1
)
}:scala.collection.immutable.List[Schema[Any]]
{
final class $anon() extends Object(), Schema[Item] {}
new Object with Schema {...}():Schema[Item]
}
}:Schema[Item]:Schema[Item]
()
}
}
} of class class dotty.tools.dotc.ast.Trees$TypeDef # -1
exception while typing package <empty> {
@scala.annotation.internal.SourceFile(
"core/src/test/scala-3/caliban/Test.scala"
) trait Schema[T]() extends Object {
private type T
}
final lazy module val Schema: Schema$ = new Schema$()
@scala.annotation.internal.SourceFile(
"core/src/test/scala-3/caliban/Test.scala"
) final module class Schema$() extends Object() {
private def writeReplace(): AnyRef =
new scala.runtime.ModuleSerializationProxy(classOf[Schema.type])
private inline def recurse[A <: Tuple]:
scala.collection.immutable.List[Schema[Any]]
= ???
private inline def derived[T]: Schema[T] = ???
private final inline given def gen[T]: Schema[T] = ???
}
final lazy module val Test$package: Test$package$ = new Test$package$()
@scala.annotation.internal.SourceFile(
"core/src/test/scala-3/caliban/Test.scala"
) final module class Test$package$() extends Object() {
private def writeReplace(): AnyRef =
new scala.runtime.ModuleSerializationProxy(classOf[Test$package.type])
@main() def hello: Unit =
{
@scala.annotation.internal.Child[Test$package.Item.B.type]() @
scala.annotation.internal.Child
[Test$package.Item.A.type]() sealed trait Item() extends Object {}
final lazy module def Item: Item$ = new Item$()
final module class Item$() extends Object(), scala.deriving.Mirror.Sum {
final lazy module case def A: Test$package.Item.A$ =
new Test$package.Item.A$()
final module case class A$() extends Object(), Item, Product,
Serializable
, scala.deriving.Mirror.Singleton {
override def hashCode(): Int = 65
override def toString(): String = "A"
override def canEqual(that: Any): Boolean =
that.isInstanceOf[Test$package.Item.A$ @unchecked]
override def productArity: Int = 0
override def productPrefix: String = "A"
override def productElement(n: Int): Any =
matchResult1[Nothing]:
{
case val x1: (n : Int) = n
throw new IndexOutOfBoundsException(n.toString())
}
override def productElementName(n: Int): String =
matchResult2[Nothing]:
{
case val x2: (n : Int) = n
throw new IndexOutOfBoundsException(n.toString())
}
}
final lazy module case def B: Test$package.Item.B$ =
new Test$package.Item.B$()
final module case class B$() extends Object(), Item, Product,
Serializable
, scala.deriving.Mirror.Singleton {
override def hashCode(): Int = 66
override def toString(): String = "B"
override def canEqual(that: Any): Boolean =
that.isInstanceOf[Test$package.Item.B$ @unchecked]
override def productArity: Int = 0
override def productPrefix: String = "B"
override def productElement(n: Int): Any =
matchResult3[Nothing]:
{
case val x3: (n : Int) = n
throw new IndexOutOfBoundsException(n.toString())
}
override def productElementName(n: Int): String =
matchResult4[Nothing]:
{
case val x4: (n : Int) = n
throw new IndexOutOfBoundsException(n.toString())
}
}
type MirroredMonoType = Item
def ordinal(x$0: Test$package.Item.MirroredMonoType): Int =
matchResult5[Int]:
{
case val x5: (x$0 : Item) = x$0
if x5.eq(Item.A) then return[matchResult5] 0 else ()
if x5.eq(Item.B) then return[matchResult5] 1 else ()
throw new MatchError(x5)
}
}
{
{
val $scrutinee2:
(
deriving.Mirror{
MirroredType = Item; MirroredMonoType = Item;
MirroredElemTypes <: Tuple
}
&
scala.deriving.Mirror.Sum{
MirroredMonoType = Item; MirroredType = Item;
MirroredLabel = ("Item" : String)
}
){
MirroredElemTypes = (Test$package.Item.A.type,
Test$package.Item.B.type
); MirroredElemLabels = (("A" : String), ("B" : String))
}
=
{
given val t:
(
deriving.Mirror{
MirroredType = Item; MirroredMonoType = Item;
MirroredElemTypes <: Tuple
}
&
scala.deriving.Mirror.Sum{
MirroredMonoType = Item; MirroredType = Item;
MirroredLabel = ("Item" : String)
}
){
MirroredElemTypes = (Test$package.Item.A.type,
Test$package.Item.B.type
); MirroredElemLabels = (("A" : String), ("B" : String))
}
=
Item.$asInstanceOf$[
(
deriving.Mirror{
MirroredType = Item; MirroredMonoType = Item;
MirroredElemTypes <: Tuple
}
&
scala.deriving.Mirror.Sum{
MirroredMonoType = Item; MirroredType = Item;
MirroredLabel = ("Item" : String)
}
){
MirroredElemTypes = (Test$package.Item.A.type,
Test$package.Item.B.type
); MirroredElemLabels = (("A" : String), ("B" : String))
}
]
t:
(
deriving.Mirror{
MirroredType = Item; MirroredMonoType = Item;
MirroredElemTypes <: Tuple
}
&
scala.deriving.Mirror.Sum{
MirroredMonoType = Item; MirroredType = Item;
MirroredLabel = ("Item" : String)
}
){
MirroredElemTypes = (Test$package.Item.A.type,
Test$package.Item.B.type
); MirroredElemLabels = (("A" : String), ("B" : String))
}
}
val m:
(
deriving.Mirror{
MirroredType = Item; MirroredMonoType = Item;
MirroredElemTypes <: Tuple
}
&
scala.deriving.Mirror.Sum{
MirroredMonoType = Item; MirroredType = Item;
MirroredLabel = ("Item" : String)
}
){
MirroredElemTypes = (Test$package.Item.A.type,
Test$package.Item.B.type
); MirroredElemLabels = (("A" : String), ("B" : String))
}
= $scrutinee2
val subTypes: scala.collection.immutable.List[Schema[Any]] =
{
val elem$1: Schema[Any] =
{
given val t: Schema[Test$package.Item.A.type] =
(
{
val $scrutinee6:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
=
{
given val t:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type
;
MirroredType = Test$package.Item.A.type;
MirroredLabel = ("A" : String)
}
=
Item$.this.A.$asInstanceOf$[
scala.deriving.Mirror.Singleton{
MirroredMonoType =
Test$package.Item.A.type
; MirroredType = Test$package.Item.A.type
;
MirroredLabel = ("A" : String)
}
]
t:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type
;
MirroredType = Test$package.Item.A.type;
MirroredLabel = ("A" : String)
}
}
val m:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.A.type;
MirroredType = Test$package.Item.A.type
; MirroredLabel = ("A" : String)
}
= $scrutinee6
val fields:
scala.collection.immutable.List[Schema[Any]]
= Nil:scala.collection.immutable.List[Schema[Any]]
{
final class $anon() extends Object(),
Schema[Test$package.Item.A.type]
{}
new Object with Schema {...}():
Schema[Test$package.Item.A.type]
}
}:Schema[Test$package.Item.A.type]
:Schema[Test$package.Item.A.type])
(t:Schema[Test$package.Item.A.type])
}.asInstanceOf[Schema[Any]]
(
{
val elem$1: Schema[Any] =
{
given val t: Schema[Test$package.Item.B.type] =
(
{
val $scrutinee11:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.B.type
;
MirroredType = Test$package.Item.B.type;
MirroredLabel = ("B" : String)
}
=
{
given val t:
scala.deriving.Mirror.Singleton{
MirroredMonoType =
Test$package.Item.B.type
;
MirroredType =
Test$package.Item.B.type
; MirroredLabel = ("B" : String)
}
=
Item$.this.B.$asInstanceOf$[
scala.deriving.Mirror.Singleton{
MirroredMonoType =
Test$package.Item.B.type
;
MirroredType =
Test$package.Item.B.type
; MirroredLabel = ("B" : String)
}
]
t:
scala.deriving.Mirror.Singleton{
MirroredMonoType =
Test$package.Item.B.type
;
MirroredType =
Test$package.Item.B.type
; MirroredLabel = ("B" : String)
}
}
val m:
scala.deriving.Mirror.Singleton{
MirroredMonoType = Test$package.Item.B.type
;
MirroredType = Test$package.Item.B.type;
MirroredLabel = ("B" : String)
}
= $scrutinee11
val fields:
scala.collection.immutable.List[Schema[Any]]
=
Nil:scala.collection.immutable.List[Schema[Any]]
{
final class $anon() extends Object(),
Schema[Test$package.Item.B.type]
{}
new Object with Schema {...}():
Schema[Test$package.Item.B.type]
}
}:Schema[Test$package.Item.B.type]
:Schema[Test$package.Item.B.type])
(t:Schema[Test$package.Item.B.type])
}.asInstanceOf[Schema[Any]]
(Nil:scala.collection.immutable.List[Schema[Any]]).::[
Schema[Any]
](elem$1)
}
:scala.collection.immutable.List[Schema[Any]]).::[Schema[Any]](
elem$1
)
}:scala.collection.immutable.List[Schema[Any]]
{
final class $anon() extends Object(), Schema[Item] {}
new Object with Schema {...}():Schema[Item]
}
}:Schema[Item]:Schema[Item]
()
}
}
}
@scala.annotation.internal.SourceFile(
"core/src/test/scala-3/caliban/Test.scala"
) final class hello() extends Object() {
<static> def main(args: Array[String]): Unit =
try Test$package.hello catch
{
case error @ _:scala.util.CommandLineParser.ParseError =>
scala.util.CommandLineParser.showError(error)
}
}
} of class class dotty.tools.dotc.ast.Trees$PackageDef # -1
[info] exception occurred while compiling /Users/pierre/GIT/caliban/core/src/test/scala-3/caliban/Test.scala
java.lang.AssertionError: assertion failed: asTerm called on not-a-Term val <none> while compiling /Users/pierre/GIT/caliban/core/src/test/scala-3/caliban/Test.scala
[error] ## Exception when compiling 17 sources to /Users/pierre/GIT/caliban/core/target/scala-3.0.0-RC3/test-classes
[error] java.lang.AssertionError: assertion failed: asTerm called on not-a-Term val <none>
[error] scala.runtime.Scala3RunTime$.assertFailed(Scala3RunTime.scala:8)
[error] dotty.tools.dotc.core.Symbols$Symbol.asTerm(Symbols.scala:163)
[error] dotty.tools.dotc.transform.ExplicitOuter$.dotty$tools$dotc$transform$ExplicitOuter$$$outerParamAccessor(ExplicitOuter.scala:230)
[error] dotty.tools.dotc.transform.ExplicitOuter$OuterOps$.loop$1(ExplicitOuter.scala:424)
[error] dotty.tools.dotc.transform.ExplicitOuter$OuterOps$.path$extension(ExplicitOuter.scala:433)
[error] dotty.tools.dotc.transform.Erasure$Typer.typedThis(Erasure.scala:805)
[error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2670)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2731)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2796)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2800)
[error] dotty.tools.dotc.transform.Erasure$Typer.typedSelect(Erasure.scala:696)
[error] dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:2639)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2730)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2796)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2800)
[error] dotty.tools.dotc.transform.Erasure$Typer.typedTyped(Erasure.scala:658)
[error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2674)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2731)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2796)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2800)
[error] dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2916)
[error] dotty.tools.dotc.transform.Erasure$Typer.typedTypeApply(Erasure.scala:822)
[error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2688)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2731)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2796)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2800)
[error] dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2916)
[error] dotty.tools.dotc.typer.Typer.typedValDef(Typer.scala:2078)
[error] dotty.tools.dotc.transform.Erasure$Typer.typedValDef(Erasure.scala:908)
[error] dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:2643)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2730)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2796)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2800)
[error] dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:2822)
[error] dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:2872)
[error] dotty.tools.dotc.transform.Erasure$Typer.typedStats(Erasure.scala:1068)
[error] dotty.tools.dotc.typer.Typer.typedBlockStats(Typer.scala:1012)
[error] dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:1016)
[error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2677)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2731)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2796)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2793)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2800)
[error] dotty.tools.dotc.typer.Typer.typedInlined(Typer.scala:1769)
[error] dotty.tools.dotc.transform.Erasure$Typer.typedInlined(Erasure.scala:899)
[error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2691)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2731)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2796)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2800)
[error] dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2916)
[error] dotty.tools.dotc.typer.Typer.typedValDef(Typer.scala:2078)
[error] dotty.tools.dotc.transform.Erasure$Typer.typedValDef(Erasure.scala:908)
[error] dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:2643)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2730)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2796)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2800)
[error] dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:2822)
[error] dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:2872)
[error] dotty.tools.dotc.transform.Erasure$Typer.typedStats(Erasure.scala:1068)
[error] dotty.tools.dotc.typer.Typer.typedBlockStats(Typer.scala:1012)
[error] dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:1016)
[error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2677)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2731)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2796)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2800)
[error] dotty.tools.dotc.transform.Erasure$Typer.typedTyped(Erasure.scala:658)
[error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2674)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2731)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2796)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2800)
[error] dotty.tools.dotc.typer.Typer.typedInlined(Typer.scala:1769)
[error] dotty.tools.dotc.transform.Erasure$Typer.typedInlined(Erasure.scala:899)
[error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2691)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2731)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2796)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2800)
[error] dotty.tools.dotc.transform.Erasure$Typer.typedTyped(Erasure.scala:658)
[error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2674)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2731)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2796)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2793)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2800)
[error] dotty.tools.dotc.typer.Typer.typedInlined(Typer.scala:1769)
[error] dotty.tools.dotc.transform.Erasure$Typer.typedInlined(Erasure.scala:899)
[error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2691)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2731)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2796)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2800)
[error] dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2916)
[error] dotty.tools.dotc.typer.Typer.typedValDef(Typer.scala:2078)
[error] dotty.tools.dotc.transform.Erasure$Typer.typedValDef(Erasure.scala:908)
[error] dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:2643)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2730)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2796)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2800)
[error] dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:2822)
[error] dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:2872)
[error] dotty.tools.dotc.transform.Erasure$Typer.typedStats(Erasure.scala:1068)
[error] dotty.tools.dotc.typer.Typer.typedBlockStats(Typer.scala:1012)
[error] dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:1016)
[error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2677)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2731)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2796)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2793)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2800)
[error] dotty.tools.dotc.typer.Typer.typedInlined(Typer.scala:1769)
[error] dotty.tools.dotc.transform.Erasure$Typer.typedInlined(Erasure.scala:899)
[error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2691)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2731)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2796)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2800)
[error] dotty.tools.dotc.transform.Erasure$Typer.typedTyped(Erasure.scala:658)
[error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2674)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2731)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2796)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2800)
[error] dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2916)
[error] dotty.tools.dotc.transform.Erasure$Typer.typedTypeApply(Erasure.scala:822)
[error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2688)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2731)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2796)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2800)
[error] dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2916)
[error] dotty.tools.dotc.typer.Typer.typedValDef(Typer.scala:2078)
[error] dotty.tools.dotc.transform.Erasure$Typer.typedValDef(Erasure.scala:908)
[error] dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:2643)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2730)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2796)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2800)
[error] dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:2822)
[error] dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:2872)
[error] dotty.tools.dotc.transform.Erasure$Typer.typedStats(Erasure.scala:1068)
[error] dotty.tools.dotc.typer.Typer.typedBlockStats(Typer.scala:1012)
[error] dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:1016)
[error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2677)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2731)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2796)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2800)
[error] dotty.tools.dotc.transform.Erasure$Typer.typedTyped(Erasure.scala:658)
[error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2674)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2731)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2796)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2800)
[error] dotty.tools.dotc.typer.Typer.typedInlined(Typer.scala:1769)
[error] dotty.tools.dotc.transform.Erasure$Typer.typedInlined(Erasure.scala:899)
[error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2691)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2731)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2796)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2800)
[error] dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2916)
[error] dotty.tools.dotc.typer.Typer.typedValDef(Typer.scala:2078)
[error] dotty.tools.dotc.transform.Erasure$Typer.typedValDef(Erasure.scala:908)
[error] dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:2643)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2730)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2796)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2800)
[error] dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:2822)
[error] dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:2872)
[error] dotty.tools.dotc.transform.Erasure$Typer.typedStats(Erasure.scala:1068)
[error] dotty.tools.dotc.typer.Typer.typedBlockStats(Typer.scala:1012)
[error] dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:1016)
[error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2677)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2731)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2796)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2800)
[error] dotty.tools.dotc.transform.Erasure$Typer.typedTyped(Erasure.scala:658)
[error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2674)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2731)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2796)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2800)
[error] dotty.tools.dotc.typer.Typer.typedInlined(Typer.scala:1769)
[error] dotty.tools.dotc.transform.Erasure$Typer.typedInlined(Erasure.scala:899)
[error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2691)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2731)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2796)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2800)
[error] dotty.tools.dotc.transform.Erasure$Typer.typedTyped(Erasure.scala:658)
[error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2674)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2731)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2796)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2793)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2800)
[error] dotty.tools.dotc.typer.Typer.typedInlined(Typer.scala:1769)
[error] dotty.tools.dotc.transform.Erasure$Typer.typedInlined(Erasure.scala:899)
[error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2691)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2731)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2796)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2800)
[error] dotty.tools.dotc.typer.Typer.typedInlined(Typer.scala:1769)
[error] dotty.tools.dotc.transform.Erasure$Typer.typedInlined(Erasure.scala:899)
[error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2691)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2731)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2796)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2793)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2800)
[error] dotty.tools.dotc.typer.Typer.typedInlined(Typer.scala:1769)
[error] dotty.tools.dotc.transform.Erasure$Typer.typedInlined(Erasure.scala:899)
[error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2691)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2731)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2796)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2800)
[error] dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:2849)
[error] dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:2872)
[error] dotty.tools.dotc.transform.Erasure$Typer.typedStats(Erasure.scala:1068)
[error] dotty.tools.dotc.typer.Typer.typedBlockStats(Typer.scala:1012)
[error] dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:1016)
[error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2677)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2731)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2796)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2800)
[error] dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2916)
[error] dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:1018)
[error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2677)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2731)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2796)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2800)
[error] dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2916)
[error] dotty.tools.dotc.typer.Typer.$anonfun$34(Typer.scala:2142)
[error] dotty.tools.dotc.typer.PrepareInlineable$.dropInlineIfError(PrepareInlineable.scala:225)
[error] dotty.tools.dotc.typer.Typer.typedDefDef(Typer.scala:2142)
[error] dotty.tools.dotc.transform.Erasure$Typer.typedDefDef(Erasure.scala:955)
[error] dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:2646)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2730)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2796)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2800)
[error] dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:2822)
[error] dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:2872)
[error] dotty.tools.dotc.transform.Erasure$Typer.typedStats(Erasure.scala:1068)
[error] dotty.tools.dotc.typer.Typer.typedClassDef(Typer.scala:2328)
[error] dotty.tools.dotc.transform.Erasure$Typer.typedClassDef(Erasure.scala:1057)
[error] dotty.tools.dotc.typer.Typer.typedTypeOrClassDef$2(Typer.scala:2657)
[error] dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:2661)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2730)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2796)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2800)
[error] dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:2822)
[error] dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:2872)
[error] dotty.tools.dotc.transform.Erasure$Typer.typedStats(Erasure.scala:1068)
[error] dotty.tools.dotc.typer.Typer.typedPackageDef(Typer.scala:2451)
[error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2702)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2731)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2796)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2800)
[error] dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2916)
[error] dotty.tools.dotc.transform.Erasure.run(Erasure.scala:132)
[error] dotty.tools.dotc.core.Phases$Phase.runOn$$anonfun$1(Phases.scala:303)
[error] scala.collection.immutable.List.map(List.scala:246)
[error] dotty.tools.dotc.core.Phases$Phase.runOn(Phases.scala:304)
[error] dotty.tools.dotc.Run.runPhases$4$$anonfun$4(Run.scala:205)
[error] scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
[error] scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
[error] scala.collection.ArrayOps$.foreach$extension(ArrayOps.scala:1323)
[error] dotty.tools.dotc.Run.runPhases$5(Run.scala:215)
[error] dotty.tools.dotc.Run.compileUnits$$anonfun$1(Run.scala:223)
[error] scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.scala:18)
[error] dotty.tools.dotc.util.Stats$.maybeMonitored(Stats.scala:67)
[error] dotty.tools.dotc.Run.compileUnits(Run.scala:230)
[error] dotty.tools.dotc.Run.compileSources(Run.scala:166)
[error] dotty.tools.dotc.Run.compile(Run.scala:150)
[error] dotty.tools.dotc.Driver.doCompile(Driver.scala:39)
[error] dotty.tools.xsbt.CompilerBridgeDriver.run(CompilerBridgeDriver.java:88)
[error] dotty.tools.xsbt.CompilerBridge.run(CompilerBridge.java:22)
[error] sbt.internal.inc.AnalyzingCompiler.compile(AnalyzingCompiler.scala:91)
[error] sbt.internal.inc.MixedAnalyzingCompiler.$anonfun$compile$7(MixedAnalyzingCompiler.scala:186)
[error] scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23)
[error] sbt.internal.inc.MixedAnalyzingCompiler.timed(MixedAnalyzingCompiler.scala:241)
[error] sbt.internal.inc.MixedAnalyzingCompiler.$anonfun$compile$4(MixedAnalyzingCompiler.scala:176)
[error] sbt.internal.inc.MixedAnalyzingCompiler.$anonfun$compile$4$adapted(MixedAnalyzingCompiler.scala:157)
[error] sbt.internal.inc.JarUtils$.withPreviousJar(JarUtils.scala:239)
[error] sbt.internal.inc.MixedAnalyzingCompiler.compileScala$1(MixedAnalyzingCompiler.scala:157)
[error] sbt.internal.inc.MixedAnalyzingCompiler.compile(MixedAnalyzingCompiler.scala:204)
[error] sbt.internal.inc.IncrementalCompilerImpl.$anonfun$compileInternal$1(IncrementalCompilerImpl.scala:528)
[error] sbt.internal.inc.IncrementalCompilerImpl.$anonfun$compileInternal$1$adapted(IncrementalCompilerImpl.scala:528)
[error] sbt.internal.inc.Incremental$.$anonfun$apply$5(Incremental.scala:174)
[error] sbt.internal.inc.Incremental$.$anonfun$apply$5$adapted(Incremental.scala:172)
[error] sbt.internal.inc.Incremental$$anon$2.run(Incremental.scala:457)
[error] sbt.internal.inc.IncrementalCommon$CycleState.next(IncrementalCommon.scala:116)
[error] sbt.internal.inc.IncrementalCommon$$anon$1.next(IncrementalCommon.scala:56)
[error] sbt.internal.inc.IncrementalCommon$$anon$1.next(IncrementalCommon.scala:52)
[error] sbt.internal.inc.IncrementalCommon.cycle(IncrementalCommon.scala:261)
[error] sbt.internal.inc.Incremental$.$anonfun$incrementalCompile$8(Incremental.scala:412)
[error] sbt.internal.inc.Incremental$.withClassfileManager(Incremental.scala:499)
[error] sbt.internal.inc.Incremental$.incrementalCompile(Incremental.scala:399)
[error] sbt.internal.inc.Incremental$.apply(Incremental.scala:166)
[error] sbt.internal.inc.IncrementalCompilerImpl.compileInternal(IncrementalCompilerImpl.scala:528)
[error] sbt.internal.inc.IncrementalCompilerImpl.$anonfun$compileIncrementally$1(IncrementalCompilerImpl.scala:482)
[error] sbt.internal.inc.IncrementalCompilerImpl.handleCompilationError(IncrementalCompilerImpl.scala:332)
[error] sbt.internal.inc.IncrementalCompilerImpl.compileIncrementally(IncrementalCompilerImpl.scala:420)
[error] sbt.internal.inc.IncrementalCompilerImpl.compile(IncrementalCompilerImpl.scala:137)
[error] sbt.Defaults$.compileIncrementalTaskImpl(Defaults.scala:2346)
[error] sbt.Defaults$.$anonfun$compileIncrementalTask$2(Defaults.scala:2303)
[error] sbt.internal.io.Retry$.apply(Retry.scala:46)
[error] sbt.internal.io.Retry$.apply(Retry.scala:28)
[error] sbt.internal.io.Retry$.apply(Retry.scala:23)
[error] sbt.internal.server.BspCompileTask$.compute(BspCompileTask.scala:31)
[error] sbt.Defaults$.$anonfun$compileIncrementalTask$1(Defaults.scala:2299)
[error] scala.Function1.$anonfun$compose$1(Function1.scala:49)
[error] sbt.internal.util.$tilde$greater.$anonfun$$u2219$1(TypeFunctions.scala:62)
[error] sbt.std.Transform$$anon$4.work(Transform.scala:68)
[error] sbt.Execute.$anonfun$submit$2(Execute.scala:282)
[error] sbt.internal.util.ErrorHandling$.wideConvert(ErrorHandling.scala:23)
[error] sbt.Execute.work(Execute.scala:291)
[error] sbt.Execute.$anonfun$submit$1(Execute.scala:282)
[error] sbt.ConcurrentRestrictions$$anon$4.$anonfun$submitValid$1(ConcurrentRestrictions.scala:265)
[error] sbt.CompletionService$$anon$2.call(CompletionService.scala:64)
[error] java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
[error] java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
[error] java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
[error] java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
[error] java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
[error] java.base/java.lang.Thread.run(Thread.java:834)
[error]
[error] stack trace is suppressed; run last Test / compileIncremental for the full output
[error] (Test / compileIncremental) java.lang.AssertionError: assertion failed: asTerm called on not-a-Term val <none>
[error] Total time: 0 s, completed May 5, 2021, 1:34:49 PM
[IJ]
We might have to disable mirror generation for local classes
I think the cause of this bug is just that the generated Mirror type does not preserve prefixes when the summoned type is path dependent - i.e given this example of an inner class sealed hierarchy:
class Outer {
sealed trait Item
object Item {
case class A() extends Item
case class B() extends Item
}
}
@main def hello: Unit = {
val o = new Outer()
val mItem = summon[Mirror.Of[o.Item]] // summon path dependent Mirror
}
mItem has a type where the MirroredElemTypes does not preserve any prefixes (note Outer.Item.A, not o.Item.A):
val mItem:
(
deriving.Mirror{
MirroredType = o.Item; MirroredMonoType = o.Item;
MirroredElemTypes <: Tuple
}
&
scala.deriving.Mirror.Sum{
MirroredMonoType = o.Item; MirroredType = o.Item;
MirroredLabel = ("Item" : String)
}
){
MirroredElemTypes = (Outer.Item.A, Outer.Item.B);
MirroredElemLabels = (("A" : String), ("B" : String))
}
=
o.Item.$asInstanceOf[...]
so when we project on the MirroredElemTypes we start getting ThisType which causes requirements for outer accessors:
@main def hello: Unit = {
val o = new Outer()
val mItem = summon[Mirror.Of[o.Item]]
type oItemA = Tuple.Head[mItem.MirroredElemTypes]
val mA = summon[Mirror.Of[oItemA]]
}
generates:
@main def hello: Unit = {
...
type oItemA = Outer.Item.A
val mA: (...) =
Outer.this.Item.this.A.$asInstanceOf[...] // note the outer accessor here
}
the Outer.this.Item then tries to call the non-existant outer accessor on the top level definition wrapper object, causing the crash at erasure
We worked through a load of similar issues in shapeless 2 on Scala 2, and in the end people came to expect that shapeless's Generic would do the right thing even in the presence of non-trivial prefixes. It would be a shame to have things go backwards in Scala 3.
I'm currently trying a fix to splice the right prefix in
We might have to disable mirror generation for local classes
mirror synthesis has worked with local case classes since 3.0.0 - is it ok to remove that?
mirror synthesis has worked with local case classes since 3.0.0 - is it ok to remove that?
I don't know. Probably not. But somebody will have to fix the issues otherwise.
ill see where I get