summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/files/neg/overloaded-implicit.check7
-rw-r--r--test/files/neg/overloaded-implicit.flags1
-rw-r--r--test/files/neg/overloaded-implicit.scala17
-rw-r--r--test/files/pos/bug3688-redux.scala8
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