summaryrefslogtreecommitdiff
path: root/src/compiler/scala/tools/nsc/CompilationUnits.scala
diff options
context:
space:
mode:
authorJason Zaugg <jzaugg@gmail.com>2013-01-22 00:33:18 +0100
committerAdriaan Moors <adriaan.moors@typesafe.com>2013-06-20 15:46:26 -0700
commit9b72669a076206f1edbe34464717375c97997cea (patch)
tree9b62ed2461f2e06e289c504b14d38a757ae02801 /src/compiler/scala/tools/nsc/CompilationUnits.scala
parent4e9b33ab24bb3bf922c37a05a79af364b7b32b84 (diff)
downloadscala-9b72669a076206f1edbe34464717375c97997cea.tar.gz
scala-9b72669a076206f1edbe34464717375c97997cea.tar.bz2
scala-9b72669a076206f1edbe34464717375c97997cea.zip
Set scene for Predef.$scope's demise.
When there's no Predef.$scope but xml is being used, the compiler aliases scala.xml.TopScope to $scope. There must be a scala.xml package when xml literals were parsed. For compatibility with the old library, which relied on $scope being in scope, synthesize a `import scala.xml.{TopScope => $scope}` when xml is needed, but there's no Predef.$scope and the old library is detected (scala.xml.TopScope exists).
Diffstat (limited to 'src/compiler/scala/tools/nsc/CompilationUnits.scala')
-rw-r--r--src/compiler/scala/tools/nsc/CompilationUnits.scala14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/compiler/scala/tools/nsc/CompilationUnits.scala b/src/compiler/scala/tools/nsc/CompilationUnits.scala
index 15d365ab8c..b52e6fdf57 100644
--- a/src/compiler/scala/tools/nsc/CompilationUnits.scala
+++ b/src/compiler/scala/tools/nsc/CompilationUnits.scala
@@ -34,6 +34,20 @@ trait CompilationUnits { self: Global =>
/** the content of the compilation unit in tree form */
var body: Tree = EmptyTree
+ /** The position of the first xml literal encountered while parsing this compilation unit.
+ * NoPosition if there were none. Write-once.
+ */
+ private[this] var _firstXmlPos: Position = NoPosition
+
+ /** Record that we encountered XML. Should only be called once. */
+ protected[nsc] def encounteredXml(pos: Position) = _firstXmlPos = pos
+
+ /** Does this unit contain XML? */
+ def hasXml = _firstXmlPos ne NoPosition
+
+ /** Position of first XML literal in this unit. */
+ def firstXmlPos = _firstXmlPos
+
def exists = source != NoSourceFile && source != null
/** Note: depends now contains toplevel classes.