diff options
author | buraq <buraq@epfl.ch> | 2003-07-09 08:45:32 +0000 |
---|---|---|
committer | buraq <buraq@epfl.ch> | 2003-07-09 08:45:32 +0000 |
commit | 57830a98fc7fd743445abc9faf056de03fa18e7c (patch) | |
tree | 4464ea209bb2d5227e34897e851829940c16209e /sources/scalac/transformer/matching/CodeFactory.java | |
parent | df8999d77a1dfcca5070d821d550c237e82a62ce (diff) | |
download | scala-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.java | 18 |
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 ); |