diff --git a/tests/pos/i8344-1.scala b/tests/pos/i8344-1.scala new file mode 100644 index 000000000000..48aae05e38b2 --- /dev/null +++ b/tests/pos/i8344-1.scala @@ -0,0 +1,11 @@ +import scala.{Tuple => STuple} + +enum Datatype[T] { + case Tuple[T <: STuple](elems: STuple.Map[T, Datatype]) extends Datatype[T] +} + +object Datatype { + given [H, T <: STuple](using ht: Datatype[H], tt: Datatype[T]) as Datatype[H *: T] = tt match { + case Datatype.Tuple(elems) => Datatype.Tuple(ht *: elems) + } +} diff --git a/tests/pos/i8344-2.scala b/tests/pos/i8344-2.scala new file mode 100644 index 000000000000..9c4988815edd --- /dev/null +++ b/tests/pos/i8344-2.scala @@ -0,0 +1,8 @@ +sealed trait Datatype[T] +case class Foo[T <: Tuple](elems: Tuple.Map[T, Datatype]) extends Datatype[T] + +def g = + val tt: Datatype[_] = ??? + tt match { + case Foo(_) => ??? + }