X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fpcl%2Fslots.lisp;h=7cae74222d5c596293d22c4f2a3c618c81778bd3;hb=0b96758f3645dff3e681d82cc97ddab1faae27ac;hp=69232a7ce6ddef929ffcf5aaf541f1bbcc3fc323;hpb=3abdab003d4cdb02d7386dcd4bc8d9ac4dafb359;p=sbcl.git diff --git a/src/pcl/slots.lisp b/src/pcl/slots.lisp index 69232a7..7cae742 100644 --- a/src/pcl/slots.lisp +++ b/src/pcl/slots.lisp @@ -154,22 +154,22 @@ (slotd standard-effective-slot-definition)) (check-obsolete-instance object) (let* ((location (slot-definition-location slotd)) - (value (typecase location - (fixnum - (cond ((std-instance-p object) - (clos-slots-ref (std-instance-slots object) - location)) - ((fsc-instance-p object) - (clos-slots-ref (fsc-instance-slots object) - location)) - (t (error "unrecognized instance type")))) - (cons - (cdr location)) - (t - (error "~@" - slotd 'slot-value-using-class))))) + (value + (typecase location + (fixnum + (cond ((std-instance-p object) + (clos-slots-ref (std-instance-slots object) + location)) + ((fsc-instance-p object) + (clos-slots-ref (fsc-instance-slots object) + location)) + (t (bug "unrecognized instance type in ~S" + 'slot-value-using-class)))) + (cons + (cdr location)) + (t + (instance-structure-protocol-error slotd + 'slot-value-using-class))))) (if (eq value +slot-unbound+) (values (slot-unbound class object (slot-definition-name slotd))) value))) @@ -188,13 +188,13 @@ ((fsc-instance-p object) (setf (clos-slots-ref (fsc-instance-slots object) location) new-value)) - (t (error "unrecognized instance type")))) + (t (bug "unrecognized instance type in ~S" + '(setf slot-value-using-class))))) (cons (setf (cdr location) new-value)) (t - (error "~@" - slotd '(setf slot-value-using-class)))))) + (instance-structure-protocol-error slotd + '(setf slot-value-using-class)))))) (defmethod slot-boundp-using-class ((class std-class) @@ -202,22 +202,22 @@ (slotd standard-effective-slot-definition)) (check-obsolete-instance object) (let* ((location (slot-definition-location slotd)) - (value (typecase location - (fixnum - (cond ((std-instance-p object) + (value + (typecase location + (fixnum + (cond ((std-instance-p object) (clos-slots-ref (std-instance-slots object) location)) - ((fsc-instance-p object) - (clos-slots-ref (fsc-instance-slots object) - location)) - (t (error "unrecognized instance type")))) - (cons - (cdr location)) - (t - (error "~@" - slotd 'slot-boundp-using-class))))) + ((fsc-instance-p object) + (clos-slots-ref (fsc-instance-slots object) + location)) + (t (bug "unrecognized instance type in ~S" + 'slot-boundp-using-class)))) + (cons + (cdr location)) + (t + (instance-structure-protocol-error slotd + 'slot-boundp-using-class))))) (not (eq value +slot-unbound+)))) (defmethod slot-makunbound-using-class @@ -234,13 +234,13 @@ ((fsc-instance-p object) (setf (clos-slots-ref (fsc-instance-slots object) location) +slot-unbound+)) - (t (error "unrecognized instance type")))) + (t (bug "unrecognized instance type in ~S" + 'slot-makunbound-using-class)))) (cons (setf (cdr location) +slot-unbound+)) (t - (error "~@" - slotd 'slot-makunbound-using-class)))) + (instance-structure-protocol-error slotd + 'slot-makunbound-using-class)))) object) (defmethod slot-value-using-class