diff options
author | Martin Odersky <odersky@gmail.com> | 2008-04-11 17:05:34 +0000 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2008-04-11 17:05:34 +0000 |
commit | 551db35802532b66e15638213d7b0010efe95ab4 (patch) | |
tree | fc271e4e95077fdb508822010383b59acedb4a2d /src/compiler/scala/tools/nsc/Global.scala | |
parent | 2fa3294cd903021db12cc93d9477318b128e68ba (diff) | |
download | scala-551db35802532b66e15638213d7b0010efe95ab4.tar.gz scala-551db35802532b66e15638213d7b0010efe95ab4.tar.bz2 scala-551db35802532b66e15638213d7b0010efe95ab4.zip |
(1) add devirtualization phase.
Diffstat (limited to 'src/compiler/scala/tools/nsc/Global.scala')
-rw-r--r-- | src/compiler/scala/tools/nsc/Global.scala | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/compiler/scala/tools/nsc/Global.scala b/src/compiler/scala/tools/nsc/Global.scala index 8e82d056ed..1125cd6f4c 100644 --- a/src/compiler/scala/tools/nsc/Global.scala +++ b/src/compiler/scala/tools/nsc/Global.scala @@ -282,6 +282,10 @@ class Global(var settings: Settings, var reporter: Reporter) extends SymbolTable val global: Global.this.type = Global.this } + object devirtualize extends DeVirtualize { + val global: Global.this.type = Global.this + } + object refchecks extends RefChecks { val global: Global.this.type = Global.this } @@ -391,7 +395,8 @@ class Global(var settings: Settings, var reporter: Reporter) extends SymbolTable analyzer.namerFactory: SubComponent, // note: types are there because otherwise analyzer.typerFactory: SubComponent, // consistency check after refchecks would fail. superAccessors, // add super accessors - pickler, // serializes symbol tables + pickler, // serialize symbol tables + devirtualize, // expand virtual classes refchecks // perform reference and override checking, translate nested objects ) ::: ( if (forJVM) List(liftcode) else List() // generate reified trees @@ -501,6 +506,7 @@ class Global(var settings: Settings, var reporter: Reporter) extends SymbolTable val namerPhase = phaseNamed("namer") val typerPhase = phaseNamed("typer") + val picklerPhase = phaseNamed("pickler") val refchecksPhase = phaseNamed("refchecks") val explicitOuterPhase = phaseNamed("explicitouter") |