diff options
author | David MacIver <david.maciver@gmail.com> | 2008-11-10 00:29:09 +0000 |
---|---|---|
committer | David MacIver <david.maciver@gmail.com> | 2008-11-10 00:29:09 +0000 |
commit | 5d6c2cb4c663f4351f5eacb6c9f6f9b0cedf4966 (patch) | |
tree | 797cc6fc9ba4caa5f2ae0fc1823c7b58d0ea6018 /test/pending/run | |
parent | fff82dd82874892d0e00f6d0986be8951180f7f6 (diff) | |
download | scala-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/run')
-rw-r--r-- | test/pending/run/complicatedmatch.check | 6 | ||||
-rw-r--r-- | test/pending/run/complicatedmatch.scala | 31 |
2 files changed, 37 insertions, 0 deletions
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))}); +} |