diff options
-rw-r--r-- | share/txr/stdlib/compiler.tl | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/share/txr/stdlib/compiler.tl b/share/txr/stdlib/compiler.tl index 7a289290..57b56828 100644 --- a/share/txr/stdlib/compiler.tl +++ b/share/txr/stdlib/compiler.tl @@ -1131,9 +1131,11 @@ ,(berr nil)))))) ((null strict) nil) ((symbolp strict) - ^((if (or (< ,plen ,nreq) - (> ,plen ,nfix)) - (return-from ,err-block ',strict))))) + ^((if (< ,plen ,nreq) + (return-from ,err-block ',strict)) + ,*(unless rest-par + ^((if (> ,plen ,nfix) + (return-from ,err-block ',strict))))))) ,*(append-each ((k key-pars)) (tree-bind (key . sym) k (push sym vars) |