aboutsummaryrefslogtreecommitdiff
path: root/tests/pending/pos/looping-jsig.scala
diff options
context:
space:
mode:
Diffstat (limited to 'tests/pending/pos/looping-jsig.scala')
-rw-r--r--tests/pending/pos/looping-jsig.scala18
1 files changed, 18 insertions, 0 deletions
diff --git a/tests/pending/pos/looping-jsig.scala b/tests/pending/pos/looping-jsig.scala
new file mode 100644
index 000000000..6e3313c46
--- /dev/null
+++ b/tests/pending/pos/looping-jsig.scala
@@ -0,0 +1,18 @@
+import scala.collection.mutable._
+
+trait BugTrack {
+ trait B[+T]
+ val cache : HashMap[A[_], B[_]] = HashMap.empty
+
+ def A[T](f: Int => B[T]): A[T]
+ = new A[T]{def apply(in: Int) = f(in)}
+
+ abstract class A[+T] extends (Int => B[T]) {
+ def giveMeSame = this
+ }
+
+ def amethod[T](p: =>A[T]): A[T] = A(in => cache.get(p) match {
+ case Some(res) => res
+ case None => p(in)
+ }).giveMeSame.asInstanceOf[A[T]]
+}