diff options
author | David MacIver <david.maciver@gmail.com> | 2008-10-27 08:30:05 +0000 |
---|---|---|
committer | David MacIver <david.maciver@gmail.com> | 2008-10-27 08:30:05 +0000 |
commit | 2d6d18662dd2d9fe9e055be9fcbacbdbf018363e (patch) | |
tree | d7faec3ec588789fdc716f4e1a42b1a67059e9c3 /test/files/run | |
parent | fdab95c6ae6e87b8c6d8a0262bb4077bf2953029 (diff) | |
download | scala-2d6d18662dd2d9fe9e055be9fcbacbdbf018363e.tar.gz scala-2d6d18662dd2d9fe9e055be9fcbacbdbf018363e.tar.bz2 scala-2d6d18662dd2d9fe9e055be9fcbacbdbf018363e.zip |
Test to check a few combinations of pattern mat...
Test to check a few combinations of pattern matching features.
Diffstat (limited to 'test/files/run')
-rw-r--r-- | test/files/run/complicatedmatch.check | 6 | ||||
-rw-r--r-- | test/files/run/complicatedmatch.scala | 31 |
2 files changed, 37 insertions, 0 deletions
diff --git a/test/files/run/complicatedmatch.check b/test/files/run/complicatedmatch.check new file mode 100644 index 0000000000..501b7a32d6 --- /dev/null +++ b/test/files/run/complicatedmatch.check @@ -0,0 +1,6 @@ +1 +42 +42 +11 +7 +13 diff --git a/test/files/run/complicatedmatch.scala b/test/files/run/complicatedmatch.scala new file mode 100644 index 0000000000..c837c328b3 --- /dev/null +++ b/test/files/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))}); +} |