From 54a6b006a39fd52cb0110e4ae3e2cec8e2708ec6 Mon Sep 17 00:00:00 2001 From: dos-reis Date: Thu, 29 May 2008 07:00:40 +0000 Subject: Fix AW/421. * interp/i-spec2.boot (uphas): When compiling a function, don't bother evaluating type variables. * testsuite/interpreter/aw-412.input: Add. --- src/interp/i-spec2.boot | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'src/interp') 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]) -- cgit v1.2.3