- `(lambda (,n-supplied ,@temps)
- ;; FIXME: Make sure that INDEX type distinguishes between
- ;; target and host. (Probably just make the SB!XC:DEFTYPE
- ;; different from CL:DEFTYPE.)
- (declare (type index ,n-supplied))
- (cond
- ,@(if more (butlast (entries)) (entries))
- ,@(when more
- `((,(if (zerop min) t `(>= ,n-supplied ,max))
- ,(let ((n-context (gensym))
- (n-count (gensym)))
- `(multiple-value-bind (,n-context ,n-count)
- (%more-arg-context ,n-supplied ,max)
- (locally
- (declare (optimize (merge-tail-calls 3)))
- (%funcall ,more ,@temps ,n-context ,n-count)))))))
- (t
- (%arg-count-error ,n-supplied)))))))))
+ `(lambda (,n-supplied ,@temps)
+ ;; FIXME: Make sure that INDEX type distinguishes between
+ ;; target and host. (Probably just make the SB!XC:DEFTYPE
+ ;; different from CL:DEFTYPE.)
+ (declare (type index ,n-supplied))
+ (cond
+ ,@(if more (butlast (entries)) (entries))
+ ,@(when more
+ ;; KLUDGE: (NOT (< ...)) instead of >= avoids one round of
+ ;; deftransforms and lambda-conversion.
+ `((,(if (zerop min) t `(not (< ,n-supplied ,max)))
+ ,(let ((n-context (gensym))
+ (n-count (gensym)))
+ `(multiple-value-bind (,n-context ,n-count)
+ (%more-arg-context ,n-supplied ,max)
+ (locally
+ (declare (optimize (merge-tail-calls 3)))
+ (%funcall ,more ,@temps ,n-context ,n-count)))))))
+ (t
+ (%arg-count-error ,n-supplied)))))))))