0.pre7.66:
[sbcl.git] / src / code / defstruct.lisp
index 9d0dd52..2404a83 100644 (file)
        (dolist (dsd (dd-slots dd))
         (let* ((accessor-name (dsd-accessor-name dsd)))
           (when accessor-name
-
-            ;; new implementation sbcl-0.pre7.64
             (multiple-value-bind (reader-designator writer-designator)
                 (accessor-inline-expansion-designators dd dsd)
+              (proclaim-as-defstruct-fun-name accessor-name)
               (setf (info :function
                           :inline-expansion-designator
                           accessor-name)
                     (info :function :inlinep accessor-name)
                     :inline)
               (unless (dsd-read-only dsd)
+                (proclaim-as-defstruct-fun-name `(setf ,accessor-name))
                 (let ((setf-accessor-name `(setf ,accessor-name)))
                   (setf (info :function
                               :inline-expansion-designator
                               setf-accessor-name)
                         writer-designator
                         (info :function :inlinep setf-accessor-name)
-                        :inline))))
-
-            ;; old code from before sbcl-0.pre7.64, will hopefully
-            ;; fade away and/or merge into new code above
-            (when (eq (dsd-raw-type dsd) t) ; when not raw slot
-              (proclaim-as-defstruct-fun-name accessor-name)
-              (setf (info :function :accessor-for accessor-name) class)
-              (unless (dsd-read-only dsd)
-                (proclaim-as-defstruct-fun-name `(setf ,accessor-name))
-                (setf (info :function :accessor-for `(setf ,accessor-name))
-                      class))))))
+                        :inline)))))))
 
        ;; FIXME: Couldn't this logic be merged into
        ;; PROCLAIM-AS-DEFSTRUCT-FUN-NAME?
 ;;; are any undefined warnings, we nuke them.
 (defun proclaim-as-defstruct-fun-name (name)
   (when name
-    (when (info :function :accessor-for name)
-      (setf (info :function :accessor-for name) nil))
     (proclaim-as-fun-name name)
     (note-name-defined name :function)
     (setf (info :function :where-from name) :declared)