aboutsummaryrefslogtreecommitdiff
path: root/tests/untried/pos/t6205.scala
diff options
context:
space:
mode:
Diffstat (limited to 'tests/untried/pos/t6205.scala')
-rw-r--r--tests/untried/pos/t6205.scala18
1 files changed, 18 insertions, 0 deletions
diff --git a/tests/untried/pos/t6205.scala b/tests/untried/pos/t6205.scala
new file mode 100644
index 000000000..52078bd5f
--- /dev/null
+++ b/tests/untried/pos/t6205.scala
@@ -0,0 +1,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])}
+ )
+}