diff options
author | Martin Odersky <odersky@gmail.com> | 2003-03-05 13:27:12 +0000 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2003-03-05 13:27:12 +0000 |
commit | a0058802194eb743f9413cc3abfa60c5bedb58e5 (patch) | |
tree | b5f5f462048064b7315d9ae3c54264fc6e398ba5 /sources/scalac/ast | |
parent | 3d7e4fa518125107d00ff75132cb106f002443d0 (diff) | |
download | scala-a0058802194eb743f9413cc3abfa60c5bedb58e5.tar.gz scala-a0058802194eb743f9413cc3abfa60c5bedb58e5.tar.bz2 scala-a0058802194eb743f9413cc3abfa60c5bedb58e5.zip |
*** empty log message ***
Diffstat (limited to 'sources/scalac/ast')
-rw-r--r-- | sources/scalac/ast/Tree.java | 11 | ||||
-rw-r--r-- | sources/scalac/ast/parser/Parser.java | 8 |
2 files changed, 13 insertions, 6 deletions
diff --git a/sources/scalac/ast/Tree.java b/sources/scalac/ast/Tree.java index a60f6fe8ed..d7e54dfc52 100644 --- a/sources/scalac/ast/Tree.java +++ b/sources/scalac/ast/Tree.java @@ -9,6 +9,7 @@ package scalac.ast; import scalac.ast.printer.*; +import scalac.Global; import scalac.util.Debug; import scalac.util.Name; import scalac.util.Position; @@ -888,4 +889,14 @@ public class Tree { } //######################################################################## + // duplication + + public static Transformer duplicator = + new Transformer( + Global.instance, null, Global.instance.make, + new StrictTreeFactory(Global.instance.make)); + + public Tree duplicate() { + return duplicator.transform(this); + } } diff --git a/sources/scalac/ast/parser/Parser.java b/sources/scalac/ast/parser/Parser.java index 6f2ddb5d0f..2dca2ce14e 100644 --- a/sources/scalac/ast/parser/Parser.java +++ b/sources/scalac/ast/parser/Parser.java @@ -32,13 +32,9 @@ public class Parser implements Tokens { */ TreeFactory make; - final Transformer duplicator; - public Parser(Unit unit) { s = new Scanner(unit); make = unit.global.make; - this.duplicator = new Transformer( - unit.global, null, make, new StrictTreeFactory(make)); } /** this is the general parse method @@ -216,7 +212,7 @@ public class Parser implements Tokens { System.arraycopy(enums, 2, newenums, 1, newenums.length - 1); newenums[0] = make.PatDef( enums[0].pos, mods, pat, - makeFor1(enums[1].pos, Names.filter, duplicator.transform(pat), rhs, enums[1])); + makeFor1(enums[1].pos, Names.filter, pat.duplicate(), rhs, enums[1])); return makeFor(pos, newenums, mapName, flatmapName, body); } default: @@ -946,7 +942,7 @@ public class Parser implements Tokens { rhs.pos, new Tree.CaseDef[]{ (CaseDef)make.CaseDef( - rhs.pos, duplicator.transform(pat), Tree.Empty, + rhs.pos, pat.duplicate(), Tree.Empty, make.Select(rhs.pos, scalaDot(rhs.pos, Names.Boolean), Names.True)), (CaseDef)make.CaseDef( |