From 37b3648e30cbce8ac9f2b9b48b63cdf15d6a2d34 Mon Sep 17 00:00:00 2001 From: Martin Odersky Date: Tue, 31 Oct 2006 12:34:08 +0000 Subject: fixed bugs 729, 752 --- test/files/neg/bug729.check | 6 ++++++ test/files/neg/bug729.scala | 23 +++++++++++++++++++++++ test/files/neg/bug752.check | 6 ++++++ test/files/neg/bug752.scala | 8 ++++++++ test/files/neg/viewtest.check | 4 ++-- 5 files changed, 45 insertions(+), 2 deletions(-) create mode 100644 test/files/neg/bug729.check create mode 100644 test/files/neg/bug729.scala create mode 100644 test/files/neg/bug752.check create mode 100644 test/files/neg/bug752.scala (limited to 'test/files/neg') 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[] - required: scala.List[] + 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: -- cgit v1.2.3