X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=tests%2Fmop.impure.lisp;h=e010957d9260da0b2a239e99c465aaad572c449e;hb=df679ed627975948b1cee190f4d79c397588c43e;hp=b70ca1aed45423653fbe4e13589cde50c52c2ca2;hpb=abbf4da893fae087978fcdf544c85187ea9c2a9d;p=sbcl.git diff --git a/tests/mop.impure.lisp b/tests/mop.impure.lisp index b70ca1a..e010957 100644 --- a/tests/mop.impure.lisp +++ b/tests/mop.impure.lisp @@ -134,5 +134,32 @@ (assert (null *e-c-u-c-arg-order*)) (defclass e-c-u-c-arg-order () ()) (assert (eq *e-c-u-c-arg-order* t)) + +;;; verify that FIND-CLASS works after FINALIZE-INHERITANCE +(defclass automethod-class (standard-class) ()) +(defmethod validate-superclass ((c1 automethod-class) (c2 standard-class)) + t) +(defmethod finalize-inheritance :after ((x automethod-class)) + (format t "~&~S ~S~%" x (find-class (class-name x)))) +(defclass automethod-object () () + (:metaclass automethod-class)) +(defvar *automethod-object* (make-instance 'automethod-object)) +(assert (typep *automethod-object* 'automethod-object)) + +;;; COMPUTE-EFFECTIVE-SLOT-DEFINITION should take three arguments, one +;;; of which is the name of the slot. +(defvar *compute-effective-slot-definition-count* 0) +(defmethod compute-effective-slot-definition :before + (class (name (eql 'foo)) dsds) + (incf *compute-effective-slot-definition-count*)) +(defclass cesd-test-class () + ((foo :initarg :foo))) +(make-instance 'cesd-test-class :foo 3) +;;; FIXME: this assertion seems a little weak. I don't know why +;;; COMPUTE-EFFECTIVE-SLOT-DEFINITION gets called twice in this +;;; sequence, nor whether that's compliant with AMOP. -- CSR, +;;; 2003-04-17 +(assert (> *compute-effective-slot-definition-count* 0)) + ;;;; success (sb-ext:quit :unix-status 104)