diff options
author | Paul Phillips <paulp@improving.org> | 2010-11-08 20:11:41 +0000 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2010-11-08 20:11:41 +0000 |
commit | b2559b3cf4516f751ad050480c50e348e03952d7 (patch) | |
tree | fd4859c561a1abacb572cf1ee4162b5f2349c53b /test | |
parent | 71f765bc4f9ef4599855a7550dd79347c4c578ba (diff) | |
download | scala-b2559b3cf4516f751ad050480c50e348e03952d7.tar.gz scala-b2559b3cf4516f751ad050480c50e348e03952d7.tar.bz2 scala-b2559b3cf4516f751ad050480c50e348e03952d7.zip |
Deprecation patrol.
the same issues as JavaConversions with respect to overloading implicit
methods making them inaccessible to view bounds. Fixed JavaConverters.
Added a warning for when people overload parameterized implicits: in
almost all cases the name is irrelevant so there's little point in
unwittingly suffering degraded functionality. No review.
Diffstat (limited to 'test')
-rw-r--r-- | test/files/neg/overloaded-implicit.check | 7 | ||||
-rw-r--r-- | test/files/neg/overloaded-implicit.flags | 1 | ||||
-rw-r--r-- | test/files/neg/overloaded-implicit.scala | 17 | ||||
-rw-r--r-- | test/files/pos/bug3688-redux.scala | 8 |
4 files changed, 33 insertions, 0 deletions
diff --git a/test/files/neg/overloaded-implicit.check b/test/files/neg/overloaded-implicit.check new file mode 100644 index 0000000000..bdbe6a89d5 --- /dev/null +++ b/test/files/neg/overloaded-implicit.check @@ -0,0 +1,7 @@ +overloaded-implicit.scala:2: error: parameterized overloaded implicit methods are not visible as view bounds + implicit def imp1[T](x: List[T]): Map[T, T] = Map() + ^ +overloaded-implicit.scala:3: error: parameterized overloaded implicit methods are not visible as view bounds + implicit def imp1[T](x: Set[T]): Map[T, T] = Map() + ^ +two errors found diff --git a/test/files/neg/overloaded-implicit.flags b/test/files/neg/overloaded-implicit.flags new file mode 100644 index 0000000000..85d8eb2ba2 --- /dev/null +++ b/test/files/neg/overloaded-implicit.flags @@ -0,0 +1 @@ +-Xfatal-warnings diff --git a/test/files/neg/overloaded-implicit.scala b/test/files/neg/overloaded-implicit.scala new file mode 100644 index 0000000000..68b1ceaa30 --- /dev/null +++ b/test/files/neg/overloaded-implicit.scala @@ -0,0 +1,17 @@ +object Test { + implicit def imp1[T](x: List[T]): Map[T, T] = Map() + implicit def imp1[T](x: Set[T]): Map[T, T] = Map() + + def f[T <% Map[Int, Int]](x: T): Double = 1.0d + + // not parameterized, no warning + implicit def imp2(x: List[Int]): String = "a" + implicit def imp2(x: Set[Int]): String = "b" + + def g[T <% String](x: T): Double = 2.0d + + def main(args: Array[String]): Unit = { + // println(f(List(1))) + println(g(List(1))) + } +} diff --git a/test/files/pos/bug3688-redux.scala b/test/files/pos/bug3688-redux.scala new file mode 100644 index 0000000000..e601cf240c --- /dev/null +++ b/test/files/pos/bug3688-redux.scala @@ -0,0 +1,8 @@ +import collection.JavaConverters._ +import java.{ util => ju } +import scala.collection.{ mutable, immutable } + +object Test { + def m[P <% AsJava[ju.List[Int]]](l: P) = 1 + m(List(1)) +}
\ No newline at end of file |