summaryrefslogtreecommitdiff
path: root/sources
diff options
context:
space:
mode:
authorburaq <buraq@epfl.ch>2003-07-14 10:15:43 +0000
committerburaq <buraq@epfl.ch>2003-07-14 10:15:43 +0000
commite90fe22dc3fb01f61c2f5bc1f9ac217fc0b0fb2c (patch)
treed695d15512c06411ea6ae1d703d50d7562c35ea0 /sources
parentae9eeb9372891df1c6c5393cc35e4dfe56525f05 (diff)
downloadscala-e90fe22dc3fb01f61c2f5bc1f9ac217fc0b0fb2c.tar.gz
scala-e90fe22dc3fb01f61c2f5bc1f9ac217fc0b0fb2c.tar.bz2
scala-e90fe22dc3fb01f61c2f5bc1f9ac217fc0b0fb2c.zip
added static method, hid private variables
Diffstat (limited to 'sources')
-rw-r--r--sources/scalac/transformer/matching/FreshVariableTraverser.java13
-rw-r--r--sources/scalac/transformer/matching/LeftTracerInScala.java10
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