diff options
Diffstat (limited to 'sources/scalac/transformer')
-rw-r--r-- | sources/scalac/transformer/matching/FreshVariableTraverser.java | 13 | ||||
-rw-r--r-- | sources/scalac/transformer/matching/LeftTracerInScala.java | 10 |
2 files changed, 15 insertions, 8 deletions
diff --git a/sources/scalac/transformer/matching/FreshVariableTraverser.java b/sources/scalac/transformer/matching/FreshVariableTraverser.java index 870b6e8779..a90bd5bb06 100644 --- a/sources/scalac/transformer/matching/FreshVariableTraverser.java +++ b/sources/scalac/transformer/matching/FreshVariableTraverser.java @@ -25,6 +25,7 @@ import java.util.Vector; /** A tree traverser for handling fresh variables + * todo: access method instead of * @author Burak Emir * @version 1.0 */ @@ -36,7 +37,7 @@ class FreshVariableTraverser extends VariableTraverser { /** */ - public HashMap helpMap; + private HashMap helpMap; /** * @param pos @@ -53,6 +54,10 @@ class FreshVariableTraverser extends VariableTraverser { helpMap = new HashMap(); } + public HashMap getHelpMap() { + return helpMap; + } + /** * @param sym */ @@ -67,4 +72,10 @@ class FreshVariableTraverser extends VariableTraverser { helpMap.put(sym, helpVar); } + public static HashMap getVars( Tree t, Symbol owner, FreshNameCreator fresh ) { + FreshVariableTraverser fvt = new FreshVariableTraverser( t.pos, owner, fresh ); + fvt.traverse( t ); + return fvt.helpMap; + } + } diff --git a/sources/scalac/transformer/matching/LeftTracerInScala.java b/sources/scalac/transformer/matching/LeftTracerInScala.java index 86200ae0b8..f9e02cf9d7 100644 --- a/sources/scalac/transformer/matching/LeftTracerInScala.java +++ b/sources/scalac/transformer/matching/LeftTracerInScala.java @@ -332,14 +332,10 @@ public class LeftTracerInScala extends Autom2Scala { } } - FreshVariableTraverser fv = new FreshVariableTraverser(pos, - owner, - cf.fresh); - fv.traverse( pat ); - HashMap helpMap = fv.helpMap; + HashMap helpMap = FreshVariableTraverser.getVars( pat, owner, cf.fresh ); //System.out.println("varMap: "+helpMap ); - m.varMap = fv.helpMap; + m.varMap = helpMap; //replaceVars( pat ); @@ -347,7 +343,7 @@ public class LeftTracerInScala extends Autom2Scala { (CaseDef) cf.make.CaseDef( pat.pos, pat, Tree.Empty, - handleBody( fv.helpMap )), + handleBody( helpMap )), (CaseDef) cf.make.CaseDef( pat.pos, cf.make.Ident(pat.pos, Names.WILDCARD) //.setSymbol( Symbol.NONE ) FIXED |