summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--share/txr/stdlib/compiler.tl8
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)