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))