summaryrefslogtreecommitdiff
path: root/sources/scala/tools/nsc/Global.scala
diff options
context:
space:
mode:
authorIulian Dragos <jaguarul@gmail.com>2005-06-28 08:52:00 +0000
committerIulian Dragos <jaguarul@gmail.com>2005-06-28 08:52:00 +0000
commitb4ba0b8045dc81357d4124b4913db0531665e54e (patch)
tree6628a595758c6548fdbf2e20eb51c6370be0f503 /sources/scala/tools/nsc/Global.scala
parentbca043774f5d799670a11c4843f6239de51fff3d (diff)
downloadscala-b4ba0b8045dc81357d4124b4913db0531665e54e.tar.gz
scala-b4ba0b8045dc81357d4124b4913db0531665e54e.tar.bz2
scala-b4ba0b8045dc81357d4124b4913db0531665e54e.zip
Added tail call elimination phase to nsc.
Diffstat (limited to 'sources/scala/tools/nsc/Global.scala')
-rwxr-xr-xsources/scala/tools/nsc/Global.scala7
1 files changed, 6 insertions, 1 deletions
diff --git a/sources/scala/tools/nsc/Global.scala b/sources/scala/tools/nsc/Global.scala
index d686ca3493..1507be774f 100755
--- a/sources/scala/tools/nsc/Global.scala
+++ b/sources/scala/tools/nsc/Global.scala
@@ -186,6 +186,11 @@ class Global(val settings: Settings, val reporter: Reporter) extends SymbolTable
}
val samplePhase = new sampleTransform.Phase(transMatchPhase);
+ object tailCalls extends TailCalls {
+ val global: Global.this.type = Global.this;
+ }
+ val tailCallPhase = new tailCalls.Phase(samplePhase);
+
//val transMatchPhase = new transmatcher.TransMatchPhase(picklePhase);
/*
object icode extends ICode {
@@ -199,7 +204,7 @@ class Global(val settings: Settings, val reporter: Reporter) extends SymbolTable
}
*/
- val terminalPhase = new Phase(samplePhase) {
+ val terminalPhase = new Phase(tailCallPhase) {
def name = "terminal";
def run: unit = {}
}