- (destructuring-bind (name tag keywords &rest rest) clause-data
- (declare (ignore rest))
- `(,name #'(lambda (&rest temp)
- (setq ,temp-var temp)
- (locally (declare (optimize (safety 0)))
- (go ,tag)))
- ,@keywords)))
+ (destructuring-bind (name tag keywords lambda-list body) clause-data
+ (declare (ignore body))
+ `(,name
+ (lambda ,(cond ((null lambda-list)
+ ())
+ ((and (null (cdr lambda-list))
+ (not (member (car lambda-list)
+ '(&optional &key &aux))))
+ '(temp))
+ (t
+ '(&rest temp)))
+ ,@(when lambda-list `((setq ,temp-var temp)))
+ (locally (declare (optimize (safety 0)))
+ (go ,tag)))
+ ,@keywords)))