diff options
author | paltherr <paltherr@epfl.ch> | 2003-08-15 14:38:09 +0000 |
---|---|---|
committer | paltherr <paltherr@epfl.ch> | 2003-08-15 14:38:09 +0000 |
commit | 0386aaf8b97b41e414639c92b28639a663de5102 (patch) | |
tree | 4ec1d57bfe41dc82441ae0f4c3007225e63927a0 /sources/scalac | |
parent | 8dbaa5dfc08019a27e2a251fcd9e42ae31507f1a (diff) | |
download | scala-0386aaf8b97b41e414639c92b28639a663de5102.tar.gz scala-0386aaf8b97b41e414639c92b28639a663de5102.tar.bz2 scala-0386aaf8b97b41e414639c92b28639a663de5102.zip |
- Replaced use of AttributedTreeCopier by Trans...
- Replaced use of AttributedTreeCopier by Transformer
Diffstat (limited to 'sources/scalac')
-rw-r--r-- | sources/scalac/transformer/matching/SequenceMatcher.java | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/sources/scalac/transformer/matching/SequenceMatcher.java b/sources/scalac/transformer/matching/SequenceMatcher.java index 02cf68ddf6..27386792c0 100644 --- a/sources/scalac/transformer/matching/SequenceMatcher.java +++ b/sources/scalac/transformer/matching/SequenceMatcher.java @@ -139,7 +139,7 @@ public class SequenceMatcher extends PatternTool { //System.out.println( "vars: "+vars ); int j; - RightTracerInScala rtis = + final RightTracerInScala rtis = new RightTracerInScala( dRight, left, mL, cf, pat, elementType ); @@ -157,12 +157,26 @@ public class SequenceMatcher extends PatternTool { j = stms.length + stms2.length ; items[ stms.length + stms2.length ] = body; - AttributedTreeCopier treeCopier = new AttributedTreeCopier(unit.global, cf.make) ; + Transformer treeCloner = new Transformer(unit.global) { + public Tree transform(Tree tree) { + tree = super.transform(tree); + if (tree.hasSymbol()) { + Object symbol = rtis.helpMap2.get(tree.symbol()); + if (symbol != null) tree.setSymbol((Symbol)symbol); + } + return tree; + } + }; //System.out.println("helpmap"); //System.out.println( rtis.helpMap2 ); - treeCopier.pushSymbolSubst( rtis.helpMap2 ); - items[ stms.length + stms2.length ] = treeCopier.copy( body ); + items[ stms.length + stms2.length ] = treeCloner.transform( body ); + for( Iterator it = rtis.helpMap2.entrySet().iterator(); it.hasNext(); ) { + Map.Entry e = (Map.Entry)it.next(); + Symbol key = (Symbol)e.getKey(); + Symbol val = (Symbol)e.getValue(); + val.setInfo( key.type() ); // !!! ? + } return cf.Block( body.pos, items, body.type ); } |