From d61ac65510f3dcf3f00dcc2faa8b77c6ea2f2b4f Mon Sep 17 00:00:00 2001
From: Regis Blanc <regwblanc@gmail.com>
Date: Wed, 14 Oct 2015 19:50:35 +0200
Subject: [PATCH] should still transform the body even without side effects

---
 src/main/scala/leon/xlang/ImperativeCodeElimination.scala | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/src/main/scala/leon/xlang/ImperativeCodeElimination.scala b/src/main/scala/leon/xlang/ImperativeCodeElimination.scala
index 8726a02a6..1398aee1a 100644
--- a/src/main/scala/leon/xlang/ImperativeCodeElimination.scala
+++ b/src/main/scala/leon/xlang/ImperativeCodeElimination.scala
@@ -254,6 +254,10 @@ object ImperativeCodeElimination extends UnitPhase[Program] {
       case LetDef(fd, b) =>
 
         def fdWithoutSideEffects =  {
+          fd.body.foreach { bd =>
+            val (fdRes, fdScope, _) = toFunction(bd)
+            fd.body = Some(fdScope(fdRes))
+          }
           val (bodyRes, bodyScope, bodyFun) = toFunction(b)
           (bodyRes, (b2: Expr) => LetDef(fd, bodyScope(b2)).copiedFrom(expr), bodyFun)
         }
-- 
GitLab