aboutsummaryrefslogtreecommitdiff
path: root/tests/untried/pos/t6205.scala
blob: 52078bd5f46fc710be871a459f8f37b8043054fe (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// original code by reporter
class A[T]
class Test1 {
  def x(backing: Map[A[_], Any]) =
    for( (k: A[kt], v) <- backing)
      yield (k: A[kt])
}

// this tests same thing as above, but independent of library classes,
// earlier expansions eliminated as well as variance (everything's invariant)
case class Holder[A](a: A)
class Mapped[A] { def map[T](f: Holder[A] => T): Iterable[T] = ??? }
class Test2 {
  def works(backing: Mapped[A[_]]): Iterable[A[_]]
    = backing.map(x =>
         x match {case Holder(k: A[kt]) => (k: A[kt])}
      )
}