summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorIulian Dragos <jaguarul@gmail.com>2008-10-31 08:21:32 +0000
committerIulian Dragos <jaguarul@gmail.com>2008-10-31 08:21:32 +0000
commit2bed53ea790cc763f9d0dcea34ef06b66091906c (patch)
treefbed75be975b73b01b3b9deed7311b09bb77e315 /test
parentbcbf5a12672f5b364c24398b6d98cd04ecb2e2be (diff)
downloadscala-2bed53ea790cc763f9d0dcea34ef06b66091906c.tar.gz
scala-2bed53ea790cc763f9d0dcea34ef06b66091906c.tar.bz2
scala-2bed53ea790cc763f9d0dcea34ef06b66091906c.zip
Applied Paul's patch for #1467.
Diffstat (limited to 'test')
-rw-r--r--test/files/pos/looping-jsig.scala18
1 files changed, 18 insertions, 0 deletions
diff --git a/test/files/pos/looping-jsig.scala b/test/files/pos/looping-jsig.scala
new file mode 100644
index 0000000000..15ccd75cb0
--- /dev/null
+++ b/test/files/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
+}