diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/pos/i2201a.scala | 8 | ||||
-rw-r--r-- | tests/pos/i2201b.scala | 14 | ||||
-rw-r--r-- | tests/pos/i2201c.scala | 11 |
3 files changed, 33 insertions, 0 deletions
diff --git a/tests/pos/i2201a.scala b/tests/pos/i2201a.scala new file mode 100644 index 000000000..165f0a76e --- /dev/null +++ b/tests/pos/i2201a.scala @@ -0,0 +1,8 @@ +class Foo[T] + +class Fix[F[_]](unfix: F[Fix[F]]) +object DocTree { + type Const[T] = Foo[Int] + type FixConst = Fix[Const] + def docTree(s: Const[FixConst]): FixConst = new Fix(s) +} diff --git a/tests/pos/i2201b.scala b/tests/pos/i2201b.scala new file mode 100644 index 000000000..4aafc0d28 --- /dev/null +++ b/tests/pos/i2201b.scala @@ -0,0 +1,14 @@ +trait X +trait Y + +object Test { + type One[A <: X, B <: Y] + + type Two[TA <: Y, TB <: X] = One[TB, TA] + + def foo[M[_ <: Y, _ <: X]](x: M[_ <: Y, _ <: X]) = x + + val a: Two[Y, X] = ??? + + foo(a) +} diff --git a/tests/pos/i2201c.scala b/tests/pos/i2201c.scala new file mode 100644 index 000000000..91f2529d9 --- /dev/null +++ b/tests/pos/i2201c.scala @@ -0,0 +1,11 @@ +object Test { + implicit val theAnswer: Int = 42 + + type Swap[A, B] = (B, A) + + def foo[M[_, _], T, S](x: M[T, S])(implicit ev: T) = ev + + val a: Swap[Int, String] = ("hi", 1) + + foo(a) +} |