From a06603190298a8f674b16ee701fe324a15c9b567 Mon Sep 17 00:00:00 2001
From: Nicolas Voirol <voirol.nicolas@gmail.com>
Date: Thu, 14 Apr 2016 18:37:38 +0200
Subject: [PATCH] Small fix for required lambda in ensuring

---
 src/main/scala/leon/purescala/Path.scala | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/main/scala/leon/purescala/Path.scala b/src/main/scala/leon/purescala/Path.scala
index 6bc93410d..3d3f329e7 100644
--- a/src/main/scala/leon/purescala/Path.scala
+++ b/src/main/scala/leon/purescala/Path.scala
@@ -81,7 +81,10 @@ class Path private[purescala](
     def wrap(e: Expr) = fold[Expr](e, let, (_, res) => res)(rest)
 
     val req = Require(Constructors.and(cond, wrap(pre)), wrap(body))
-    val full = if (post != NoTree(BooleanType)) Ensuring(req, wrap(post)) else req
+    val full = post match {
+      case l @ Lambda(args, body) => Ensuring(req, Lambda(args, wrap(body)).copiedFrom(l))
+      case _ => req
+    }
 
     fold[Expr](full, let, (_, _) => scala.sys.error("Should never happen!"))(outers)
   }
-- 
GitLab