summaryrefslogtreecommitdiff
path: root/src/compiler/scala/tools/nsc/ast/parser/SymbolicXMLBuilder.scala
diff options
context:
space:
mode:
authorBurak Emir <emir@epfl.ch>2007-07-05 10:16:58 +0000
committerBurak Emir <emir@epfl.ch>2007-07-05 10:16:58 +0000
commitc7345c8a951fdc57ade7d8b9af0bb18c1f88c191 (patch)
treec0a08fd7fa84da240959413d8cc4a6183ea1a5eb /src/compiler/scala/tools/nsc/ast/parser/SymbolicXMLBuilder.scala
parent8a42f2f14606587d2d191ccefb4996ce49093abe (diff)
downloadscala-c7345c8a951fdc57ade7d8b9af0bb18c1f88c191.tar.gz
scala-c7345c8a951fdc57ade7d8b9af0bb18c1f88c191.tar.bz2
scala-c7345c8a951fdc57ade7d8b9af0bb18c1f88c191.zip
in makeXMLseq, replaced chained append calls wi...
in makeXMLseq, replaced chained append calls with a statements in a block
Diffstat (limited to 'src/compiler/scala/tools/nsc/ast/parser/SymbolicXMLBuilder.scala')
-rw-r--r--src/compiler/scala/tools/nsc/ast/parser/SymbolicXMLBuilder.scala17
1 files changed, 13 insertions, 4 deletions
diff --git a/src/compiler/scala/tools/nsc/ast/parser/SymbolicXMLBuilder.scala b/src/compiler/scala/tools/nsc/ast/parser/SymbolicXMLBuilder.scala
index 057a15e651..76c02a722f 100644
--- a/src/compiler/scala/tools/nsc/ast/parser/SymbolicXMLBuilder.scala
+++ b/src/compiler/scala/tools/nsc/ast/parser/SymbolicXMLBuilder.scala
@@ -54,6 +54,8 @@ abstract class SymbolicXMLBuilder(make: TreeBuilder, p: Parsers # Parser, preser
def _Text = global.newTypeName("Text")
def __Text = global.newTermName("Text")
def _EntityRef = global.newTypeName("EntityRef")
+
+ final def _buf = global.newTermName("$buf")
final def _md = global.newTermName("$md")
final def _scope = global.newTermName("$scope")
final def _tmpscope = global.newTermName("$tmpscope")
@@ -212,18 +214,25 @@ abstract class SymbolicXMLBuilder(make: TreeBuilder, p: Parsers # Parser, preser
case _ => false
}
+ // could optimize if args.length == 0, args.length == 1 AND args(0) is <: Node.
def makeXMLseq(pos: Position, args:mutable.Buffer[Tree] ) = {
- var _buffer = New( _scala_xml_NodeBuffer, List(Nil))
+ //var _buffer = New( _scala_xml_NodeBuffer, List(Nil))
+
+ var as:List[Tree] = ValDef(NoMods, _buf, TypeTree(), New( _scala_xml_NodeBuffer, List(Nil)))::Nil
val it = args.elements
while (it.hasNext) {
val t = it.next
if (!isEmptyText(t)) {
- _buffer = Apply(Select(_buffer, _plus), List(t))
+ //_buffer = Apply(Select(_buffer, _plus), List(t))
+ as = Apply(Select(Ident(_buf), _plus), List(t))::as
}
}
- atPos(pos) { Select(_buffer, _toList) }
- }
+ //atPos(pos) { Select(_buffer, _toList) }
+ atPos(pos) {
+ Block(as.reverse, Ident(_buf))
+ }
+ }
/** returns Some(prefix) if pre:name, None otherwise */
def getPrefix(name: String): Option[String] = {
val i = name.indexOf(':')