diff --git a/tests/pos/i10369.scala b/tests/pos/i10369.scala new file mode 100644 index 000000000000..8689c2833664 --- /dev/null +++ b/tests/pos/i10369.scala @@ -0,0 +1,15 @@ +type Upgrade[T] = T match + case Int => Double + case Char => String + case Boolean => Boolean + +val upgrade: [t] => t => Upgrade[t] = new PolyFunction: + def apply[T](x: T): Upgrade[T] = x match + case x: Int => x.toDouble + case x: Char => x.toString + case x: Boolean => !x + +val upgrade2: [t] => t => Upgrade[t] = [t] => (x: t) => x match + case x: Int => x.toDouble + case x: Char => x.toString + case x: Boolean => !x