From bfda3e21fe1cc036ca7192d78a18c4e1196d423c Mon Sep 17 00:00:00 2001
From: Manos Koukoutos <emmanouil.koukoutos@epfl.ch>
Date: Mon, 13 Jul 2015 20:01:33 +0200
Subject: [PATCH] Parse parameterless local functions

---
 .../scala/leon/frontends/scalac/CodeExtraction.scala   | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/src/main/scala/leon/frontends/scalac/CodeExtraction.scala b/src/main/scala/leon/frontends/scalac/CodeExtraction.scala
index acd964b90..1e995aaf6 100644
--- a/src/main/scala/leon/frontends/scalac/CodeExtraction.scala
+++ b/src/main/scala/leon/frontends/scalac/CodeExtraction.scala
@@ -1229,12 +1229,18 @@ trait CodeExtraction extends ASTExtractors {
           // TODO: refine type here?
           extractTree(e)
 
-        case ex @ ExIdentifier(sym, tpt) if dctx.isVariable(sym) =>
+        case ex @ ExIdentifier(sym, tpt) if dctx.isVariable(sym) || defsToDefs.contains(sym) =>
           dctx.vars.get(sym).orElse(dctx.mutableVars.get(sym)) match {
             case Some(builder) =>
               builder().setPos(ex.pos)
             case None =>
-              outOfSubsetError(tr, "Unidentified variable "+sym+" "+sym.id+".")
+              // Maybe it is a function
+              defsToDefs.get(sym) match {
+                case Some(fd) =>
+                  FunctionInvocation(fd.typed, Seq()).setPos(sym.pos)
+                case None =>
+                  outOfSubsetError(tr, "Unidentified variable " + sym + " " + sym.id + ".")
+              }
           }
 
         case hole @ ExHoleExpression(tpt, exprs) =>
-- 
GitLab