diff options
author | Iulian Dragos <jaguarul@gmail.com> | 2008-10-30 13:47:45 +0000 |
---|---|---|
committer | Iulian Dragos <jaguarul@gmail.com> | 2008-10-30 13:47:45 +0000 |
commit | f36b262369c7f933c0e2a864389ff932de00ee28 (patch) | |
tree | 75f73ea23141e465aa3a7460adf45f7f193d58a0 | |
parent | d1c56b7580c537f3f163bd32980a2887f95f5461 (diff) | |
download | scala-f36b262369c7f933c0e2a864389ff932de00ee28.tar.gz scala-f36b262369c7f933c0e2a864389ff932de00ee28.tar.bz2 scala-f36b262369c7f933c0e2a864389ff932de00ee28.zip |
Reverted propagation, it was to late for RC5
-rw-r--r-- | src/compiler/scala/tools/nsc/backend/opt/DeadCodeElimination.scala | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/src/compiler/scala/tools/nsc/backend/opt/DeadCodeElimination.scala b/src/compiler/scala/tools/nsc/backend/opt/DeadCodeElimination.scala index 49cebeb1d7..05f959886d 100644 --- a/src/compiler/scala/tools/nsc/backend/opt/DeadCodeElimination.scala +++ b/src/compiler/scala/tools/nsc/backend/opt/DeadCodeElimination.scala @@ -47,7 +47,8 @@ abstract class DeadCodeElimination extends SubComponent { def analyzeClass(cls: IClass) { cls.methods.foreach { m => this.method = m - dieCodeDie(m) +// analyzeMethod(m); + dieCodeDie(m) } } @@ -259,13 +260,11 @@ abstract class DeadCodeElimination extends SubComponent { abort("could not find init in: " + method) } - lazy val RuntimePackage = definitions.getModule("scala.runtime") /** Is 'sym' a side-effecting method? TODO: proper analysis. */ private def isSideEffecting(sym: Symbol): Boolean = { - !((sym.isGetter && !sym.hasFlag(Flags.LAZY)) + !((sym.isGetter && !sym.hasFlag(Flags.LAZY)) // for testing only || (sym.isConstructor - && !(sym.owner == method.symbol.owner && method.symbol.isConstructor) // a call to another constructor - && sym.owner.owner == RuntimePackage.moduleClass) + && sym.owner.owner == definitions.getModule("scala.runtime").moduleClass) || (sym.isConstructor && inliner.isClosureClass(sym.owner)) /* || definitions.isBox(sym) || definitions.isUnbox(sym)*/) |