summaryrefslogtreecommitdiff
path: root/test/files
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
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')
-rw-r--r--test/files/neg/implicits.check8
-rwxr-xr-xtest/files/neg/implicits.scala22
-rw-r--r--test/files/pos/bug851.scala28
3 files changed, 58 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)
+}
diff --git a/test/files/pos/bug851.scala b/test/files/pos/bug851.scala
new file mode 100644
index 0000000000..afe4b79d3c
--- /dev/null
+++ b/test/files/pos/bug851.scala
@@ -0,0 +1,28 @@
+object test {
+ def ok1: String = {
+ val x = 1
+ """ok1"""
+ }
+ def ok2: String = {
+ val x = "0".length
+ """ok2"""
+ }
+ def ok3: String = {
+ val x = "0".length
+ """ok3
+ """//
+ }
+ def ok4: String = {
+ val x = "0".length
+ """ok4
+ """ + x
+ }
+ def bad: String = {
+ val x = "0".length
+ """bad
+ """
+ }
+ def main(args: Array[String]) {
+ Console.println(ok1 + ok2 + ok3 + ok4 + bad)
+ }
+}