From fa73acda7c2e71076f1407b939ea6c00bcf4114b Mon Sep 17 00:00:00 2001 From: paltherr Date: Fri, 10 Oct 2003 16:23:16 +0000 Subject: - Removed CodeFactory.Block --- .../scalac/transformer/matching/AlgebraicMatcher.java | 8 ++++---- sources/scalac/transformer/matching/Autom2Scala.java | 5 ++--- sources/scalac/transformer/matching/CodeFactory.java | 15 --------------- .../scalac/transformer/matching/LeftTracerInScala.java | 2 +- sources/scalac/transformer/matching/PatternMatcher.java | 16 ++++++++-------- .../scalac/transformer/matching/RightTracerInScala.java | 8 ++++---- sources/scalac/transformer/matching/SequenceMatcher.java | 2 +- 7 files changed, 20 insertions(+), 36 deletions(-) (limited to 'sources') diff --git a/sources/scalac/transformer/matching/AlgebraicMatcher.java b/sources/scalac/transformer/matching/AlgebraicMatcher.java index 3b278db34d..3fb06775ec 100644 --- a/sources/scalac/transformer/matching/AlgebraicMatcher.java +++ b/sources/scalac/transformer/matching/AlgebraicMatcher.java @@ -394,7 +394,7 @@ public class AlgebraicMatcher extends PatternMatcher { gen.Ident( _m.pos, resultVar ), cf.ThrowMatchError( _m.resultType )).type( _m.resultType )); */ - return cf.Block(_m.pos, ts.toArray(), _m.resultType); + return gen.mkBlock(_m.pos, ts.toArray()); } protected Tree toTree(PatternNode node) { @@ -415,15 +415,15 @@ public class AlgebraicMatcher extends PatternMatcher { ts = new Tree[ 1 ]; int last = ts.length - 1; - ts[ last ] = cf.Block(body[i].pos, + ts[ last ] = gen.mkBlock( new Tree[]{ gen.Assign(gen.Ident( body[i].pos, resultVar ), body[i]), gen.mkBooleanLit(body[i].pos, true) - }, defs.BOOLEAN_TYPE); + }); if (guard[i] != Tree.Empty) ts[ last ] = cf.And(guard[i], ts[ last ]); - res = cf.Or(cf.Block(body[i].pos, ts, defs.BOOLEAN_TYPE), res); + res = cf.Or(gen.mkBlock(body[i].pos, ts), res); } return res; default: diff --git a/sources/scalac/transformer/matching/Autom2Scala.java b/sources/scalac/transformer/matching/Autom2Scala.java index db5e30e85e..5dbefea142 100644 --- a/sources/scalac/transformer/matching/Autom2Scala.java +++ b/sources/scalac/transformer/matching/Autom2Scala.java @@ -153,7 +153,7 @@ public class Autom2Scala { // overridden in TracerInScala Tree loadCurrentElem( Tree body ) { - return cf.Block( Position.FIRSTPOS, new Tree[] { + return gen.mkBlock( new Tree[] { cf.gen.ValDef( this.hasnSym, cf._hasNext( _iter() ) ), cf.gen.ValDef( this.curSym, @@ -162,8 +162,7 @@ public class Autom2Scala { gen.mkDefaultValue(cf.pos,curSym.type()))), //cf.ignoreValue( curSym.type() ) - body }, - body.type() ); + body }); } Tree currentElem() { diff --git a/sources/scalac/transformer/matching/CodeFactory.java b/sources/scalac/transformer/matching/CodeFactory.java index 03b9ff5f1e..cab3d85253 100644 --- a/sources/scalac/transformer/matching/CodeFactory.java +++ b/sources/scalac/transformer/matching/CodeFactory.java @@ -307,21 +307,6 @@ class CodeFactory extends PatternTool { //return sym.typeAt(unit.global.ANALYZER_PHASE.id); } - - protected Tree Block(int pos, Tree[] ts, Type tpe) { - if (ts.length == 1) - return ts[0]; - else if (ts.length > 1) - switch (ts[ts.length - 1]) { - case Block(Tree[] ts0): - Tree[] ts1 = new Tree[ts0.length + ts.length - 1]; - System.arraycopy(ts, 0, ts1, 0, ts.length - 1); - System.arraycopy(ts0, 0, ts1, ts.length - 1, ts0.length); - return Block(pos, ts1, tpe); - } - return gen.Block(pos, ts); - } - // unused public Tree Negate(Tree tree) { switch (tree) { diff --git a/sources/scalac/transformer/matching/LeftTracerInScala.java b/sources/scalac/transformer/matching/LeftTracerInScala.java index 4b0c0d82ff..a74f4f994a 100644 --- a/sources/scalac/transformer/matching/LeftTracerInScala.java +++ b/sources/scalac/transformer/matching/LeftTracerInScala.java @@ -277,7 +277,7 @@ public class LeftTracerInScala extends TracerInScala { m.stms = new Tree[2]; m.stms[0] = stm; m.stms[1] = gen.mkBooleanLit(Position.FIRSTPOS, true); - return cf.Block( Position.FIRSTPOS, m.stms, m.stms[1].type() ); + return gen.mkBlock(m.stms); } } diff --git a/sources/scalac/transformer/matching/PatternMatcher.java b/sources/scalac/transformer/matching/PatternMatcher.java index 8130f71dc1..a28d0aa8b7 100644 --- a/sources/scalac/transformer/matching/PatternMatcher.java +++ b/sources/scalac/transformer/matching/PatternMatcher.java @@ -812,7 +812,7 @@ public class PatternMatcher extends PatternTool { make.Ident(selector.pos, resultVar.name).setType(resultVar.type()).setSymbol(resultVar), cf.ThrowMatchError(selector.pos, resultVar.type())).setType(resultVar.type())); - return cf.Block(selector.pos, ts.toArray(), resultVar.type()); + return gen.mkBlock(selector.pos, ts.toArray()); } protected Tree toTree(PatternNode node) { @@ -832,7 +832,7 @@ public class PatternMatcher extends PatternTool { for (int i = guard.length - 1; i >= 0; i--) { Tree[] ts = new Tree[bound[i].length + 1]; System.arraycopy(bound[i], 0, ts, 0, bound[i].length); - ts[bound[i].length] = cf.Block(body[i].pos, + ts[bound[i].length] = gen.mkBlock( new Tree[]{ make.Assign( body[i].pos, @@ -840,10 +840,10 @@ public class PatternMatcher extends PatternTool { .setType(resultVar.type()).setSymbol(resultVar), body[i]).setType(defs.UNIT_TYPE), gen.mkBooleanLit(body[i].pos, true) - }, defs.BOOLEAN_TYPE); + }); if (guard[i] != Tree.Empty) ts[bound[i].length] = cf.And(guard[i], ts[bound[i].length]); - res = cf.Or(cf.Block(body[i].pos, ts, defs.BOOLEAN_TYPE), res); + res = cf.Or(gen.mkBlock(body[i].pos, ts), res); } return res; default: @@ -953,7 +953,7 @@ public class PatternMatcher extends PatternTool { return make.If( selector.pos, gen.mkIsInstanceOf(selector.duplicate(), node.type), - cf.Block(selector.pos, + gen.mkBlock( new Tree[]{ make.ValDef(selector.pos, 0, @@ -961,7 +961,7 @@ public class PatternMatcher extends PatternTool { gen.mkType(selector.pos, node.type), gen.mkAsInstanceOf(selector.duplicate(), node.type)) .setType(defs.UNIT_TYPE).setSymbol(casted), - toTree(node.and)}, defs.BOOLEAN_TYPE), + toTree(node.and)}), toTree(node.or, selector.duplicate())).setType(defs.BOOLEAN_TYPE); case SequencePat(Symbol casted, int len): Symbol lenSym = casted.type().lookup(LENGTH_N); @@ -984,7 +984,7 @@ public class PatternMatcher extends PatternTool { Tree.EMPTY_ARRAY).setType(defs.INT_TYPE), make.Literal(selector.pos, new Integer(len)) .setType(defs.INT_TYPE))), - cf.Block(selector.pos, + gen.mkBlock( new Tree[]{ make.ValDef(selector.pos, 0, @@ -992,7 +992,7 @@ public class PatternMatcher extends PatternTool { gen.mkType(selector.pos, node.type), gen.mkAsInstanceOf(selector.duplicate(), node.type)) .setType(defs.UNIT_TYPE).setSymbol(casted), - toTree(node.and)}, defs.BOOLEAN_TYPE), + toTree(node.and)}), toTree(node.or, selector.duplicate())) .setType(defs.BOOLEAN_TYPE); case ConstantPat(Object value): diff --git a/sources/scalac/transformer/matching/RightTracerInScala.java b/sources/scalac/transformer/matching/RightTracerInScala.java index a01053e069..5648c49833 100644 --- a/sources/scalac/transformer/matching/RightTracerInScala.java +++ b/sources/scalac/transformer/matching/RightTracerInScala.java @@ -195,7 +195,7 @@ public class RightTracerInScala extends TracerInScala { Tree t3 = cf.If( cf.isEmpty( _iter() ), run_finished( 0 ), - gen.Block( new Tree[] { + gen.mkBlock( new Tree[] { gen.ValDef( targetSym, cf.SeqTrace_headState( gen.Ident( pos, iterSym))), gen.ValDef( elemSym, @@ -204,7 +204,7 @@ public class RightTracerInScala extends TracerInScala { body })); /* - t3 = gen.Block( new Tree[] { + t3 = gen.mkBlock( new Tree[] { cf.debugPrintRuntime("enter binderFun"), cf.debugPrintRuntime(" state:"), cf.debugPrintRuntime( gen.Ident( pos, stateSym )), @@ -305,7 +305,7 @@ public class RightTracerInScala extends TracerInScala { res[ j ] = gen.mkBooleanLit( Position.FIRSTPOS, true ); // just `true' - return cf.Block(Position.FIRSTPOS, res, res[j].type() ); + return gen.mkBlock(res); } // calling the AlgebraicMatcher here @@ -422,7 +422,7 @@ public class RightTracerInScala extends TracerInScala { stms[ j ] = callFun( new Tree[] { cf.SeqTrace_tail( _iter() ), gen.mkIntLit( cf.pos, ntarget ) } ); - return cf.Block( pos, stms, funRetType() ); + return gen.mkBlock( pos, stms ); } /* returns statements that do the work of the right-transducer diff --git a/sources/scalac/transformer/matching/SequenceMatcher.java b/sources/scalac/transformer/matching/SequenceMatcher.java index 6ccadf51d0..8d64d602e5 100644 --- a/sources/scalac/transformer/matching/SequenceMatcher.java +++ b/sources/scalac/transformer/matching/SequenceMatcher.java @@ -103,7 +103,7 @@ public class SequenceMatcher extends PatternTool { val.setInfo( key.type() ); // !!! ? } - return cf.Block( body.pos, items, body.type ); + return gen.mkBlock( body.pos, items ); } /** turns body `case pat(x,y,z) => body' into -- cgit v1.2.3