X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=tests%2Fmop.impure.lisp;fp=tests%2Fmop.impure.lisp;h=a2c85efd4e378780f616abc8ac51b4b371cab1be;hb=603af6830a9c242adcec3fe3549e74e04cbe3228;hp=b7af0cf6567a73bd79b8f5734b5ddf2fe1c31422;hpb=c7142fb2d5f30fcdbcd89e37e46e5be02ecc97b2;p=sbcl.git diff --git a/tests/mop.impure.lisp b/tests/mop.impure.lisp index b7af0cf..a2c85ef 100644 --- a/tests/mop.impure.lisp +++ b/tests/mop.impure.lisp @@ -489,15 +489,22 @@ ;;; classes (including anonymous ones) and eql-specializers should be ;;; allowed to be specializers. (defvar *anonymous-class* - (make-instance 'standard-class + (make-instance 'standard-class :direct-superclasses (list (find-class 'standard-object)))) (defvar *object-of-anonymous-class* (make-instance *anonymous-class*)) (eval `(defmethod method-on-anonymous-class ((obj ,*anonymous-class*)) 41)) (assert (eql (method-on-anonymous-class *object-of-anonymous-class*) 41)) -(eval `(defmethod method-on-anonymous-class - ((obj ,(intern-eql-specializer *object-of-anonymous-class*))) +(eval `(defmethod method-on-anonymous-class + ((obj ,(intern-eql-specializer *object-of-anonymous-class*))) 42)) (assert (eql (method-on-anonymous-class *object-of-anonymous-class*) 42)) +;;; accessors can cause early finalization, which caused confusion in +;;; the system, leading to uncompileable TYPEP problems. +(defclass funcallable-class-for-typep () + ((some-slot-with-accessor :accessor some-slot-with-accessor)) + (:metaclass funcallable-standard-class)) +(compile nil '(lambda (x) (typep x 'funcallable-class-for-typep))) + ;;;; success