summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpaltherr <paltherr@epfl.ch>2003-10-10 16:23:16 +0000
committerpaltherr <paltherr@epfl.ch>2003-10-10 16:23:16 +0000
commitfa73acda7c2e71076f1407b939ea6c00bcf4114b (patch)
tree56867cb6d779f1a4766c8ef186862df39dea23f0
parent5dc0be399082e85cf61fa9956f71478ccf6ddf9e (diff)
downloadscala-fa73acda7c2e71076f1407b939ea6c00bcf4114b.tar.gz
scala-fa73acda7c2e71076f1407b939ea6c00bcf4114b.tar.bz2
scala-fa73acda7c2e71076f1407b939ea6c00bcf4114b.zip
- Removed CodeFactory.Block
-rw-r--r--sources/scalac/transformer/matching/AlgebraicMatcher.java8
-rw-r--r--sources/scalac/transformer/matching/Autom2Scala.java5
-rw-r--r--sources/scalac/transformer/matching/CodeFactory.java15
-rw-r--r--sources/scalac/transformer/matching/LeftTracerInScala.java2
-rw-r--r--sources/scalac/transformer/matching/PatternMatcher.java16
-rw-r--r--sources/scalac/transformer/matching/RightTracerInScala.java8
-rw-r--r--sources/scalac/transformer/matching/SequenceMatcher.java2
7 files changed, 20 insertions, 36 deletions
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