aboutsummaryrefslogtreecommitdiff
path: root/tests/run/enum-Option.scala
blob: b9efadf0d4d9e69014294c7beb79eece9b04283f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
enum class Option[+T] extends Serializable {
   def isDefined: Boolean
}
object Option {
  def apply[T](x: T): Option[T] = if (x == null) None else Some(x)
  case Some(x: T) {
     def isDefined = true
  }
  case None extends Option[Nothing] {
     def isDefined = false
  }
}

object Test {
  def main(args: Array[String]) = {
    assert(Some(None).isDefined)
    Option(22) match { case Option.Some(x) => assert(x == 22) }
  }
}