X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Fsetf-funs.lisp;h=3e18ea60b37c19546dc98bee9461229d5aaac713;hb=6c4d4d984b1af6b2a73568cec3ab9c8795cff2da;hp=74d3f4e9212dc9af6020f51a192fdfabbccd72bb;hpb=a530bbe337109d898d5b4a001fc8f1afa3b5dc39;p=sbcl.git diff --git a/src/code/setf-funs.lisp b/src/code/setf-funs.lisp index 74d3f4e..3e18ea6 100644 --- a/src/code/setf-funs.lisp +++ b/src/code/setf-funs.lisp @@ -12,9 +12,6 @@ (in-package "SB!KERNEL") -(file-comment - "$Header$") - (eval-when (:compile-toplevel :execute) (defun compute-one-setter (name type) @@ -22,12 +19,12 @@ (res (type-specifier (single-value-type (values-specifier-type (third type))))) - (arglist (loop repeat (1+ (length args)) collect (gensym)))) + (arglist (make-gensym-list (1+ (length args))))) (cond - ((null (intersection args lambda-list-keywords)) + ((null (intersection args sb!xc:lambda-list-keywords)) `(defun (setf ,name) ,arglist - (declare ,@(mapcar #'(lambda (arg type) - `(type ,type ,arg)) + (declare ,@(mapcar (lambda (arg type) + `(type ,type ,arg)) arglist (cons res args))) (setf (,name ,@(rest arglist)) ,(first arglist)))) @@ -46,12 +43,12 @@ (info :setf :expander sym)) (not (member sym ignore))) (let ((type (type-specifier (info :function :type sym)))) - (assert (consp type)) + (aver (consp type)) #!-sb-fluid (res `(declaim (inline (setf ,sym)))) (res (compute-one-setter sym type)))))) `(progn ,@(res)))) -); eval-when (compile eval) +) ; EVAL-WHEN (define-setters ("COMMON-LISP") ;; Semantically silly...