summaryrefslogblamecommitdiff
path: root/test/files/pos/patterns.scala
blob: 85d8a1b7daefa1d58d22e7016290b21678f36ff6 (plain) (tree)
1
2
3
4
5
6
7
8
9
                   
 
                                            
                                                     



                                                        
                                                                          
 


                                          



                                               
                                                      



             
                                                                    

                                              

                                   

   
trait Option[+a] {}

case class Some[a](x: a) extends Option[a] {
  override def toString(): String = "Some(" + x + ")"
  override def equals(that: Any): Boolean = that match {
    case Some(x) => this.x == x
    case _ => false
  }
  override def hashCode(): Int = getClass().hashCode() * 41 + x.hashCode()
}

case object None extends Option[Nothing] {
  override def toString(): String = "None"
  override def equals(that: Any) = that match {
    case None => true
    case _ => false
  }
  override def hashCode(): Int = getClass().hashCode()
}

object test {

  def println(str: String): Unit = java.lang.System.out.println(str)

  def print(opt: Option[String]) = opt match {
    case Some(x) => println(x)
    case None => println("nothing")
  }
}