object Test { import scala.testing.UnitTest._ import scala.xml._ def handle[A](x:Node): A = { Console println x x.child(0).asInstanceOf[Atom[A]].data } def main(args:Array[String]) = { import scala.xml.NodeSeq import NodeSeq.view import testing.UnitTest._ val xNull = {null} // these used to be Atom(unit), changed to empty children assertSameElements( xNull.child, Nil ) val x0 = {} // these used to be Atom(unit), changed to empty children val x00 = { } // dto. val xa = { "world" } assertSameElements( x0.child, Nil ) assertSameElements( x00.child, Nil ) assertEquals( handle[String](xa),"world" ) val xb = { 1.5 } assertEquals( handle[Double](xb), 1.5 ) val xc = { 5 } assertEquals( handle[Int](xc), 5 ) val xd = { true } assertEquals( handle[Boolean](xd), true ) val xe = { 5:short } assertEquals( handle[Short](xe), 5:short ) val xf = { val x = 27; x } assertEquals( handle[Int](xf), 27 ) val xg = { List(1,2,3,4) } Console println xg for(val z <- xg.child) { Console println z.toString() + {if (z.isInstanceOf[Text]) "(is text node ' ')" else ""} } val xh = { for(val x <- List(1,2,3,4); x % 2 == 0) yield x } Console println xh for(val z <- xh.child) { Console println z.toString() + {if (z.isInstanceOf[Text]) "(is text node ' ')" else ""} } } }