aboutsummaryrefslogblamecommitdiff
path: root/tests/pos/i1318.scala
blob: dfb882825166057d2b194f6e33f7ef594ed1b05d (plain) (tree)





































                                                                      
object Foo {
  class S(i: Int)
  case class T(i: Int) extends S(i)

  object T {
    def unapply(s: S): Option[(Int, Int)] = Some(5, 6)
    // def unapply(o: Object): Option[(Int, Int, Int)] = Some(5, 6, 7)
  }

  val s = new S(5)

  s match {
    // case T(x, y, z) => println(x + y + z)
    case T(x, y) => println(x + y)
    case T(x) => println(x)
    case _ => println("not match")
  }
}

object Bar {
  case class T(i: Int)
  class S(i: Int) extends T(i)

  object T {
    def unapply(s: S): Option[(Int, Int)] = Some(5, 6)
    // def unapply(o: Object): Option[(Int, Int, Int)] = Some(5, 6, 7)
  }

  val s = new S(5)

  s match {
    // case T(x, y, z) => println(x + y + z)
    case T(x, y) => println(x + y)
    case T(x) => println(x)
    case _ => println("not match")
  }
}