X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fcode%2Fdefstruct.lisp;h=a2ee93a0a18cae810066818257ea0241c929ca22;hb=829ced3e78a23ba153ba4db64e6ea6984c2313b6;hp=c3beef9e47349dce7cf572a3bbfe13dff16ff569;hpb=ca308e6377525654efb755fd30af3270a04f099a;p=sbcl.git diff --git a/src/code/defstruct.lisp b/src/code/defstruct.lisp index c3beef9..a2ee93a 100644 --- a/src/code/defstruct.lisp +++ b/src/code/defstruct.lisp @@ -527,10 +527,6 @@ ((not inherited) (stuff `(declaim (inline ,name ,@(unless (dsd-read-only slot) `((setf ,name)))))) - ;; FIXME: The arguments in the next two DEFUNs should - ;; be gensyms. (Otherwise e.g. if NEW-VALUE happened to - ;; be the name of a special variable, things could get - ;; weird.) (stuff `(defun ,name (structure) (declare (type ,ltype structure)) (the ,slot-type (elt structure ,index)))) @@ -1127,10 +1123,10 @@ (let* ((accessor-name (dsd-accessor-name dsd)) (dsd-type (dsd-type dsd))) (when accessor-name - (setf (info :function :structure-accessor accessor-name) dd) (let ((inherited (accessor-inherited-data accessor-name dd))) (cond ((not inherited) + (setf (info :function :structure-accessor accessor-name) dd) (multiple-value-bind (reader-designator writer-designator) (slot-accessor-transforms dd dsd) (sb!xc:proclaim `(ftype (sfunction (,dtype) ,dsd-type)