summaryrefslogtreecommitdiff
path: root/test/files/neg/t4457_1.scala
diff options
context:
space:
mode:
authorHubert Plociniczak <hubert.plociniczak@epfl.ch>2011-04-29 14:27:40 +0000
committerHubert Plociniczak <hubert.plociniczak@epfl.ch>2011-04-29 14:27:40 +0000
commit96ab92d67c5ea5af3f322cd22205139b1bc846b8 (patch)
tree8f45b390bab3533659364863b8a09d87f99ba952 /test/files/neg/t4457_1.scala
parent6c1feb586bc3687ee08d2395233c849550530ba7 (diff)
downloadscala-96ab92d67c5ea5af3f322cd22205139b1bc846b8.tar.gz
scala-96ab92d67c5ea5af3f322cd22205139b1bc846b8.tar.bz2
scala-96ab92d67c5ea5af3f322cd22205139b1bc846b8.zip
Closes #4457. Review by odersky
Diffstat (limited to 'test/files/neg/t4457_1.scala')
-rw-r--r--test/files/neg/t4457_1.scala33
1 files changed, 33 insertions, 0 deletions
diff --git a/test/files/neg/t4457_1.scala b/test/files/neg/t4457_1.scala
new file mode 100644
index 0000000000..11f12379f6
--- /dev/null
+++ b/test/files/neg/t4457_1.scala
@@ -0,0 +1,33 @@
+object ImplicitConvAmbiguity2 {
+
+ class N[T]
+ class NE[T] extends N[T]
+ class NN[T] extends N[T]
+ class NQ[T] extends N[T]
+ class NZ[T] extends N[T]
+ class AA[A]
+ class BB[A]
+
+ implicit def conv1(i: Float) = new NE[Float]
+ implicit def conv3(op: AA[java.util.TooManyListenersException]) = new N[java.util.TooManyListenersException]
+ implicit def conv4(op: AA[Float]) = new N[Float]
+ implicit def conv7(i: Float) = new NZ[Float]
+ implicit def conv5(e: BB[java.util.GregorianCalendar]) = new N[java.util.GregorianCalendar]
+
+ // These two will be in conflict in typeMe1
+ def aFunc[A](a: NE[A]) = new AA[A]
+ def aFunc[A](a: NZ[A]) = new AA[Float]
+
+ def aFunc[A](a: NN[A]) = new BB[A]
+ def aFunc[A](a: NQ[A]) = new BB[A]
+
+ def bFunc[T](e1: N[T]) = {}
+
+ def typeMe1 {
+ val x = aFunc(4F)
+ bFunc(x)
+ }
+ def typeMe2 {
+ bFunc(aFunc(4F))
+ }
+}