diff options
author | Iulian Dragos <jaguarul@gmail.com> | 2008-01-15 13:49:28 +0000 |
---|---|---|
committer | Iulian Dragos <jaguarul@gmail.com> | 2008-01-15 13:49:28 +0000 |
commit | abbcc46aca83f2b4c767b405cf687c06a7480247 (patch) | |
tree | 74191e3fb0d2a2ce85b2066e5a35dedff2a376db | |
parent | d9f2401cdb7b768f751a318b74385e7460ec864d (diff) | |
download | scala-abbcc46aca83f2b4c767b405cf687c06a7480247.tar.gz scala-abbcc46aca83f2b4c767b405cf687c06a7480247.tar.bz2 scala-abbcc46aca83f2b4c767b405cf687c06a7480247.zip |
Fixed too aggressive dead-code-elimination agai...
Fixed too aggressive dead-code-elimination against side-effecting lazy
values
-rw-r--r-- | src/compiler/scala/tools/nsc/backend/opt/DeadCodeElimination.scala | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/compiler/scala/tools/nsc/backend/opt/DeadCodeElimination.scala b/src/compiler/scala/tools/nsc/backend/opt/DeadCodeElimination.scala index 701a81968a..4fb9f310b1 100644 --- a/src/compiler/scala/tools/nsc/backend/opt/DeadCodeElimination.scala +++ b/src/compiler/scala/tools/nsc/backend/opt/DeadCodeElimination.scala @@ -259,7 +259,7 @@ abstract class DeadCodeElimination extends SubComponent { /** Is 'sym' a side-effecting method? TODO: proper analysis. */ private def isSideEffecting(sym: Symbol): Boolean = { - !(sym.isGetter // for testing only + !((sym.isGetter && !sym.hasFlag(Flags.LAZY)) // for testing only || (sym.isConstructor && sym.owner.owner == definitions.getModule("scala.runtime").moduleClass) || (sym.isConstructor && inliner.isClosureClass(sym.owner)) |