aboutsummaryrefslogtreecommitdiff
path: root/src/interp/define.boot
diff options
context:
space:
mode:
Diffstat (limited to 'src/interp/define.boot')
-rw-r--r--src/interp/define.boot11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/interp/define.boot b/src/interp/define.boot
index 7dc8a79a..a2af1e8a 100644
--- a/src/interp/define.boot
+++ b/src/interp/define.boot
@@ -663,10 +663,15 @@ disallowNilAttribute x ==
compFunctorBody(body,m,e,parForm) ==
$bootStrapMode = true =>
[bootStrapError($functorForm, _/EDITFILE),m,e]
- $capsuleFunctionStack := nil -- start collecting capsule functions.
+ clearCapsuleDirectory() -- start collecting capsule functions.
T:= compOrCroak(body,m,e)
- COMP $capsuleFunctionStack
- $capsuleFunctionStack := nil -- release storage.
+ $capsuleFunctionStack := nreverse $capsuleFunctionStack
+ -- ??? Don't resolve default definitions, yet.
+ if $insideCategoryPackageIfTrue then
+ COMP $capsuleFunctionStack
+ else
+ COMP foldExportedFunctionReferences $capsuleFunctionStack
+ clearCapsuleDirectory() -- release storage.
body is [op,:.] and MEMQ(op,'(add CAPSULE)) => T
$NRTaddForm :=
body is ["SubDomain",domainForm,predicate] => domainForm