diff options
author | dos-reis <gdr@axiomatics.org> | 2008-05-18 04:22:21 +0000 |
---|---|---|
committer | dos-reis <gdr@axiomatics.org> | 2008-05-18 04:22:21 +0000 |
commit | 5538dec500e83f0903461c40ec6b26cadee01e80 (patch) | |
tree | be0e7e3d30602656cb12f09372f58cd4f1a4221d /src/interp | |
parent | 1c404b7708493c792984feffb31f3141ce76be71 (diff) | |
download | open-axiom-5538dec500e83f0903461c40ec6b26cadee01e80.tar.gz |
Fix AW/16
* interp/i-analy.boot (isConceptualCategory): New.
* interp/i-object.boot (getValueNormalForm): Use it.
* testsuite/interpreter/aw-16.input: New.
Diffstat (limited to 'src/interp')
-rw-r--r-- | src/interp/i-analy.boot | 4 | ||||
-rw-r--r-- | src/interp/i-eval.boot | 2 | ||||
-rw-r--r-- | src/interp/i-object.boot | 4 |
3 files changed, 8 insertions, 2 deletions
diff --git a/src/interp/i-analy.boot b/src/interp/i-analy.boot index 6dbd19fe..cfd483e5 100644 --- a/src/interp/i-analy.boot +++ b/src/interp/i-analy.boot @@ -633,6 +633,10 @@ conceptualType type == categoryForm?(type) => $Category $Domain +++ Returns true is `t' conceptually describes a domain or package. +isConceptualCategory: %Mode -> %Boolean +isConceptualCategory t == + t = $Type or t = $Category or t = $Domain or categoryForm? t bottomUpType(t, type) == mode := conceptualType type diff --git a/src/interp/i-eval.boot b/src/interp/i-eval.boot index d8284829..fa8729dc 100644 --- a/src/interp/i-eval.boot +++ b/src/interp/i-eval.boot @@ -294,7 +294,7 @@ getArgValue1(a,t) == getMappingArgValue(a,t,m) t' := coerceOrRetract(t',t) t' and getValueNormalForm t' - systemErrorHere '"getArgValue" + systemErrorHere '"getArgValue1" getArgValue2(a,t,se?,opName) == se? and (objMode(getValue a) ^= t) => diff --git a/src/interp/i-object.boot b/src/interp/i-object.boot index 5cbcd2ca..5a793c2c 100644 --- a/src/interp/i-object.boot +++ b/src/interp/i-object.boot @@ -109,7 +109,9 @@ getValueNormalForm obj == atom val => val [op,:argl] := val op = "WRAPPED" => MKQ argl - IDENTP op and isConstructorName op => instantiationNormalForm(op,argl) + IDENTP op and isConstructorName op => + isConceptualCategory objMode obj => instantiationNormalForm(op,argl) + MKQ val -- what else can it be? Don't know; leave it alone. val |