summaryrefslogtreecommitdiff
path: root/test/files/neg
diff options
context:
space:
mode:
authorAdriaan Moors <adriaan.moors@typesafe.com>2015-02-09 13:34:55 -0800
committerAdriaan Moors <adriaan.moors@typesafe.com>2015-02-09 13:34:55 -0800
commit9d09247f13b8a77c1b3a2bb5d44510b7cec38dce (patch)
tree25deb95b818b8ae5f91dbc513dbb3cea6a52bf72 /test/files/neg
parent2b6a197d4ac11070699131808f0baf203553e86b (diff)
parent1970a8315ed3b2ff8877dfef2afcee936d59871b (diff)
downloadscala-9d09247f13b8a77c1b3a2bb5d44510b7cec38dce.tar.gz
scala-9d09247f13b8a77c1b3a2bb5d44510b7cec38dce.tar.bz2
scala-9d09247f13b8a77c1b3a2bb5d44510b7cec38dce.zip
Merge pull request #4288 from adriaanm/retronym-ticket/9041
SI-9041 Avoid unreported type error with overloading, implicits
Diffstat (limited to 'test/files/neg')
-rw-r--r--test/files/neg/t9041.check4
-rw-r--r--test/files/neg/t9041.scala17
2 files changed, 21 insertions, 0 deletions
diff --git a/test/files/neg/t9041.check b/test/files/neg/t9041.check
new file mode 100644
index 0000000000..669e9434e0
--- /dev/null
+++ b/test/files/neg/t9041.check
@@ -0,0 +1,4 @@
+t9041.scala:11: error: could not find implicit value for parameter cellSetter: CellSetter[scala.math.BigDecimal]
+ def setCell(cell: Cell, data: math.BigDecimal) { cell.setCellValue(data) }
+ ^
+one error found
diff --git a/test/files/neg/t9041.scala b/test/files/neg/t9041.scala
new file mode 100644
index 0000000000..2bdef0d3ae
--- /dev/null
+++ b/test/files/neg/t9041.scala
@@ -0,0 +1,17 @@
+// False negative test, requires overloading in Cell.
+
+trait Cell { def setCellValue(i: Int) = () ; def setCellValue(d: Double) = () }
+
+trait Nope {
+ def f = {
+ trait CellSetter[A] {
+ def setCell(cell: Cell, data: A): Unit
+ }
+ implicit val bigDecimalCellSetter = new CellSetter[math.BigDecimal]() {
+ def setCell(cell: Cell, data: math.BigDecimal) { cell.setCellValue(data) }
+ }
+ implicit class RichCell(cell: Cell) {
+ def setCellValue[A](data: A)(implicit cellSetter: CellSetter[A]) = cellSetter.setCell(cell, data)
+ }
+ }
+}