1 2 3 4 5 6 7 8 9 10 11 12 13 14
object Temp { abstract class A object B { private case class B_inner() extends A def apply: A = B_inner() def unapply(a: A) = a match { case B_inner() => true case _ => false } } B() match { case B() => Console.println("match") } }