summaryrefslogblamecommitdiff
path: root/test/pos/patterns.scala
blob: f996f89725b225930bc4d51cf402ca32de04f8d6 (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(): scala.String = "Some(" + x + ")";
  override def equals(that: Any): Boolean = that match {
    case Some(x) => this.x == x
    case _ => false
  }
  override def hashCode(): scala.Int = getClass().hashCode() * 41 + x.hashCode();
}
case object None extends Option[All] {
  override def toString(): scala.String = "None";
  override def equals(that: Any) = that match {
    case None => true
    case _ => false
  }
  override def hashCode(): scala.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");
  }
}