2011-08-28 11 views
6

scala.Predef contiene il seguente codice:

// Apparently needed for the xml library 
val $scope = scala.xml.TopScope 

Ha fatto qualcuno a capire perché è necessario, se si considera che esso crea le dipendenze ai pacchetti che avrebbe potuto essere facilmente dividere fuori dalla libreria standard?

risposta

4

Dai uno sguardo allo src/compiler/scala/tools/nsc/ast/parser/SymbolicXMLBuilder.scala e il risultato dell'analisi di un valore letterale XML.

scala -Xprint:parser -e '<node/>' 

new _root_.scala.xml.Elem(null, "node", _root_.scala.xml.Null, $scope) 

Idealmente questo sarebbe stato spostato da qualche parte sotto scala.xml; provalo e guarda cosa rompe.