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.boot12
1 files changed, 5 insertions, 7 deletions
diff --git a/src/interp/define.boot b/src/interp/define.boot
index 6bbe42e1..955d3ea8 100644
--- a/src/interp/define.boot
+++ b/src/interp/define.boot
@@ -291,6 +291,7 @@ getExportCategory form ==
[op,:argl] := form
op is 'Record => ['RecordCategory,:argl]
op is 'Union => ['UnionCategory,:argl]
+ op is 'Enumeration => ['EnumerationCategory,:argl]
functorModemap := getConstructorModemapFromDB op
[[.,target,:tl],:.] := functorModemap
applySubst(pairList($FormalMapVariableList,argl),target)
@@ -366,9 +367,8 @@ substSlotNumbers(form,template,domain) ==
expandType(lazyt,template,domform) ==
atom lazyt => expandTypeArgs(lazyt,template,domform)
[functorName,:argl] := lazyt
- functorName in '(Record Union) and first argl is [":",:.] =>
- [functorName,:[['_:,tag,expandTypeArgs(dom,template,domform)]
- for [.,tag,dom] in argl]]
+ functorName is ":" =>
+ [functorName,first argl,expandTypeArgs(second argl,template,domform)]
lazyt is ['local,x] =>
n := POSN1(x,$FormalMapVariableList)
domform.(1 + n)
@@ -1634,10 +1634,8 @@ registerInlinableDomain(x,e) ==
x := macroExpand(x,e)
x is [ctor,:.] =>
constructor? ctor => nominateForInlining ctor
- ctor = 'Record or ctor = 'Union =>
- x.args is [['_:,:.],:.] =>
- for [.,.,t] in x.args repeat
- registerInlinableDomain(t,e)
+ ctor is ":" => registerInlinableDomain(third x,e)
+ builtinFunctorName? ctor =>
for t in x.args repeat
registerInlinableDomain(t,e)
nil