summaryrefslogtreecommitdiff
path: root/sources/scalac/transformer/matching/RightTracerInScala.java
diff options
context:
space:
mode:
authorburaq <buraq@epfl.ch>2003-07-09 08:45:32 +0000
committerburaq <buraq@epfl.ch>2003-07-09 08:45:32 +0000
commit57830a98fc7fd743445abc9faf056de03fa18e7c (patch)
tree4464ea209bb2d5227e34897e851829940c16209e /sources/scalac/transformer/matching/RightTracerInScala.java
parentdf8999d77a1dfcca5070d821d550c237e82a62ce (diff)
downloadscala-57830a98fc7fd743445abc9faf056de03fa18e7c.tar.gz
scala-57830a98fc7fd743445abc9faf056de03fa18e7c.tar.bz2
scala-57830a98fc7fd743445abc9faf056de03fa18e7c.zip
allocation of variables in binding
Diffstat (limited to 'sources/scalac/transformer/matching/RightTracerInScala.java')
-rw-r--r--sources/scalac/transformer/matching/RightTracerInScala.java11
1 files changed, 6 insertions, 5 deletions
diff --git a/sources/scalac/transformer/matching/RightTracerInScala.java b/sources/scalac/transformer/matching/RightTracerInScala.java
index 698a726321..a83419eb91 100644
--- a/sources/scalac/transformer/matching/RightTracerInScala.java
+++ b/sources/scalac/transformer/matching/RightTracerInScala.java
@@ -120,7 +120,8 @@ public class RightTracerInScala extends Autom2Scala {
if( keepType )
rhs = cf.ignoreValue( realVar.type() );
else
- rhs = cf.newSeqNil( elementType );
+ rhs = /* cf.newRef( */ cf.newSeqNil( elementType ) /* ) */;
+ helpVar.flags |= Modifiers.MUTABLE;
Tree varDef = gen.ValDef(helpVar, rhs);
//((ValDef) varDef).kind = Kinds.VAR;
helpVarDefs.add( varDef );
@@ -197,7 +198,7 @@ public class RightTracerInScala extends Autom2Scala {
// same as in LeftTracer
Tree code_fail() {
- return cf.ThrowMatchError( Position.NOPOS, defs.UNIT_TYPE );
+ return cf.ThrowMatchError( _m.pos, defs.UNIT_TYPE );
}
@@ -354,10 +355,10 @@ public class RightTracerInScala extends Autom2Scala {
(CaseDef) cf.make.CaseDef( pat.pos,
cf.make.Ident(pat.pos, WILDCARD_N)
.setSymbol( Symbol.NONE )
- .setType(pat.type()),
+ .setType( pat.type() ),
Tree.Empty,
- gen.mkBooleanLit( pat.pos, false )) }/*,
- true // do binding please */
+ gen.mkBooleanLit( pat.pos, false )) },
+ true // do binding please
);
Tree res = am.toTree().setType( defs.BOOLEAN_TYPE );
//System.out.println("freeVars: "+freeVars);