diff options
author | dos-reis <gdr@axiomatics.org> | 2008-05-29 07:00:40 +0000 |
---|---|---|
committer | dos-reis <gdr@axiomatics.org> | 2008-05-29 07:00:40 +0000 |
commit | 54a6b006a39fd52cb0110e4ae3e2cec8e2708ec6 (patch) | |
tree | ae44750e6ddb7a20d4229991d35f7c53a0f1b74a | |
parent | a96dbac109e95cab66934e98c27e0d148a9b98fd (diff) | |
download | open-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.
-rw-r--r-- | src/ChangeLog | 7 | ||||
-rw-r--r-- | src/interp/i-spec2.boot | 10 | ||||
-rw-r--r-- | src/testsuite/interpreter/aw-412.input | 3 |
3 files changed, 18 insertions, 2 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 1cb0b285..3052790f 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,5 +1,12 @@ 2008-05-29 Gabriel Dos Reis <gdr@cs.tamu.edu> + Fix AW/421. + * interp/i-spec2.boot (uphas): When compiling a function, don't + bother evaluating type variables. + * testsuite/interpreter/aw-412.input: Add. + +2008-05-29 Gabriel Dos Reis <gdr@cs.tamu.edu> + * interp/i-analy.boot (conceptualType): Only Mode, Domain, and Category are conceptually abstract. * testsuite/interpreter/category.input: Add a testcase. 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]) diff --git a/src/testsuite/interpreter/aw-412.input b/src/testsuite/interpreter/aw-412.input new file mode 100644 index 00000000..4981aff6 --- /dev/null +++ b/src/testsuite/interpreter/aw-412.input @@ -0,0 +1,3 @@ +f(x: Domain): Integer == + x has IntegralDomain => 1 + 0 |