summaryrefslogtreecommitdiff
path: root/sources/scalac/transformer/matching/RightTracerInScala.java
diff options
context:
space:
mode:
authorburaq <buraq@epfl.ch>2003-10-22 09:29:37 +0000
committerburaq <buraq@epfl.ch>2003-10-22 09:29:37 +0000
commit0590ef07a2afadbf35137847dc9e28ee7d4ab90c (patch)
tree75699285b7902ce621a3f567c1c5415f83ef411a /sources/scalac/transformer/matching/RightTracerInScala.java
parent3b888fff88f0402dcdd355c37cfc6309743a7236 (diff)
downloadscala-0590ef07a2afadbf35137847dc9e28ee7d4ab90c.tar.gz
scala-0590ef07a2afadbf35137847dc9e28ee7d4ab90c.tar.bz2
scala-0590ef07a2afadbf35137847dc9e28ee7d4ab90c.zip
cleanup
Diffstat (limited to 'sources/scalac/transformer/matching/RightTracerInScala.java')
-rw-r--r--sources/scalac/transformer/matching/RightTracerInScala.java27
1 files changed, 12 insertions, 15 deletions
diff --git a/sources/scalac/transformer/matching/RightTracerInScala.java b/sources/scalac/transformer/matching/RightTracerInScala.java
index 2be85bc9c4..d071a8295f 100644
--- a/sources/scalac/transformer/matching/RightTracerInScala.java
+++ b/sources/scalac/transformer/matching/RightTracerInScala.java
@@ -108,18 +108,16 @@ public class RightTracerInScala extends TracerInScala {
if( keepType )
helpVar.setType( realVar.type() );
else
- helpVar.setType( cf.SeqListType( elementType ) );
+ helpVar.setType( defs.listType(elementType) );
helpMap.put( realVar, helpVar );
Tree rhs;
if( keepType )
- rhs = gen.mkDefaultValue(cf.pos,
- realVar.type()); //cf.ignoreValue( realVar.type() );
+ rhs = gen.mkDefaultValue( cf.pos, realVar.type() );
else
- rhs = /* cf.newRef( cf.newSeqNil( */ gen.Nil( cf.pos );
- /* ) */;
+ rhs = gen.Nil( cf.pos );
helpVar.flags |= Modifiers.MUTABLE;
Tree varDef = gen.ValDef( helpVar, rhs );
//((ValDef) varDef).kind = Kinds.VAR;
@@ -129,7 +127,7 @@ public class RightTracerInScala extends TracerInScala {
Tree prependToHelpVar( Symbol realVar, Tree elem ) {
Tree hv = refHelpVar( realVar );
- return gen.Assign( hv, gen.Cons(cf.pos, elem.type(), elem, hv));//cf.newSeqCons( elem, hv ));
+ return gen.Assign( hv, gen.Cons( cf.pos, elem.type(), elem, hv ));
/*
return cf.Block(pos,
new Tree [] {
@@ -175,9 +173,7 @@ public class RightTracerInScala extends TracerInScala {
// same as in LeftTracer
Tree code_fail() {
-
return cf.ThrowMatchError( _m.pos, defs.UNIT_TYPE );
-
}
public Tree code_body() {
@@ -191,7 +187,6 @@ public class RightTracerInScala extends TracerInScala {
body = code_state( i, body );
}
-
Tree t3 = gen.If( cf.isEmpty( _iter() ),
run_finished( 0 ),
gen.mkBlock( new Tree[] {
@@ -296,7 +291,7 @@ public class RightTracerInScala extends TracerInScala {
for( Iterator it = helpMap3.keySet().iterator(); it.hasNext(); ) {
Symbol vsym = (Symbol) it.next();
Symbol hv = (Symbol) helpMap3.get( vsym );
- hv.setType( cf.SeqListType( elementType ) ) ;
+ hv.setType( defs.listType( elementType ) ) ;
Tree refv = gen.Ident(Position.FIRSTPOS, vsym);
Tree refhv = gen.Ident(Position.FIRSTPOS, hv);
res[ j++ ] = gen.Assign( refhv, refv );
@@ -318,13 +313,15 @@ public class RightTracerInScala extends TracerInScala {
currentElem(),
defs.BOOLEAN_TYPE );
- // there could be regular expressions under Sequence node, export those later
+ // there could be variables in regular expressions under Sequence node,
+ // export those later
Vector varsToExport = NoSeqVariableTraverser.varsNoSeq( pat );
HashMap freshenMap = new HashMap();
HashMap helpMap3 = new HashMap();
- // "freshening": never use the same symbol more than once (in later invocations of _cur_match)
+ // "freshening": never use the same symbol more than once
+ // (in later invocations of _cur_match)
for( Iterator it = varsToExport.iterator(); it.hasNext(); ) {
Symbol key = (Symbol) it.next();
@@ -336,9 +333,9 @@ public class RightTracerInScala extends TracerInScala {
helpMap3.put( newSym, helpMap.get( key ));
}
- //System.out.println("RightTracerInScala::freshenMap :"+freshenMap);
- //System.out.println("RightTracerInScala:: -pat :"+pat.toString());
- //System.out.println("RightTracerInScala::varsToExport :"+varsToExport);
+ System.out.println("RightTracerInScala::freshenMap :"+freshenMap);
+ System.out.println("RightTracerInScala:: -pat :"+pat.toString());
+ System.out.println("RightTracerInScala::varsToExport :"+varsToExport);
// "freshening"