Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What's the purpose of $scope in scala.Predef?

scala.Predef contains the following code:

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

Did someone figure out why it is necessary, considering that it creates dependencies to packages which could have been easily split out of the standard library?

like image 398
soc Avatar asked Aug 28 '11 17:08

soc


1 Answers

Take a look at src/compiler/scala/tools/nsc/ast/parser/SymbolicXMLBuilder.scala, and the result of parsing an XML literal.

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

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

Ideally this would be moved somewhere under scala.xml; try it and see what breaks.

like image 51
retronym Avatar answered Oct 10 '22 05:10

retronym