From d9be2a705f6e04b3f321bc9bbe0d498179946226 Mon Sep 17 00:00:00 2001
From: wlott <wlott>
Date: Mon, 18 May 1992 17:21:18 +0000
Subject: [PATCH] Fixed a bug in WALK-ARGLIST where it would ignore the rest of
 the current arglist if the current arg destructured.

---
 pcl/walk.lisp | 33 +++++++++++++++++----------------
 1 file changed, 17 insertions(+), 16 deletions(-)

diff --git a/pcl/walk.lisp b/pcl/walk.lisp
index 6766a9628..cdf9ea742 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))
-- 
GitLab