From 2274a82dbe7b60af6dbaeec391ab85559d9791b8 Mon Sep 17 00:00:00 2001
From: Gabriel Dos Reis <gdr@axiomatics.org>
Date: Sun, 31 Jan 2016 15:55:01 -0800
Subject: Defer compilation of capsule functions to compFunctorBody

---
 src/interp/define.boot | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

(limited to 'src')

diff --git a/src/interp/define.boot b/src/interp/define.boot
index 564b41c9..53f588b9 100644
--- a/src/interp/define.boot
+++ b/src/interp/define.boot
@@ -1590,6 +1590,7 @@ compFunctorBody(db,body,m,e) ==
   -- ??? Don't resolve default definitions, yet.
   backendCompile(db,defs) where defs() ==
     $insideCategoryPackageIfTrue => dbCapsuleIR db
+    not $optExportedFunctionReference => dbCapsuleIR db
     foldExportedFunctionReferences(db,dbCapsuleIR db)
   clearCapsuleDirectory()        -- release storage.
   body is [op,:.] and op in '(add CAPSULE) => T
@@ -2124,10 +2125,8 @@ spadCompileOrSetq(db,form is [nam,[lam,vl,body]]) ==
       [nam,[lam,vl,["DECLARE",["IGNORE",last vl]],body]]
     [nam,[lam,vl,body]]
 
-  $optExportedFunctionReference =>
-    dbCapsuleIR(db) := [form,:dbCapsuleIR db]
-    first form
-  first backendCompile(db,[form])
+  dbCapsuleIR(db) := [form,:dbCapsuleIR db]
+  first form
  
 compileConstructorIR(db,form) ==
   u := compileConstructor1(db,optimizeFunctionDef form)
-- 
cgit v1.2.3