[armedbear-cvs] r11807 - trunk/abcl/src/org/armedbear/lisp

Erik Huelsmann ehuelsmann at common-lisp.net
Thu Apr 30 06:20:03 UTC 2009


Author: ehuelsmann
Date: Thu Apr 30 02:20:02 2009
New Revision: 11807

Log:
Follow-up on r11802: only put declarations which are explicitly about the
argument variables in the lambda and the rest in the LET*; otherwise
we may be declaring variables special before we should.

Modified:
   trunk/abcl/src/org/armedbear/lisp/compiler-pass1.lisp

Modified: trunk/abcl/src/org/armedbear/lisp/compiler-pass1.lisp
==============================================================================
--- trunk/abcl/src/org/armedbear/lisp/compiler-pass1.lisp	(original)
+++ trunk/abcl/src/org/armedbear/lisp/compiler-pass1.lisp	Thu Apr 30 02:20:02 2009
@@ -448,9 +448,10 @@
                (push (car form) aux-vars))
               (t
                (push form aux-vars))))
-      (multiple-value-bind (lambda-decls let-decls)
-          (split-decls decls aux-vars)
-        `(lambda ,(subseq lambda-list 0 (position '&AUX lambda-list))
+      (setf lambda-list (subseq lambda-list 0 (position '&AUX lambda-list)))
+      (multiple-value-bind (let-decls lambda-decls)
+          (split-decls decls (lambda-list-names lambda-list))
+        `(lambda ,lambda-list
            , at lambda-decls
            (let* ,lets
              , at let-decls




More information about the armedbear-cvs mailing list