summaryrefslogtreecommitdiff
path: root/sources/scalac/transformer/matching/CodeFactory.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/CodeFactory.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/CodeFactory.java')
-rw-r--r--sources/scalac/transformer/matching/CodeFactory.java18
1 files changed, 16 insertions, 2 deletions
diff --git a/sources/scalac/transformer/matching/CodeFactory.java b/sources/scalac/transformer/matching/CodeFactory.java
index 9a6d0ef9a8..dc311408d0 100644
--- a/sources/scalac/transformer/matching/CodeFactory.java
+++ b/sources/scalac/transformer/matching/CodeFactory.java
@@ -34,7 +34,9 @@ class CodeFactory extends PatternTool {
static final Name ISEMPTY_N = Name.fromString("isEmpty");
-
+ Symbol refSym() { // delete Names.Ref
+ return defs.getType( Names.scala_Ref ).symbol() ;
+ }
Symbol seqListSym() {
return defs.getType( Names.scala_List ).symbol() ;
@@ -271,6 +273,19 @@ class CodeFactory extends PatternTool {
return gen.Select(gen.Ident(0, defs.SCALA), Names.Nil/*seqNilSym()*/);
}
+ // EXPERIMENTAL
+ Tree newRef( Tree init ) {
+ //System.out.println( "hello:"+refSym().type() );
+ return gen.New( 0, defs.SCALA_TYPE, refSym(),
+ new Type[] { init.type() },
+ new Tree[] { init } );
+ /*
+ return gen.Apply( gen.TypeApply(0, gen.Select(gen.Ident(0, defs.SCALA), Names.Ref),
+ new Tree[] { gen.mkType(0, init.type() ) } ),
+ new Tree[] { init } );
+ */
+ }
+
Tree newSeqCons( Tree head, Tree tail ) {
return gen.New( Position.NOPOS, defs.SCALA_TYPE, seqConsSym(),
new Type[] { head.type() },
@@ -300,7 +315,6 @@ class CodeFactory extends PatternTool {
*/
public Tree _next( Tree iter ) {
Type elemType = getElemType( iter.type() );
- System.err.println("elemType of next *** "+elemType);
Symbol nextSym = seqIterSym_next();
return _applyNone( gen.Select( iter, nextSym )).setType( elemType );