summaryrefslogtreecommitdiff
path: root/sources/scalac
diff options
context:
space:
mode:
authorburaq <buraq@epfl.ch>2005-06-10 16:37:26 +0000
committerburaq <buraq@epfl.ch>2005-06-10 16:37:26 +0000
commit20e20196473e16ace8e29ad8f85a9ec79af043aa (patch)
treeded50283cf48cca4e52a758f84c12009f1ec695d /sources/scalac
parent6ad31934e9c09b5523b3d7304e4014ff1c3037df (diff)
downloadscala-20e20196473e16ace8e29ad8f85a9ec79af043aa.tar.gz
scala-20e20196473e16ace8e29ad8f85a9ec79af043aa.tar.bz2
scala-20e20196473e16ace8e29ad8f85a9ec79af043aa.zip
fixed bugs #406 #440 #371
Diffstat (limited to 'sources/scalac')
-rw-r--r--sources/scalac/ast/Transformer.java.tmpl19
1 files changed, 17 insertions, 2 deletions
diff --git a/sources/scalac/ast/Transformer.java.tmpl b/sources/scalac/ast/Transformer.java.tmpl
index bf5fa09f4f..2fa347c305 100644
--- a/sources/scalac/ast/Transformer.java.tmpl
+++ b/sources/scalac/ast/Transformer.java.tmpl
@@ -205,12 +205,27 @@ public class GenTransformer {
case Block(Tree[] stats, Tree value):
return gen.Block(tree.pos, transform(stats), transform(value));
- // case Sequence(Tree[] trees):
+ case Sequence(Tree[] trees):
+ trees = transform(trees);
+ Tree seq = new Sequence(trees);
+ seq.pos = tree.pos;
+ seq.type = tree.type;
+ return seq;
// case Alternative(Tree[] trees):
- // case Bind(Name name, Tree rhs):
// case Visitor(CaseDef[] cases):
// case Function(ValDef[] vparams, Tree body):
+ case Bind(Name n, Tree pat): // test
+ Symbol sym = getSymbolFor(tree);
+ global.nextPhase();
+ sym.setType(tree.type);
+ global.prevPhase();
+ Tree bind = new ExtBind(sym, transform(pat));
+ bind.type = sym.getType();
+ bind.pos = tree.pos;
+ return bind;
+
+
case Assign(Tree lhs, Tree rhs):
return gen.Assign(tree.pos, transform(lhs), transform(rhs));