summaryrefslogtreecommitdiff
path: root/test/files/run/t2594_tcpoly.scala
diff options
context:
space:
mode:
authorAdriaan Moors <adriaan.moors@epfl.ch>2009-11-12 21:04:26 +0000
committerAdriaan Moors <adriaan.moors@epfl.ch>2009-11-12 21:04:26 +0000
commitfe3b78b8644fe025e9ff742d79d9b69270993749 (patch)
treea1a4d2f1a63ac5b008792d053a1aacc828b58c27 /test/files/run/t2594_tcpoly.scala
parentd24de699d877477a1c321b81ff9740b753fda659 (diff)
downloadscala-fe3b78b8644fe025e9ff742d79d9b69270993749.tar.gz
scala-fe3b78b8644fe025e9ff742d79d9b69270993749.tar.bz2
scala-fe3b78b8644fe025e9ff742d79d9b69270993749.zip
Merge branch 'ticket/2594'
Diffstat (limited to 'test/files/run/t2594_tcpoly.scala')
-rw-r--r--test/files/run/t2594_tcpoly.scala18
1 files changed, 18 insertions, 0 deletions
diff --git a/test/files/run/t2594_tcpoly.scala b/test/files/run/t2594_tcpoly.scala
new file mode 100644
index 0000000000..e759ca8b0f
--- /dev/null
+++ b/test/files/run/t2594_tcpoly.scala
@@ -0,0 +1,18 @@
+trait Monad[M[_]] {
+ def foo[A](a: M[A]): M[A]
+}
+
+class Bar[A, B]
+class Bar1[A] { type And[B] = Bar[A, B] }
+
+object Test {
+ // the combination of partial applications and anonymous class is essential to reproduce the bug
+ // problem: missing bridge method
+ // --> abstractmethoderror `Main$$anon$1.foo(Ljava/lang/Object;)Ljava/lang/Object;`
+ // the anonymous class only gets `public Bar foo(Bar a)`
+ def BarMonad[X] = new Monad[Bar1[X]#And] {
+ def foo[A](a: Bar[X, A]) = a
+ }
+
+ def main(as: Array[String]) { BarMonad[Int] foo (new Bar[Int, Int]) }
+} \ No newline at end of file