aboutsummaryrefslogtreecommitdiff
path: root/src/interp
diff options
context:
space:
mode:
authordos-reis <gdr@axiomatics.org>2008-05-29 07:00:40 +0000
committerdos-reis <gdr@axiomatics.org>2008-05-29 07:00:40 +0000
commit54a6b006a39fd52cb0110e4ae3e2cec8e2708ec6 (patch)
treeae44750e6ddb7a20d4229991d35f7c53a0f1b74a /src/interp
parenta96dbac109e95cab66934e98c27e0d148a9b98fd (diff)
downloadopen-axiom-54a6b006a39fd52cb0110e4ae3e2cec8e2708ec6.tar.gz
Fix AW/421.
* interp/i-spec2.boot (uphas): When compiling a function, don't bother evaluating type variables. * testsuite/interpreter/aw-412.input: Add.
Diffstat (limited to 'src/interp')
-rw-r--r--src/interp/i-spec2.boot10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/interp/i-spec2.boot b/src/interp/i-spec2.boot
index c1189335..f3362bff 100644
--- a/src/interp/i-spec2.boot
+++ b/src/interp/i-spec2.boot
@@ -193,13 +193,19 @@ uphas t ==
t isnt [op,type,prop] => nil
-- handler for category and attribute queries
type :=
- isLocalVar(type) => ["unabbrev", type]
+ isLocalVar(type) =>
+ $genValue => ["evaluateType", ["unabbrev", type]]
+ -- At this point, type will have already been reduced to
+ -- its object representation.
+ ["devaluate", type]
MKQ unabbrev type
catCode :=
+ -- FIXME: when we come to support category valued variable
+ -- this code needs to be adapted.
prop := unabbrev prop
evaluateType0 prop => ["evaluateType", MKQ prop]
MKQ prop
- code:=["newHasTest",["evaluateType", type], catCode]
+ code:=["newHasTest",type, catCode]
if $genValue then code := wrap timedEVALFUN code
putValue(op,objNew(code,$Boolean))
putModeSet(op,[$Boolean])