diff options
author | buraq <buraq@epfl.ch> | 2005-06-10 16:37:26 +0000 |
---|---|---|
committer | buraq <buraq@epfl.ch> | 2005-06-10 16:37:26 +0000 |
commit | 20e20196473e16ace8e29ad8f85a9ec79af043aa (patch) | |
tree | ded50283cf48cca4e52a758f84c12009f1ec695d /sources/scalac | |
parent | 6ad31934e9c09b5523b3d7304e4014ff1c3037df (diff) | |
download | scala-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.tmpl | 19 |
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)); |