1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
sealed abstract class TA sealed abstract class TB extends TA case object A extends TA case object B extends TB sealed trait C case class CTA(id: Int, da: TA) extends C case class CTB(id: Int, da: TB) extends C object Test { val test: C => Unit = { case CTA(_, A) => case CTA(_, B) => case CTB(_, B) => } }