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.boot9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/interp/define.boot b/src/interp/define.boot
index 644f71dd..abc12e16 100644
--- a/src/interp/define.boot
+++ b/src/interp/define.boot
@@ -1848,13 +1848,14 @@ compDefineCapsuleFunction(db,df is ['DEF,form,signature,body],
formattedSig := formatUnabbreviatedSig signature
sayBrightly ['" compiling ",localOrExported,
:bright $op,'": ",:formattedSig]
-
- noteCapsuleFunctionDefinition($op,signature,makePredicate $predl)
+
+ pred := makePredicate $predl
+ noteCapsuleFunctionDefinition($op,signature,pred)
T := CATCH('compCapsuleBody, compOrCroak(body,rettype,e))
or [$ClearBodyToken,rettype,e]
- assignCapsuleFunctionSlot(db,$op,signature)
-- A THROW to the above CATCH occurs if too many semantic errors occur
-- see stackSemanticError
+ n := assignCapsuleFunctionSlot(db,$op,signature)
-- Build a name for the implementation.
op' :=
localOperation?($op,e) =>
@@ -1863,6 +1864,8 @@ compDefineCapsuleFunction(db,df is ['DEF,form,signature,body],
userError ['"%b",$op,'"%d",'" is local and exported"]
makeSymbol strconc(encodeItem $prefix,'";",encodeItem $op)
encodeFunctionName(db,$op,signature,'";",$suffix)
+ if n ~= nil and not $insideCategoryPackageIfTrue then
+ updateCapsuleDirectory([n,:op'],pred)
-- Let the backend know about this function's type
if $optProclaim then
proclaimCapsuleFunction(op',signature)