Changeset 11799
- Timestamp:
- 04/29/09 20:50:07 (15 years ago)
- Location:
- trunk/abcl/src/org/armedbear/lisp
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/abcl/src/org/armedbear/lisp/clos.lisp
r11590 r11799 1738 1738 (let* ((lambda-expression 1739 1739 (if (eq (class-of class) (find-class 'standard-class)) 1740 `(lambda (object) (std-slot-value object ',slot-name)) )1741 `(lambda (object) (slot-value object ',slot-name))) 1740 `(lambda (object) (std-slot-value object ',slot-name)) 1741 `(lambda (object) (slot-value object ',slot-name)))) 1742 1742 (method-function (compute-method-function lambda-expression)) 1743 1743 (fast-function (compute-method-fast-function lambda-expression))) -
trunk/abcl/src/org/armedbear/lisp/precompiler.lisp
r11797 r11799 655 655 656 656 (defun precompile-lambda-list (form) 657 (let (new )657 (let (new aux-tail) 658 658 (dolist (arg form (nreverse new)) 659 659 (if (or (atom arg) (> 2 (length arg))) 660 (push arg new) 660 (progn 661 (when (eq arg '&aux) 662 (setf aux-tail t)) 663 (push arg new)) 661 664 ;; must be a cons of more than 1 cell 662 665 (let ((new-arg (copy-list arg))) 666 (unless (<= 1 (length arg) (if aux-tail 2 3)) 667 ;; the aux-vars have a maximum length of 2 conses 668 ;; optional and key vars may have 3 669 (error 'program-error 670 :format-control 671 "The ~A binding specification ~S is invalid." 672 :format-arguments (list (if aux-tail "&AUX" 673 "&OPTIONAL/&KEY") arg))) 663 674 (setf (second new-arg) 664 675 (precompile1 (second arg))) … … 757 768 (dolist (var vars) 758 769 (cond ((consp var) 759 ;; (when (> (length var) 2) 760 ;; (error 'program-error 761 ;; :format-control "The LET/LET* binding specification ~S is invalid." 762 ;; :format-arguments (list var))) 770 (unless (<= 1 (length var) 2) 771 (error 'program-error 772 :format-control 773 "The LET/LET* binding specification ~S is invalid." 774 :format-arguments (list var))) 763 775 (let ((v (%car var)) 764 776 (expr (cadr var)))
Note: See TracChangeset
for help on using the changeset viewer.