Skip to content

Commit ed9cb09

Browse files
committed
Add test for MirroredElemTypes order for Mirror.SumOf
1 parent 25319eb commit ed9cb09

File tree

1 file changed

+24
-0
lines changed

1 file changed

+24
-0
lines changed
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
import scala.compiletime.erasedValue
2+
import scala.deriving.Mirror
3+
4+
object Test extends App {
5+
inline def checkElems[A, T](using inline A: Mirror.SumOf[A]): Unit =
6+
inline erasedValue[A.MirroredElemTypes] match {
7+
case _: T => ()
8+
}
9+
10+
sealed trait Base1
11+
case class Foo() extends Base1
12+
case object Bar extends Base1
13+
case class Qux(i: Int) extends Base1
14+
15+
checkElems[Base1, (Foo, Bar.type, Qux)]
16+
17+
enum Tree[+T] {
18+
case Empty
19+
case Branch[T](left: Tree[T], right: Tree[T]) extends Tree[T]
20+
case Leaf[T](elem: T) extends Tree[T]
21+
}
22+
23+
checkElems[Tree[String], (Tree.Empty.type, Tree.Branch[String], Tree.Leaf[String])]
24+
}

0 commit comments

Comments
 (0)