From 6d72a6349acc23b68592a6e8f37b9481dd2a273d Mon Sep 17 00:00:00 2001
From: Manos Koukoutos <emmanouil.koukoutos@epfl.ch>
Date: Mon, 19 Oct 2015 18:05:44 +0200
Subject: [PATCH] Wrap non-lambda ensuring into a lambda

---
 .../scala/leon/frontends/scalac/CodeExtraction.scala     | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/src/main/scala/leon/frontends/scalac/CodeExtraction.scala b/src/main/scala/leon/frontends/scalac/CodeExtraction.scala
index 299e8995a..0a75dfebc 100644
--- a/src/main/scala/leon/frontends/scalac/CodeExtraction.scala
+++ b/src/main/scala/leon/frontends/scalac/CodeExtraction.scala
@@ -984,11 +984,14 @@ trait CodeExtraction extends ASTExtractors {
 
           val b = extractTreeOrNoTree(body)
 
-          val closure = post.getType match {
-            case BooleanType =>
+          val closure = post match {
+            case IsTyped(_, BooleanType) =>
               val resId = FreshIdentifier("res", b.getType).setPos(post)
               Lambda(Seq(LeonValDef(resId)), post).setPos(post)
-            case _ => post
+            case l: Lambda => l
+            case other =>
+              val resId = FreshIdentifier("res", b.getType).setPos(post)
+              Lambda(Seq(LeonValDef(resId)), application(other, Seq(Variable(resId)))).setPos(post)
           }
 
           Ensuring(b, closure)
-- 
GitLab