|
| 1 | +package tests |
| 2 | +package hkts |
| 3 | + |
| 4 | + |
| 5 | +class Case1Variant1[List[_]] |
| 6 | +class Case1Variant2[List <: ([_] =>> Any)] |
| 7 | + |
| 8 | +type Case2Variant1 = [A, _] =>> List[A] |
| 9 | +type Case2Variant2[A, _] = List[A] |
| 10 | + |
| 11 | +type Case3Variant1 = [_] =>> Int |
| 12 | +type Case3Variant2[_] = Int |
| 13 | + |
| 14 | +class A1[X] |
| 15 | +class A2[X] extends A1[X] |
| 16 | +type Case4Variant1 >: ([X] =>> A2[X]) <: ([X] =>> A1[X]) |
| 17 | +type Case4Variant2[X] >: A2[X] <: A1[X] |
| 18 | + |
| 19 | +type Case5Variant1 = [X] =>> [Y] =>> (X, Y) |
| 20 | +type Case5Variant2[X, Y] = (X, Y) |
| 21 | + |
| 22 | +type Case6Variant1 = [A, B] =>> A => B |
| 23 | +type Case6Variant2[A, B] = A => B |
| 24 | + |
| 25 | +class Case7Variant1[List[_] <: Number] |
| 26 | +class Case7Variant2[List <: ([_] =>> Number)] |
| 27 | + |
| 28 | +class Case8Variant1[A, List[A] <: Number] |
| 29 | +class Case8Variant2[A, List <: ([A] =>> Number)] |
| 30 | + |
| 31 | +type Case9Variant1 <: [X] =>> Option[X] |
| 32 | +type Case9Variant2[+X] <: Option[X] |
| 33 | + |
| 34 | +class Case10Variant1[List[_ >: Number]] |
| 35 | +class Case10Variant2[List <: ([_ >: Number] =>> Any)] |
| 36 | + |
| 37 | +class Case11Variant1[Map[_, _]] |
| 38 | +class Case11Variant2[Map <: ([_, _] =>> Any)] |
| 39 | + |
| 40 | +class Case12Variant1[List[A >: Number]] |
| 41 | +class Case12Variant2[List <: ([A >: Number] =>> Any)] |
| 42 | + |
| 43 | +class Case13[List[List[_]]] |
| 44 | + |
| 45 | +trait Case14[C[_]] |
| 46 | +class SomeClass extends Case14[List] |
| 47 | + |
| 48 | + |
| 49 | +def method1[E, T](value: List[_ >: E]): Int = 0 |
| 50 | +def method2[F[+X] <: Option[X], A](fa: F[A]): A = fa.get |
| 51 | + |
| 52 | +import scala.collection.immutable.ArraySeq |
| 53 | +trait SomeTraitWithHKTs[A[_], B[_], C[_], D[_], E[_]] |
| 54 | +abstract class Foo[Z] |
| 55 | +trait SomeTrait extends SomeTraitWithHKTs[Foo, scala.collection.immutable.ArraySeq, ArraySeq, List, [B] =>> List[B]] |
| 56 | + |
| 57 | +trait A[X] { |
| 58 | + type SomeType[X] |
| 59 | + def x: SomeType[X] |
| 60 | +} |
| 61 | + |
| 62 | +trait B[D] extends A[D] |
0 commit comments