summaryrefslogtreecommitdiff
path: root/test/files/neg
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2006-11-29 17:26:59 +0000
committerMartin Odersky <odersky@gmail.com>2006-11-29 17:26:59 +0000
commit8809b3edf2ca73f0c584507dcf09da58fddc7648 (patch)
treeff48034ee024941943f5985fd2572aa4c40620f1 /test/files/neg
parentf8b32f27f6cebfa2136da27d9bb2fb1fed9b6e80 (diff)
downloadscala-8809b3edf2ca73f0c584507dcf09da58fddc7648.tar.gz
scala-8809b3edf2ca73f0c584507dcf09da58fddc7648.tar.bz2
scala-8809b3edf2ca73f0c584507dcf09da58fddc7648.zip
fixed bug851
added "Function" module to library/scala
Diffstat (limited to 'test/files/neg')
-rw-r--r--test/files/neg/implicits.check8
-rwxr-xr-xtest/files/neg/implicits.scala22
2 files changed, 30 insertions, 0 deletions
diff --git a/test/files/neg/implicits.check b/test/files/neg/implicits.check
new file mode 100644
index 0000000000..d1bbd2b3f0
--- /dev/null
+++ b/test/files/neg/implicits.check
@@ -0,0 +1,8 @@
+implicits.scala:21 error: ambiguous implicit value:
+ most specific definition is: method pos2int in object Super of type (Pos)scala.Int
+ yet alternative definition method any2plus in object Sub of type (scala.Any)Sub.Plus
+ is defined in a subclass.
+ Both definitions are possible conversion functions from Pos to ?{val +: ?}
+ f(p+1)
+ ^
+one error found
diff --git a/test/files/neg/implicits.scala b/test/files/neg/implicits.scala
new file mode 100755
index 0000000000..710ffc94fc
--- /dev/null
+++ b/test/files/neg/implicits.scala
@@ -0,0 +1,22 @@
+class Pos
+
+class Super
+
+object Super {
+ implicit def pos2int(p: Pos): int = 0
+}
+
+object Sub extends Super {
+ class Plus(x: Any) {
+ def +(y: String): String = x.toString + y
+ }
+ implicit def any2plus(x: Any): Plus = new Plus(x)
+}
+
+object Test {
+ import Super._
+ import Sub._
+ val p = new Pos
+ def f(x: int): int = x
+ f(p+1)
+}