X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fpcl%2Finit.lisp;h=a4f5e3aaff98300ba9ebeef8cbd639cef56478bd;hb=0e35b321b97477bcfedaa1a5aed1fa87d635d262;hp=236fc867fd8a6c0ba19094edceae2d004fb10134;hpb=796d3abb79fdb3ac896b639b83756ef9d86007f6;p=sbcl.git diff --git a/src/pcl/init.lisp b/src/pcl/init.lisp index 236fc86..a4f5e3a 100644 --- a/src/pcl/init.lisp +++ b/src/pcl/init.lisp @@ -123,8 +123,8 @@ (let ((initfn (slot-definition-initfunction slotd))) (when initfn (funcall initfn))))) - (unless (or (slot-boundp-using-class class instance slotd) - (null (slot-definition-initfunction slotd))) + (unless (or (null (slot-definition-initfunction slotd)) + (slot-boundp-using-class class instance slotd)) (setf (slot-value-using-class class instance slotd) (funcall (slot-definition-initfunction slotd))))))) (let* ((class (class-of instance)) @@ -178,12 +178,13 @@ (setq legal (append keys legal)))) (values legal nil))) -(define-condition initarg-error (program-error) +(define-condition initarg-error (reference-condition program-error) ((class :reader initarg-error-class :initarg :class) (initargs :reader initarg-error-initargs :initarg :initargs)) + (:default-initargs :references (list '(:ansi-cl :section (7 1 2)))) (:report (lambda (condition stream) - (format stream "~@~I~_in call for class ~S.~:>" + (format stream "~@~I~_in call for class ~S.~:>" (length (initarg-error-initargs condition)) (list (initarg-error-initargs condition)) (initarg-error-class condition)))))