aboutsummaryrefslogtreecommitdiff
path: root/tests/pending/run/option-fold.scala
diff options
context:
space:
mode:
Diffstat (limited to 'tests/pending/run/option-fold.scala')
-rw-r--r--tests/pending/run/option-fold.scala20
1 files changed, 20 insertions, 0 deletions
diff --git a/tests/pending/run/option-fold.scala b/tests/pending/run/option-fold.scala
new file mode 100644
index 000000000..84e346ec7
--- /dev/null
+++ b/tests/pending/run/option-fold.scala
@@ -0,0 +1,20 @@
+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
+ case _ => ???
+ }
+
+ def main(args: Array[String]): Unit = {
+ println(f(None)) //List()
+ println(f(Some(5))) //List(5)
+ println(g(None)) //-1
+ println(g(Some(B))) //0
+ println(g(Some(C(1)))) //1
+ }
+}