(etypecase x
(simple-byte-function
`(function ,(make-list (simple-byte-function-num-args x)
- :initial-element 't)
+ :initial-element t)
*))
(hairy-byte-function
(collect ((res))
(let ((min (hairy-byte-function-min-args x))
(max (hairy-byte-function-max-args x)))
- (dotimes (i min) (res 't))
+ (dotimes (i min) (res t))
(when (> max min)
(res '&optional)
(dotimes (i (- max min))
- (res 't))))
+ (res t))))
(when (hairy-byte-function-rest-arg-p x)
- (res '&rest 't))
+ (res '&rest t))
(ecase (hairy-byte-function-keywords-p x)
((t :allow-others)
(res '&key)
(type stack-pointer more-args-start))
(cond
((not (hairy-byte-function-keywords-p xep))
- (assert restp)
+ (aver restp)
(setf (current-stack-pointer) (1+ more-args-start))
(setf (eval-stack-ref more-args-start) rest))
(t
(unless (evenp more-args-supplied)
(with-debugger-info (old-component ret-pc old-fp)
- (error "odd number of keyword arguments")))
- ;; If there are keyword args, then we need to leave the
- ;; defaulted and supplied-p values where the more args
- ;; currently are. There might be more or fewer. And also,
- ;; we need to flatten the parsed args with the defaults
- ;; before we scan the keywords. So we copy all the more
- ;; args to a temporary area at the end of the stack.
+ (error "odd number of &KEY arguments")))
+ ;; If there are &KEY args, then we need to leave
+ ;; the defaulted and supplied-p values where the
+ ;; more args currently are. There might be more or
+ ;; fewer. And also, we need to flatten the parsed
+ ;; args with the defaults before we scan the
+ ;; keywords. So we copy all the more args to a
+ ;; temporary area at the end of the stack.
(let* ((num-more-args
(hairy-byte-function-num-more-args xep))
(new-sp (+ more-args-start num-more-args))