X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fpcl%2Fstd-class.lisp;h=50fd53a2f643bbadd133b239276609d4c6e8b248;hb=77869604fc3eb4417a630651e5fe40e74342ee59;hp=22c3c10b5248ac6947a9e12baa4cacb342044a8f;hpb=310d5f86d736ecf9525711b087b04797c549879c;p=sbcl.git diff --git a/src/pcl/std-class.lisp b/src/pcl/std-class.lisp index 22c3c10..50fd53a 100644 --- a/src/pcl/std-class.lisp +++ b/src/pcl/std-class.lisp @@ -336,8 +336,14 @@ (setf (gdefinition 'load-defclass) #'real-load-defclass) -(defun ensure-class (name &rest all) - (apply #'ensure-class-using-class (find-class name nil) name all)) +(defun ensure-class (name &rest args) + (apply #'ensure-class-using-class + (let ((class (find-class name nil))) + (when (and class (eq name (class-name class))) + ;; NAME is the proper name of CLASS, so redefine it + class)) + name + args)) (defmethod ensure-class-using-class ((class null) name &rest args &key) (multiple-value-bind (meta initargs)