diff options
author | Paul Phillips <paulp@improving.org> | 2010-05-12 21:17:29 +0000 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2010-05-12 21:17:29 +0000 |
commit | 016d815104b1d44b2b899c68804dde500963fbcd (patch) | |
tree | e223ac275ad0321f9e5d51e847f30ab11e7a234f /test/files/run/patmat-seqs.scala | |
parent | 0ed53d4d686db74a54315cd5ccf79bda3690b036 (diff) | |
download | scala-016d815104b1d44b2b899c68804dde500963fbcd.tar.gz scala-016d815104b1d44b2b899c68804dde500963fbcd.tar.bz2 scala-016d815104b1d44b2b899c68804dde500963fbcd.zip |
Overhauled sequence length logic in the pattern...
Overhauled sequence length logic in the pattern matcher. Removes
unnecessary boxing and a few varieties of wrongness.
Closes #3395, #3150, #2958, #2945, #2187. No review.
Diffstat (limited to 'test/files/run/patmat-seqs.scala')
-rw-r--r-- | test/files/run/patmat-seqs.scala | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/test/files/run/patmat-seqs.scala b/test/files/run/patmat-seqs.scala new file mode 100644 index 0000000000..b5c47b4b4b --- /dev/null +++ b/test/files/run/patmat-seqs.scala @@ -0,0 +1,42 @@ +object Test { + def f1(x: Any) = x match { + case Seq(1, 2, 3) => "s3" + case Seq(4, 5) => "s2" + case Seq(7) => "s1" + case Nil => "s0" + case Seq(_, _, _, _, _, x: String) => "ss6" + case _ => "d" + } + + def f2(x: Any) = x match { + case Seq("a", "b", _*) => "s2" + case Seq(1, _*) => "s1" + case Seq(5, 6, 7, _*) => "s3" + case _ => "d" + } + + def main(args: Array[String]): Unit = { + val xs1 = List( + List(1,2,3), + List(4,5), + Vector(7), + Seq(), + Seq(1, 2, 3, 4, 5, "abcd"), + "abc" + ) map f1 + + xs1 foreach println + + val xs2 = List( + Seq(5, 6, 7), + Seq(5, 6, 7, 8, 9), + Seq("a"), + Seq(1, 6, 7), + List(5, 6, 7), + Nil, + 5 + ) map f2 + + xs2 foreach println + } +} |