From 12c08d022465104b0a0366689700bab191857aac Mon Sep 17 00:00:00 2001 From: dos-reis Date: Sat, 17 May 2008 17:47:04 +0000 Subject: * 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. --- src/interp/g-cndata.boot | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'src/interp/g-cndata.boot') 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 -- cgit v1.2.3