summaryrefslogtreecommitdiff
path: root/test/files/run/option-fold.scala
diff options
context:
space:
mode:
authorPaul Phillips <paulp@improving.org>2012-04-04 10:01:47 -0700
committerPaul Phillips <paulp@improving.org>2012-04-04 10:29:29 -0700
commitbb4935e92c26778a1d1096cd5cd66812a9122f66 (patch)
tree7dcfb28fa551a812e47a62775dde018a62da3857 /test/files/run/option-fold.scala
parenta7f68ce32c35c73af855eab26635251249ac171a (diff)
downloadscala-bb4935e92c26778a1d1096cd5cd66812a9122f66.tar.gz
scala-bb4935e92c26778a1d1096cd5cd66812a9122f66.tar.bz2
scala-bb4935e92c26778a1d1096cd5cd66812a9122f66.zip
Added Option#fold.
Diffstat (limited to 'test/files/run/option-fold.scala')
-rw-r--r--test/files/run/option-fold.scala19
1 files changed, 19 insertions, 0 deletions
diff --git a/test/files/run/option-fold.scala b/test/files/run/option-fold.scala
new file mode 100644
index 0000000000..d554ba4f9b
--- /dev/null
+++ b/test/files/run/option-fold.scala
@@ -0,0 +1,19 @@
+object Test {
+ sealed class A
+ case object B extends A
+ case class C(x: Int) extends A
+
+ def f[T](x: Option[T]) = x.fold(List.empty[T])(List(_))
+ def g(x: Option[A]) = x.fold(-1) {
+ case B => 0
+ case C(x) => x
+ }
+
+ def main(args: Array[String]): Unit = {
+ println(f(None))
+ println(f(Some(5)))
+ println(g(None))
+ println(g(Some(B)))
+ println(g(Some(C(1))))
+ }
+}