2011-08-28 41 views
6

scala.Predef chứa đoạn mã sau:

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

Có ai tìm ra lý do tại sao nó là cần thiết, xem xét rằng nó tạo ra phụ thuộc vào gói mà có thể đã được dễ dàng tách ra khỏi thư viện tiêu chuẩn?

Trả lời

4

Hãy xem src/compiler/scala/tools/nsc/ast/parser/SymbolicXMLBuilder.scala và kết quả phân tích cú pháp XML theo nghĩa đen.

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

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

Lý tưởng nhất điều này sẽ được di chuyển ở đâu đó dưới scala.xml; thử nó và xem những gì phá vỡ.