diff options
author | Hubert Plociniczak <hubert.plociniczak@epfl.ch> | 2011-04-29 14:27:40 +0000 |
---|---|---|
committer | Hubert Plociniczak <hubert.plociniczak@epfl.ch> | 2011-04-29 14:27:40 +0000 |
commit | 96ab92d67c5ea5af3f322cd22205139b1bc846b8 (patch) | |
tree | 8f45b390bab3533659364863b8a09d87f99ba952 /test/files/neg/t4457_1.scala | |
parent | 6c1feb586bc3687ee08d2395233c849550530ba7 (diff) | |
download | scala-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.scala | 33 |
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)) + } +} |