diff options
author | paltherr <paltherr@epfl.ch> | 2003-04-16 09:21:53 +0000 |
---|---|---|
committer | paltherr <paltherr@epfl.ch> | 2003-04-16 09:21:53 +0000 |
commit | 609593beeb70645c1a9ce2cb02331a264d8cbf5b (patch) | |
tree | 182d868a483f799b31e253f4f2cd2b801d403396 /sources | |
parent | 9a6a3347293acf9827555c60201a41ace52669f4 (diff) | |
download | scala-609593beeb70645c1a9ce2cb02331a264d8cbf5b.tar.gz scala-609593beeb70645c1a9ce2cb02331a264d8cbf5b.tar.bz2 scala-609593beeb70645c1a9ce2cb02331a264d8cbf5b.zip |
- Changed LazyTreeCopier to used a copier inste...
- Changed LazyTreeCopier to used a copier instead of a factory
Diffstat (limited to 'sources')
-rw-r--r-- | sources/meta/scalac/ast/MetaLazyTreeCopier.java | 13 | ||||
-rw-r--r-- | sources/scalac/ast/LazyTreeCopier.java.tmpl | 9 |
2 files changed, 12 insertions, 10 deletions
diff --git a/sources/meta/scalac/ast/MetaLazyTreeCopier.java b/sources/meta/scalac/ast/MetaLazyTreeCopier.java index a3d770b0d1..56ed1e3e00 100644 --- a/sources/meta/scalac/ast/MetaLazyTreeCopier.java +++ b/sources/meta/scalac/ast/MetaLazyTreeCopier.java @@ -16,8 +16,8 @@ public class MetaLazyTreeCopier extends AbstractTreeMethodExpander { public void printTreeMethod(TreeNode node) { printTreeMethodHeader(node, tree.t_Tree + " tree"); writer.lbrace(); + writer.println(node.name + " t = (" + node.name + ")tree;"); if (node.fields.length > 0) { - writer.println(node.name + " t = (" + node.name + ")tree;"); writer.print("if (").indent(); for (int i = 0; i < node.fields.length; i++) { if (i > 0) writer.println(" &&"); @@ -26,14 +26,11 @@ public class MetaLazyTreeCopier extends AbstractTreeMethodExpander { } writer.println(")"); writer.println("return t;").undent(); - } else { - writer.print(node.name).space(); + writer.print("t = copier." + node.name + "("); + node.printArgs(writer, "tree").println(");"); + writer.println("t.type = tree.type;"); + if (node.hasSymbol())writer.println("t.setSymbol(tree.symbol());"); } - - writer.print("t = make." + node.name + "("); - node.printArgs(writer, "tree.pos").println(");"); - writer.println("t.type = tree.type;"); - if (node.hasSymbol()) writer.println("t.setSymbol(tree.symbol());"); writer.println("return t;"); writer.rbrace(); } diff --git a/sources/scalac/ast/LazyTreeCopier.java.tmpl b/sources/scalac/ast/LazyTreeCopier.java.tmpl index 31608580ab..8da7facf2a 100644 --- a/sources/scalac/ast/LazyTreeCopier.java.tmpl +++ b/sources/scalac/ast/LazyTreeCopier.java.tmpl @@ -19,13 +19,18 @@ public class LazyTreeCopier implements TreeCopier { //######################################################################## // Protected Fields - protected final TreeFactory make; + /** The tree copier used to copy trees */ + protected final TreeCopier copier; //######################################################################## // Public Constructors public LazyTreeCopier(TreeFactory make) { - this.make = make; + this(new StrictTreeCopier(make)); + } + + public LazyTreeCopier(TreeCopier copier) { + this.copier = copier; } //######################################################################## |