summaryrefslogtreecommitdiff
path: root/test/files
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2007-03-05 14:21:28 +0000
committerMartin Odersky <odersky@gmail.com>2007-03-05 14:21:28 +0000
commit2c11ab6c75c4389a35d029aeb69d5d437e83a85a (patch)
tree6353eaeeb6e075f6e6844c87f61f7ab63cf71593 /test/files
parent0d03cad11528942ccdd8917b6d106b1dbb9afa79 (diff)
downloadscala-2c11ab6c75c4389a35d029aeb69d5d437e83a85a.tar.gz
scala-2c11ab6c75c4389a35d029aeb69d5d437e83a85a.tar.bz2
scala-2c11ab6c75c4389a35d029aeb69d5d437e83a85a.zip
fixed bugs 948/971;
added () to parameterless methods with side-effects.
Diffstat (limited to 'test/files')
-rw-r--r--test/files/neg/bug960.check7
-rwxr-xr-xtest/files/neg/bug960.scala20
-rw-r--r--test/files/neg/bug961.check4
-rwxr-xr-xtest/files/neg/bug961.scala14
4 files changed, 45 insertions, 0 deletions
diff --git a/test/files/neg/bug960.check b/test/files/neg/bug960.check
new file mode 100644
index 0000000000..7929176c87
--- /dev/null
+++ b/test/files/neg/bug960.check
@@ -0,0 +1,7 @@
+bug960.scala:18: error: cannot resolve overloaded unapply
+ case List(x, xs) => 7
+ ^
+bug960.scala:12: error: method unapply is defined twice
+ def unapply[a](xs: List[a]): Option[Null] = xs match {
+ ^
+two errors found
diff --git a/test/files/neg/bug960.scala b/test/files/neg/bug960.scala
new file mode 100755
index 0000000000..5101cf8433
--- /dev/null
+++ b/test/files/neg/bug960.scala
@@ -0,0 +1,20 @@
+sealed abstract class List[+a]
+private case object Nil extends List[Nothing]
+private final case class Cons[+a](head: a, tail: List[a])
+extends List[a]
+
+object List {
+ def unapply[a](xs: List[a]): Option[(a, List[a])] = xs match {
+ case Nil => None
+ case Cons(x, xs) => Some(x, xs)
+ }
+
+ def unapply[a](xs: List[a]): Option[Null] = xs match {
+ case Nil => Some(null)
+ case Cons(_, _) => None
+ }
+
+ def foo[a](xs: List[a]) = xs match {
+ case List(x, xs) => 7
+ }
+}
diff --git a/test/files/neg/bug961.check b/test/files/neg/bug961.check
new file mode 100644
index 0000000000..d03645bfdf
--- /dev/null
+++ b/test/files/neg/bug961.check
@@ -0,0 +1,4 @@
+bug961.scala:11: error: Temp.this.B does not take parameters
+ B() match {
+ ^
+one error found
diff --git a/test/files/neg/bug961.scala b/test/files/neg/bug961.scala
new file mode 100755
index 0000000000..eb1620abe1
--- /dev/null
+++ b/test/files/neg/bug961.scala
@@ -0,0 +1,14 @@
+object Temp{
+ abstract class A
+ object B{
+ private case class B_inner extends A
+ def apply: A = B_inner
+ def unapply(a: A) = a match {
+ case B_inner() => true
+ case _ => false
+ }
+ }
+ B() match {
+ case B() => Console.println("match")
+ }
+}