diff --git a/pcl/walk.lisp b/pcl/walk.lisp index 6766a96280a2e5d8b5661e6ba3fe086023120b5f..cdf9ea74236ceab5d2e9b581282bc4a1fa0df82b 100644 --- a/pcl/walk.lisp +++ b/pcl/walk.lisp @@ -1534,22 +1534,23 @@ (not (member arg lambda-list-keywords)))))) ((consp arg) - (prog1 (if destructuringp - (walk-arglist arg context env destructuringp) - (recons arglist - (relist* arg - (car arg) - (walk-form-internal (cadr arg) :eval env) - (cddr arg)) - (walk-arglist (cdr arglist) context env nil))) - (if (symbolp (car arg)) - (note-lexical-binding (car arg) env) - (note-lexical-binding (cadar arg) env)) - (or (null (cddr arg)) - (not (symbolp (caddr arg))) - (note-lexical-binding (caddr arg) env)))) - (t - (error "Can't understand something in the arglist ~S" arglist)))) + (prog1 + (recons arglist + (if destructuringp + (walk-arglist arg context env destructuringp) + (relist* arg + (car arg) + (walk-form-internal (cadr arg) :eval env) + (cddr arg))) + (walk-arglist (cdr arglist) context env nil)) + (if (symbolp (car arg)) + (note-lexical-binding (car arg) env) + (note-lexical-binding (cadar arg) env)) + (or (null (cddr arg)) + (not (symbolp (caddr arg))) + (note-lexical-binding (caddr arg) env)))) + (t + (error "Can't understand something in the arglist ~S" arglist)))) (defun walk-let (form context env) (walk-let/let* form context env nil))