summaryrefslogtreecommitdiff
path: root/test/pending/pos/t1756.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2009-10-02 17:57:16 +0000
committerMartin Odersky <odersky@gmail.com>2009-10-02 17:57:16 +0000
commit83b67aa805fd1329d6bcc54b1c1fa16416437b6f (patch)
tree3fcc59ba0523f644bceef4676f7a6689f9949417 /test/pending/pos/t1756.scala
parent84146e2f53fb1f5e8abbc521121078e932cf82e7 (diff)
downloadscala-83b67aa805fd1329d6bcc54b1c1fa16416437b6f.tar.gz
scala-83b67aa805fd1329d6bcc54b1c1fa16416437b6f.tar.bz2
scala-83b67aa805fd1329d6bcc54b1c1fa16416437b6f.zip
Sequence->Seq
Diffstat (limited to 'test/pending/pos/t1756.scala')
-rw-r--r--test/pending/pos/t1756.scala30
1 files changed, 30 insertions, 0 deletions
diff --git a/test/pending/pos/t1756.scala b/test/pending/pos/t1756.scala
new file mode 100644
index 0000000000..c22d5509e1
--- /dev/null
+++ b/test/pending/pos/t1756.scala
@@ -0,0 +1,30 @@
+trait Ring[T <: Ring[T]] {
+ def +(that: T): T
+ def *(that: T): T
+}
+
+class A extends Ring[A] {
+ def +(that: A) = new A
+ def *(that: A) = new A
+}
+
+class Poly[C <: Ring[C]](val c: C) extends Ring[Poly[C]] {
+ def +(that: Poly[C]) = new Poly(this.c+that.c)
+ def *(that: Poly[C]) = new Poly(this.c*that.c)
+}
+
+implicit def coef2poly[C <: Ring[C]](c: C) = new Poly(c)
+
+val a = new A
+val x = new Poly(new A)
+
+x+a // works
+a+x // works
+
+val y = new Poly(new Poly(new A))
+
+x+y*x // works
+x*y+x // works
+y*x+x // works
+
+x+x*y