From 52242199eec3707be89cfcf02042bd58715dc390 Mon Sep 17 00:00:00 2001
From: Nicolas Voirol <voirol.nicolas@gmail.com>
Date: Fri, 4 Nov 2016 13:08:05 +0100
Subject: [PATCH] Small fix in determining lambda normal form during template
 generation

---
 .../inox/solvers/unrolling/TemplateGenerator.scala     | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/src/main/scala/inox/solvers/unrolling/TemplateGenerator.scala b/src/main/scala/inox/solvers/unrolling/TemplateGenerator.scala
index 37e41c6aa..2ad8b4f2b 100644
--- a/src/main/scala/inox/solvers/unrolling/TemplateGenerator.scala
+++ b/src/main/scala/inox/solvers/unrolling/TemplateGenerator.scala
@@ -287,14 +287,16 @@ trait TemplateGenerator { self: Templates =>
             case _ => (Seq.empty, e)
           }
 
-          !l.getType.isInstanceOf[FunctionType] && (extractBody(struct) match {
-            case (params, ApplicationExtractor(caller: Variable, args)) =>
-              (params.map(_.toVariable) == args) && (deps.get(caller) match {
+          extractBody(struct) match {
+            case (params, app @ ApplicationExtractor(caller: Variable, args)) =>
+              !app.getType.isInstanceOf[FunctionType] &&
+              (params.map(_.toVariable) == args) &&
+              (deps.get(caller) match {
                 case Some(_: Application | _: FunctionInvocation | _: Variable) => true
                 case _ => false
               })
             case _ => false
-          })
+          }
         }
 
         val depsByScope: Seq[(Variable, Expr)] = {
-- 
GitLab