File: t6205.scala

package info (click to toggle)
scala 2.11.12-6
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 62,924 kB
  • sloc: javascript: 28,808; java: 13,415; xml: 3,135; sh: 1,620; python: 756; makefile: 38; awk: 36; ansic: 6
file content (18 lines) | stat: -rw-r--r-- 547 bytes parent folder | download | duplicates (4)
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])}
      )
}