diff options
-rw-r--r-- | src/compiler/scala/tools/nsc/backend/opt/DeadCodeElimination.scala | 2 | ||||
-rw-r--r-- | test/files/run/t4859.scala | 2 |
2 files changed, 3 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 f7e743a6f1..0282457a12 100644 --- a/src/compiler/scala/tools/nsc/backend/opt/DeadCodeElimination.scala +++ b/src/compiler/scala/tools/nsc/backend/opt/DeadCodeElimination.scala @@ -144,6 +144,8 @@ abstract class DeadCodeElimination extends SubComponent { } } if (necessary) worklist += ((bb, idx)) + case LOAD_MODULE(sym) if isLoadNeeded(sym) => + worklist += ((bb, idx)) // SI-4859 Module initialization might side-effect. case _ => () } rd = rdef.interpret(bb, idx, rd) diff --git a/test/files/run/t4859.scala b/test/files/run/t4859.scala index 6d223f2179..3c20cea983 100644 --- a/test/files/run/t4859.scala +++ b/test/files/run/t4859.scala @@ -15,7 +15,7 @@ object Outer { object Test { def main(args: Array[String]) { - Outer.Inner.i // we still don't initiialize Outer here (but should we?) + Outer.Inner.i // we still don't initialize Outer here (but should we?) {println("About to reference Inner.i"); Outer}.Inner.i // Outer will be initialized. |