0.7.10.31:
[sbcl.git] / src / pcl / vector.lisp
index a33b891..292e763 100644 (file)
                                       slots
                                       calls)
   (declare (ignore required-parameters env slots calls))
-  (or (and (eq (car form) 'make-instance)
-          (expand-make-instance-form form))
+  (or ; (optimize-reader ...)?
       form))
 \f
 (defun can-optimize-access (form required-parameters env)
               (position (posq parameter-entry slots))
               (pv-offset-form (list 'pv-offset ''.PV-OFFSET.)))
          (unless parameter-entry
-           (error "internal error in slot optimization"))
+           (bug "slot optimization bewilderment: O-I-A"))
          (unless slot-entry
            (setq slot-entry (list slot-name))
            (push slot-entry (cdr parameter-entry)))
         (position (posq parameter-entry slots))
         (pv-offset-form (list 'pv-offset ''.PV-OFFSET.)))
     (unless parameter-entry
-      (error "internal error in slot optimization"))
+      (error "slot optimization bewilderment: O-A-C"))
     (unless slot-entry
       (setq slot-entry (list name))
       (push slot-entry (cdr parameter-entry)))
         (standard-class-p class)
         (not (eq class *the-class-t*)) ; shouldn't happen, though.
         (let ((slotd (find-slot-definition class slot-name)))
-          (and slotd (classp (slot-definition-allocation slotd)))))))
+          (and slotd (eq :class (slot-definition-allocation slotd)))))))
 
 (defun skip-fast-slot-access-p (class-form slot-name-form type)
   (let ((class (and (constantp class-form) (eval class-form)))
 ;;; Pull a name out of the %METHOD-NAME declaration in the function
 ;;; body given, or return NIL if no %METHOD-NAME declaration is found.
 (defun body-method-name (body)
-  (multiple-value-bind (documentation declarations real-body)
-      (extract-declarations body nil)
+  (multiple-value-bind (real-body declarations documentation)
+      (parse-body body nil)
     (declare (ignore documentation real-body))
     (let ((name-decl (get-declaration '%method-name declarations)))
       (and name-decl
         (w-t pv-wrappers))
     (dolist (arg args)
       (setq w (wrapper-of arg))
-      (unless (eq t (wrapper-state w)) ; FIXME: should be INVALID-WRAPPER-P
+      (when (invalid-wrapper-p w)
        (setq w (check-wrapper-validity arg)))
       (setf (car w-t) w))
       (setq w-t (cdr w-t))