summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGrzegorz Kossakowski <grzegorz.kossakowski@gmail.com>2011-08-26 14:37:21 +0000
committerGrzegorz Kossakowski <grzegorz.kossakowski@gmail.com>2011-08-26 14:37:21 +0000
commit0a9d3e00a493b86afb115bf82c904311e5b09465 (patch)
tree0541e7a80f61ba81bbb8ddd4295462216df97fc7 /src
parent2fdbabe0a26e652e05728c55f88d34beb0a9be98 (diff)
downloadscala-0a9d3e00a493b86afb115bf82c904311e5b09465.tar.gz
scala-0a9d3e00a493b86afb115bf82c904311e5b09465.tar.bz2
scala-0a9d3e00a493b86afb115bf82c904311e5b09465.zip
Always include `liftcode` phase in a compiler run.
It turns out that `liftcode` phase must be always executed or other phases will fail. Specifically, at the moment `explicitouter` seems to depend on `liftcode`. One can observe compiler crash by compiling scala/Array.scala file without `liftcode` included. At `explicitouter` phase compiler will crash with assertion error saying it cannot lift some code. Review by odersky
Diffstat (limited to 'src')
-rw-r--r--src/compiler/scala/tools/nsc/Global.scala2
-rw-r--r--src/compiler/scala/tools/nsc/backend/JavaPlatform.scala1
2 files changed, 1 insertions, 2 deletions
diff --git a/src/compiler/scala/tools/nsc/Global.scala b/src/compiler/scala/tools/nsc/Global.scala
index b502da91fc..275dd3a046 100644
--- a/src/compiler/scala/tools/nsc/Global.scala
+++ b/src/compiler/scala/tools/nsc/Global.scala
@@ -598,6 +598,7 @@ class Global(var currentSettings: Settings, var reporter: Reporter) extends Symb
superAccessors -> "add super accessors in traits and nested classes",
pickler -> "serialize symbol tables",
refChecks -> "reference/override checking, translate nested objects",
+ liftcode -> "reify trees",
uncurry -> "uncurry, translate function values to anonymous classes",
tailCalls -> "replace tail calls by jumps",
specializeTypes -> "@specialized-driven class and method specialization",
@@ -622,7 +623,6 @@ class Global(var currentSettings: Settings, var reporter: Reporter) extends Symb
// and attractive -Xshow-phases output is unlikely if the descs span 20 files anyway.
private val otherPhaseDescriptions = Map(
"flatten" -> "eliminate inner classes",
- "liftcode" -> "reify trees",
"jvm" -> "generate JVM bytecode"
) withDefaultValue ""
diff --git a/src/compiler/scala/tools/nsc/backend/JavaPlatform.scala b/src/compiler/scala/tools/nsc/backend/JavaPlatform.scala
index 522b1ddd39..9e83f2fbd7 100644
--- a/src/compiler/scala/tools/nsc/backend/JavaPlatform.scala
+++ b/src/compiler/scala/tools/nsc/backend/JavaPlatform.scala
@@ -24,7 +24,6 @@ trait JavaPlatform extends Platform[AbstractFile] {
def platformPhases = List(
flatten, // get rid of inner classes
- liftcode, // generate reified trees
genJVM // generate .class files
) ++ depAnalysisPhase