aboutsummaryrefslogtreecommitdiff
path: root/src/interp
diff options
context:
space:
mode:
Diffstat (limited to 'src/interp')
-rw-r--r--src/interp/i-eval.boot8
-rw-r--r--src/interp/i-spec2.boot2
2 files changed, 5 insertions, 5 deletions
diff --git a/src/interp/i-eval.boot b/src/interp/i-eval.boot
index cf3028f3..7850f956 100644
--- a/src/interp/i-eval.boot
+++ b/src/interp/i-eval.boot
@@ -116,8 +116,8 @@ evaluateType0 form ==
op='Enumeration => form
constructor? op => evaluateType1 form
NIL
- constructor? form =>
- ATOM form => evaluateType [form]
+ IDENTP form and niladicConstructorFromDB form => evaluateType [form]
+ IDENTP form and (constructor? form or form in $BuiltinConstructorNames) =>
throwEvalTypeMsg("S2IE0003",[form,form])
evaluateType form ==
@@ -150,8 +150,8 @@ evaluateType form ==
[op,:[['_:,sel,evaluateType type] for ['_:,sel,type] in argl]]
op='Enumeration => form
evaluateFormAsType form
- constructor? form =>
- ATOM form => evaluateType [form]
+ IDENTP form and niladicConstructorFromDB form => evaluateType [form]
+ IDENTP form and (constructor? form or form in $BuiltinConstructorNames) =>
throwEvalTypeMsg("S2IE0003",[form,form])
evaluateFormAsType form
diff --git a/src/interp/i-spec2.boot b/src/interp/i-spec2.boot
index 5b3742ee..a4abcc75 100644
--- a/src/interp/i-spec2.boot
+++ b/src/interp/i-spec2.boot
@@ -731,7 +731,7 @@ isType t ==
op:=opOf t
VECP op =>
isMap(op:= getUnname op) => NIL
- op = 'Mapping =>
+ op = 'Mapping and CONSP t =>
argTypes := [isType type for type in rest t]
"or"/[null type for type in argTypes] => nil
['Mapping, :argTypes]