summaryrefslogtreecommitdiff
path: root/test/pending
diff options
context:
space:
mode:
authorDavid MacIver <david.maciver@gmail.com>2008-11-10 00:29:09 +0000
committerDavid MacIver <david.maciver@gmail.com>2008-11-10 00:29:09 +0000
commit5d6c2cb4c663f4351f5eacb6c9f6f9b0cedf4966 (patch)
tree797cc6fc9ba4caa5f2ae0fc1823c7b58d0ea6018 /test/pending
parentfff82dd82874892d0e00f6d0986be8951180f7f6 (diff)
downloadscala-5d6c2cb4c663f4351f5eacb6c9f6f9b0cedf4966.tar.gz
scala-5d6c2cb4c663f4351f5eacb6c9f6f9b0cedf4966.tar.bz2
scala-5d6c2cb4c663f4351f5eacb6c9f6f9b0cedf4966.zip
Reversion of the changes to targetParams which ...
Reversion of the changes to targetParams which I made to fix #1260 as they caused problems (specifically #1480). This code is wrong but it's the old wrong behaviour, which is less broken than the new wrong behaviour.
Diffstat (limited to 'test/pending')
-rw-r--r--test/pending/pos/t1260.scala17
-rw-r--r--test/pending/pos/t1480.scala6
-rw-r--r--test/pending/run/complicatedmatch.check6
-rw-r--r--test/pending/run/complicatedmatch.scala31
4 files changed, 54 insertions, 6 deletions
diff --git a/test/pending/pos/t1260.scala b/test/pending/pos/t1260.scala
new file mode 100644
index 0000000000..b05259998e
--- /dev/null
+++ b/test/pending/pos/t1260.scala
@@ -0,0 +1,17 @@
+case class Foo(a: String, b: String)
+
+object Bar {
+ def unapply(s: String): Option[Long] =
+ try { Some(s.toLong) } catch { case _ => None }
+}
+
+object Test {
+ def main(args: Array[String]) {
+ val f = Foo("1", "2")
+ f match {
+ case Foo(Bar(1), Bar(2)) => ()
+ case Foo(Bar(i), Bar(j)) if i >= 0 => ()
+ }
+ }
+}
+
diff --git a/test/pending/pos/t1480.scala b/test/pending/pos/t1480.scala
deleted file mode 100644
index 1d9f94d2e9..0000000000
--- a/test/pending/pos/t1480.scala
+++ /dev/null
@@ -1,6 +0,0 @@
-class Foo{
- def compare(newP : Any, oldP : Any) : Boolean = (newP,oldP) match {
- case (newP : AnyRef, oldP : AnyRef) if newP == oldP => newP == oldP
- case (newS : Symbol, oldS: Symbol) if newS == oldS => newS == oldS
- }
-}
diff --git a/test/pending/run/complicatedmatch.check b/test/pending/run/complicatedmatch.check
new file mode 100644
index 0000000000..501b7a32d6
--- /dev/null
+++ b/test/pending/run/complicatedmatch.check
@@ -0,0 +1,6 @@
+1
+42
+42
+11
+7
+13
diff --git a/test/pending/run/complicatedmatch.scala b/test/pending/run/complicatedmatch.scala
new file mode 100644
index 0000000000..c837c328b3
--- /dev/null
+++ b/test/pending/run/complicatedmatch.scala
@@ -0,0 +1,31 @@
+object Bar{
+ def unapply(x : String) = x == "bar";
+}
+
+object Even{
+ def unapply(x : Int) = if (x % 2 == 0) Some(x / 2) else None;
+}
+
+object Test extends Application{
+ val LongWord = "supercalifragilisticexpialadocious";
+
+ def foo(x : Int, y : String) : Int = (x, y) match {
+ case (Even(i), "bar") => 1
+ case (1 | 2 | 3, "foo") => 42;
+ case (x, y) if y.length < x => 11;
+ case (1 | 2 | 3, Bar()) => 7;
+ case (1 | 2 | 3, "bar") => 8
+ case (Even(Even(3)), Bar()) => 13;
+ case (Even(Even(3)), LongWord) => 13;
+ case _ => 0;
+ }
+
+ List(
+ 2 -> "bar",
+ 2 -> "foo",
+ 3 -> "foo",
+ 7 -> "flob",
+ 3 -> "bar",
+ 12 -> LongWord
+ ).foreach({case (x, y) => println(foo(x, y))});
+}