M>Это на каком языке код? В Scala
M>M>class Test {
M> class Tree(val left : Tree, val right : Tree)
M> implicit object TreeWrapper {
M> def unapply(t : Tree) = Some(t.left, t.right)
M> }
M> def main(args: Array[String]) {
M> val tr : Tree = null;
M> tr match {
M> case TreeWrapper(t1, t2) => println(t1, t2);
M> }
M> }
M>}
M>
M>прекрасно работает.
Сайберакс имеет ввиду что названия .left .right мы потеряли, и нужно вводить свои (t1,t2) или пользоваться анонимными ._1/._2
На самом деле нет ни одной причины не объявить Tree как case class. Так что на мой взгляд он просто привередничает