diff options
Diffstat (limited to 'tests/pending/run/option-fold.scala')
-rw-r--r-- | tests/pending/run/option-fold.scala | 20 |
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 + } +} |