[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