diff options
author | Martin Odersky <odersky@gmail.com> | 2009-10-02 17:57:16 +0000 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2009-10-02 17:57:16 +0000 |
commit | 83b67aa805fd1329d6bcc54b1c1fa16416437b6f (patch) | |
tree | 3fcc59ba0523f644bceef4676f7a6689f9949417 /test/pending/pos/t1756.scala | |
parent | 84146e2f53fb1f5e8abbc521121078e932cf82e7 (diff) | |
download | scala-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.scala | 30 |
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 |