aboutsummaryrefslogtreecommitdiff
path: root/src/interp/i-spec1.boot
diff options
context:
space:
mode:
authordos-reis <gdr@axiomatics.org>2008-08-10 16:45:54 +0000
committerdos-reis <gdr@axiomatics.org>2008-08-10 16:45:54 +0000
commit24a3196e17dc9792891c284c67d6dbe2171fd2d8 (patch)
tree440beab0062935656986736875ccd87fec529326 /src/interp/i-spec1.boot
parent784284687b04207c549d8ee6052c2d17f133d1b3 (diff)
downloadopen-axiom-24a3196e17dc9792891c284c67d6dbe2171fd2d8.tar.gz
Fix AW/422
* interp/i-spec1.boot (upDeclare): Fields are not declarations. * interp/i-map.boot (getUserIdentifiersIn): Ignore field names. * testsuite/interpreter/aw-422.input: New.
Diffstat (limited to 'src/interp/i-spec1.boot')
-rw-r--r--src/interp/i-spec1.boot6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/interp/i-spec1.boot b/src/interp/i-spec1.boot
index 9ad10e05..b8f6121d 100644
--- a/src/interp/i-spec1.boot
+++ b/src/interp/i-spec1.boot
@@ -1098,6 +1098,12 @@ upDeclare t ==
not isLegitimateMode(mode,nil,nil) => throwKeyedMsgSP("S2IE0004",[mode],op)
categoryForm?(mode) => throwKeyedMsgSP("S2IE0011",[mode, 'category],op)
packageForm?(mode) => throwKeyedMsgSP("S2IE0011",[mode, 'package],op)
+ getAtree(op,"callingFunction") =>
+ -- This isn't a real declaration, rather a field specification.
+ not IDENTP lhs => throwKeyedMsg("S2IE0020",nil)
+ -- ??? When we come to support field spec as type, change this.
+ putValue(op,objNewWrap([":",lhs,mode],mode))
+ putModeSet(op,[mode])
junk :=
lhs is ["free",["tuple",:vars]] or lhs is ['free,['LISTOF,:vars]] or
lhs is ["free",:vars] =>