diff options
author | paltherr <paltherr@epfl.ch> | 2004-02-12 15:10:40 +0000 |
---|---|---|
committer | paltherr <paltherr@epfl.ch> | 2004-02-12 15:10:40 +0000 |
commit | 2014d1feeefd1bc6bcfee0cee347c4a77db05253 (patch) | |
tree | deffe18f0bf6527171d655885445abc8bb17023b /sources/scalac/atree | |
parent | b62de8dc4f94efa47bf6714865b8bbf4df700046 (diff) | |
download | scala-2014d1feeefd1bc6bcfee0cee347c4a77db05253.tar.gz scala-2014d1feeefd1bc6bcfee0cee347c4a77db05253.tar.bz2 scala-2014d1feeefd1bc6bcfee0cee347c4a77db05253.zip |
- Changed Tree.Block(Tree[]) to Tree.Block(Tree...
- Changed Tree.Block(Tree[]) to Tree.Block(Tree[],Tree)
Diffstat (limited to 'sources/scalac/atree')
-rw-r--r-- | sources/scalac/atree/ATreeFromSTree.java | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/sources/scalac/atree/ATreeFromSTree.java b/sources/scalac/atree/ATreeFromSTree.java index cf62f951fa..e5eccc8fe8 100644 --- a/sources/scalac/atree/ATreeFromSTree.java +++ b/sources/scalac/atree/ATreeFromSTree.java @@ -149,9 +149,9 @@ public class ATreeFromSTree { // Private Methods - Translating statements /** Translates the statements. */ - private ACode[] statement(List locals, Tree[] trees, int start, int count){ + private ACode[] statement(List locals, Tree[] trees) { List codes = new ArrayList(); - for (int i = start; i < start + count; i++) { + for (int i = 0; i < trees.length; i++) { ACode code = statement(locals, trees[i]); if (code != ACode.Void) codes.add(code); } @@ -194,16 +194,14 @@ public class ATreeFromSTree { Symbol[] locals = Tree.symbolOf(idents); return make.Label(tree, tree.symbol(), locals, expression(rhs)); - case Block(Tree[] statements): - if (statements.length == 0) return make.Void; - int statement_count = statements.length - 1; + case Block(Tree[] stats, Tree value): List locals = new ArrayList(); - ACode[] codes = statement(locals,statements,0, statement_count); - ACode value = expression(statements[statement_count]); - if (locals.size() == 0 && codes.length == 0) return value; + ACode[] codes = statement(locals, stats); + ACode code = expression(value); + if (locals.size() == 0 && codes.length == 0) return code; Symbol[] symbols = (Symbol[])locals.toArray(new Symbol[locals.size()]); - return make.Block(tree, symbols, codes, value); + return make.Block(tree, symbols, codes, code); case Assign(Tree lhs, Tree rhs): return make.Block(tree, Symbol.EMPTY_ARRAY, new ACode[] { |