diff options
Diffstat (limited to 'test/files/neg')
-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 |
3 files changed, 25 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))) + } +} |