summaryrefslogtreecommitdiff
path: root/test/files
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2006-10-31 12:34:08 +0000
committerMartin Odersky <odersky@gmail.com>2006-10-31 12:34:08 +0000
commit37b3648e30cbce8ac9f2b9b48b63cdf15d6a2d34 (patch)
tree90eb35761ab8dc22a7f044e266d01d9a92fc1898 /test/files
parent5352638cee8a3b7b67d2dc717f651984b4f7001b (diff)
downloadscala-37b3648e30cbce8ac9f2b9b48b63cdf15d6a2d34.tar.gz
scala-37b3648e30cbce8ac9f2b9b48b63cdf15d6a2d34.tar.bz2
scala-37b3648e30cbce8ac9f2b9b48b63cdf15d6a2d34.zip
fixed bugs 729, 752
Diffstat (limited to 'test/files')
-rw-r--r--test/files/neg/bug729.check6
-rw-r--r--test/files/neg/bug729.scala23
-rw-r--r--test/files/neg/bug752.check6
-rw-r--r--test/files/neg/bug752.scala8
-rw-r--r--test/files/neg/viewtest.check4
5 files changed, 45 insertions, 2 deletions
diff --git a/test/files/neg/bug729.check b/test/files/neg/bug729.check
new file mode 100644
index 0000000000..8c13a304b3
--- /dev/null
+++ b/test/files/neg/bug729.check
@@ -0,0 +1,6 @@
+bug729.scala:20 error: type mismatch;
+ found : ScalaParserAutoEdit.this.NodeImpl(in trait Parser)
+ required: ScalaParserAutoEdit.this.NodeImpl(in trait ScalaParserAutoEdit)
+ val yyy : NodeImpl = link.from;
+ ^
+one error found
diff --git a/test/files/neg/bug729.scala b/test/files/neg/bug729.scala
new file mode 100644
index 0000000000..83e7f4cd1e
--- /dev/null
+++ b/test/files/neg/bug729.scala
@@ -0,0 +1,23 @@
+trait Parser {
+ type Node <: NodeImpl;
+ implicit def coerce(n : NodeImpl) = n.self;
+ trait NodeImpl {
+ def self : Node;
+ }
+ trait Link {
+ def from : NodeImpl;
+ }
+}
+
+trait ScalaParserAutoEdit extends Parser {
+ type Node <: NodeImpl;
+ implicit def coerce(node : NodeImpl) = node.self;
+ trait NodeImpl extends super[Parser].NodeImpl {
+ def self : Node;
+ def foo = {
+ var link : Link = null;
+ val xxx : NodeImpl = coerce(link.from);
+ val yyy : NodeImpl = link.from;
+ }
+ }
+}
diff --git a/test/files/neg/bug752.check b/test/files/neg/bug752.check
new file mode 100644
index 0000000000..a00ca01ced
--- /dev/null
+++ b/test/files/neg/bug752.check
@@ -0,0 +1,6 @@
+bug752.scala:6 error: type mismatch;
+ found : (java.lang.String) => scala.Unit
+ required: (scala.Int) => scala.Unit
+ f(&g)
+ ^
+one error found
diff --git a/test/files/neg/bug752.scala b/test/files/neg/bug752.scala
new file mode 100644
index 0000000000..aae0d5f4a7
--- /dev/null
+++ b/test/files/neg/bug752.scala
@@ -0,0 +1,8 @@
+object Test
+{
+ def f(x : Int => Unit) : Unit = ()
+ def g(x : String) : Unit = ()
+ def main(argv : Array[String]) = {
+ f(&g)
+ }
+}
diff --git a/test/files/neg/viewtest.check b/test/files/neg/viewtest.check
index 044c3b7d91..b7433f6818 100644
--- a/test/files/neg/viewtest.check
+++ b/test/files/neg/viewtest.check
@@ -1,6 +1,6 @@
viewtest.scala:43 error: type mismatch;
- found : scala.List[<type a in method compareTo>]
- required: scala.List[<type a in method view3>]
+ found : scala.List[a(in method compareTo)]
+ required: scala.List[a(in method view3)]
case y1: List[a] => compareLists(x, y1)
^
viewtest.scala:104 error: ambiguous implicit value: