((instance :reader unbound-slot-instance :initarg :instance)
(slot :reader unbound-slot-slot :initarg :slot))
(:report (lambda(condition stream)
((instance :reader unbound-slot-instance :initarg :instance)
(slot :reader unbound-slot-slot :initarg :slot))
(:report (lambda(condition stream)
(cond ((std-instance-p i1)
(let ((w1 (std-instance-wrapper i1))
(s1 (std-instance-slots i1)))
(cond ((std-instance-p i1)
(let ((w1 (std-instance-wrapper i1))
(s1 (std-instance-slots i1)))
(let* ((class (class-of object))
(slot-definition (find-slot-definition class slot-name)))
(if (null slot-definition)
(let* ((class (class-of object))
(slot-definition (find-slot-definition class slot-name)))
(if (null slot-definition)
(setf (slot-value-using-class class object slot-definition)
new-value))))
(setf (gdefinition 'set-slot-value-normal) #'set-slot-value)
(setf (slot-value-using-class class object slot-definition)
new-value))))
(setf (gdefinition 'set-slot-value-normal) #'set-slot-value)
(if (and (constantp slot-name-form)
(let ((slot-name (eval slot-name-form)))
(and (symbolp slot-name) (symbol-package slot-name))))
(if (and (constantp slot-name-form)
(let ((slot-name (eval slot-name-form)))
(and (symbolp slot-name) (symbol-package slot-name))))
(cond ((std-instance-p object)
;; FIXME: EQ T (WRAPPER-STATE ..) is better done
;; through INVALID-WRAPPER-P (here and below).
(cond ((std-instance-p object)
;; FIXME: EQ T (WRAPPER-STATE ..) is better done
;; through INVALID-WRAPPER-P (here and below).
- (error "The slot ~S has neither :INSTANCE nor :CLASS allocation, ~@
- so it can't be read by the default ~S method."
+ (error "~@<The slot ~S has neither :INSTANCE nor :CLASS ~
+ allocation, so it can't be read by the default ~
+ ~S method.~@:>"
slotd 'slot-value-using-class)))))
(if (eq value +slot-unbound+)
(slot-unbound class object (slot-definition-name slotd))
slotd 'slot-value-using-class)))))
(if (eq value +slot-unbound+)
(slot-unbound class object (slot-definition-name slotd))
- (error "The slot ~S has neither :INSTANCE nor :CLASS allocation, ~@
- so it can't be written by the default ~S method."
+ (error "~@<The slot ~S has neither :INSTANCE nor :CLASS allocation, ~
+ so it can't be written by the default ~S method.~:@>"
- (error "The slot ~S has neither :INSTANCE nor :CLASS allocation, ~@
- so it can't be read by the default ~S method."
+ (error "~@<The slot ~S has neither :INSTANCE nor :CLASS ~
+ allocation, so it can't be read by the default ~S ~
+ method.~@:>"
- (error "The slot ~S has neither :INSTANCE nor :CLASS allocation, ~@
- so it can't be written by the default ~S method."
+ (error "~@<The slot ~S has neither :INSTANCE nor :CLASS allocation, ~
+ so it can't be written by the default ~S method.~@:>"
- (slot-boundp "test to see whether slot is bound (slot-boundp)")
- (slot-makunbound "make the slot unbound (slot-makunbound)"))
+ (slot-boundp "test to see whether slot is bound (SLOT-BOUNDP)")
+ (slot-makunbound "make the slot unbound (SLOT-MAKUNBOUND)"))