X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fpcl%2Fmethods.lisp;h=f61386ebd82d77dabc8e3b95651f5d7aa76d037a;hb=ebc0f0ebf9efd39519ab86ba28c33abdb25443e0;hp=9f43c637f2006003c324ede662a01012c4ce973d;hpb=96a67b487909638cc0cb91114b6babf94b4bc1a7;p=sbcl.git diff --git a/src/pcl/methods.lisp b/src/pcl/methods.lisp index 9f43c63..f61386e 100644 --- a/src/pcl/methods.lisp +++ b/src/pcl/methods.lisp @@ -54,7 +54,7 @@ ;;; Methods are not reinitializable. (define-condition metaobject-initialization-violation - (reference-condition simple-condition) + (reference-condition simple-error) ()) (macrolet ((def (name args control) @@ -486,6 +486,18 @@ (loop (when (null methods) (return gf)) (real-add-method gf (pop methods) methods))) +(define-condition new-value-specialization (reference-condition error) + ((%method :initarg :method :reader new-value-specialization-method)) + (:report + (lambda (c s) + (format s "~@" + (new-value-specialization-method c) + #'(setf slot-value-using-class)))) + (:default-initargs :references + (list '(:sbcl :node "Metaobject Protocol") + '(:amop :generic-function (setf slot-value-using-class))))) + (defun real-add-method (generic-function method &optional skip-dfun-update-p) (when (method-generic-function method) (error "~@