summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorPaul Phillips <paulp@improving.org>2011-10-15 21:59:37 +0000
committerPaul Phillips <paulp@improving.org>2011-10-15 21:59:37 +0000
commit5575b8c36859bc5d5f3a33b4491b98eed0260b8a (patch)
tree624b16e2f9aae20f1c36c0639c1227b770c47a48 /test
parent5690452698acafe6e4843bb08a14f6ca1cc55f8a (diff)
downloadscala-5575b8c36859bc5d5f3a33b4491b98eed0260b8a.tar.gz
scala-5575b8c36859bc5d5f3a33b4491b98eed0260b8a.tar.bz2
scala-5575b8c36859bc5d5f3a33b4491b98eed0260b8a.zip
Harden the typer against surprise unapply types.
Closes SI-5078, no review.
Diffstat (limited to 'test')
-rw-r--r--test/files/neg/t5078.check13
-rw-r--r--test/files/neg/t5078.scala11
2 files changed, 24 insertions, 0 deletions
diff --git a/test/files/neg/t5078.check b/test/files/neg/t5078.check
new file mode 100644
index 0000000000..8f66445b03
--- /dev/null
+++ b/test/files/neg/t5078.check
@@ -0,0 +1,13 @@
+t5078.scala:7: error: an unapply method must accept a single argument.
+ val Foo(x1) = 1
+ ^
+t5078.scala:7: error: recursive value x1 needs type
+ val Foo(x1) = 1
+ ^
+t5078.scala:8: error: an unapply method must accept a single argument.
+ val Foo2(y2) = 2
+ ^
+t5078.scala:8: error: recursive value y2 needs type
+ val Foo2(y2) = 2
+ ^
+four errors found
diff --git a/test/files/neg/t5078.scala b/test/files/neg/t5078.scala
new file mode 100644
index 0000000000..2e727e773d
--- /dev/null
+++ b/test/files/neg/t5078.scala
@@ -0,0 +1,11 @@
+object Foo { def unapply: Option[Int] = Some(42) }
+object Foo2 { def unapply(): Option[Int] = Some(42) }
+
+
+object Test {
+ def main(args: Array[String]): Unit = {
+ val Foo(x1) = 1
+ val Foo2(y2) = 2
+ ()
+ }
+}