diff options
author | buraq <buraq@epfl.ch> | 2003-07-04 15:16:40 +0000 |
---|---|---|
committer | buraq <buraq@epfl.ch> | 2003-07-04 15:16:40 +0000 |
commit | 335a4e9588279ee5d45c6bd46b8771ce6b623723 (patch) | |
tree | ea1ba36629ac233b12d593bbd2f3229db630fe7c /sources/scalac/transformer/matching/FreshVariableTraverser.java | |
parent | 68f54db8331ae091a78f0f1cc0f5e0adf56394af (diff) | |
download | scala-335a4e9588279ee5d45c6bd46b8771ce6b623723.tar.gz scala-335a4e9588279ee5d45c6bd46b8771ce6b623723.tar.bz2 scala-335a4e9588279ee5d45c6bd46b8771ce6b623723.zip |
pattern matching encore
Diffstat (limited to 'sources/scalac/transformer/matching/FreshVariableTraverser.java')
-rw-r--r-- | sources/scalac/transformer/matching/FreshVariableTraverser.java | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/sources/scalac/transformer/matching/FreshVariableTraverser.java b/sources/scalac/transformer/matching/FreshVariableTraverser.java new file mode 100644 index 0000000000..7010aae5da --- /dev/null +++ b/sources/scalac/transformer/matching/FreshVariableTraverser.java @@ -0,0 +1,46 @@ +package scalac.transformer.matching ; + +import scalac.ast.Traverser ; + +import scalac.ast.Tree; +import Tree.Ident; +import Tree.Bind; + +import scalac.util.Name; +import scalac.util.FreshNameCreator ; + +import scalac.symtab.* ; + +import java.util.HashMap; +import java.util.Vector; + +class FreshVariableTraverser extends VariableTraverser { + + int pos; + Symbol owner; + FreshNameCreator fresh; + + public HashMap helpMap ; + + public FreshVariableTraverser( int pos, + Symbol owner, + FreshNameCreator fresh) { + this.pos = pos; + this.owner = owner; + this.fresh = fresh; + + helpMap = new HashMap(); + } + + void handleVariableSymbol( Symbol sym ) { + Symbol helpVar = new TermSymbol( pos, + fresh.newName( sym.name + .toString() ), + owner, + 0) + .setType( sym.type() ); + + helpMap.put( sym, helpVar ); + } + +} |