diff options
author | dos-reis <gdr@axiomatics.org> | 2008-05-17 17:47:04 +0000 |
---|---|---|
committer | dos-reis <gdr@axiomatics.org> | 2008-05-17 17:47:04 +0000 |
commit | 12c08d022465104b0a0366689700bab191857aac (patch) | |
tree | b035112a195815c8ff29e22254e2fbdd0f604b2b /src/interp/g-cndata.boot | |
parent | 431f54e5bfc6267719e18c4a4b183bc29d30125f (diff) | |
download | open-axiom-12c08d022465104b0a0366689700bab191857aac.tar.gz |
* interp/format.boot (form2String1): Handle PAREN.
* interp/g-cndata.boot (condUnabbrev): Handle homogeneous varargs
for constructors taking tuples.
* interp/i-resolv.boot: Revolve domains and categories.
Diffstat (limited to 'src/interp/g-cndata.boot')
-rw-r--r-- | src/interp/g-cndata.boot | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/interp/g-cndata.boot b/src/interp/g-cndata.boot index 285dc570..2477c18f 100644 --- a/src/interp/g-cndata.boot +++ b/src/interp/g-cndata.boot @@ -232,9 +232,14 @@ condAbbrev(arglist,argtypes) == res condUnabbrev(op,arglist,argtypes,modeIfTrue) == - #arglist ^= #argtypes => + #arglist ^= #argtypes and argtypes isnt [["Tuple",t]] => throwKeyedMsg("S2IL0014",[op,plural(#argtypes,'"argument"), bright(#arglist)]) + -- fix up argument list for unary constructor taking tuples. + t ^= nil => + categoryForm? t => + [["tuple",:[unabbrev1(arg,modeIfTrue) for arg in arglist]]] + [["tuple",:arglist]] [newArg for arg in arglist for type in argtypes] where newArg() == categoryForm?(type) => unabbrev1(arg,modeIfTrue) arg |