X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=tests%2Fmop.impure.lisp;h=f4c181d83048af5d5dc2f90a43c9748935b958e8;hb=f76b45e1a3bb2008540e0db90b591c591315f129;hp=a2c85efd4e378780f616abc8ac51b4b371cab1be;hpb=603af6830a9c242adcec3fe3549e74e04cbe3228;p=sbcl.git diff --git a/tests/mop.impure.lisp b/tests/mop.impure.lisp index a2c85ef..f4c181d 100644 --- a/tests/mop.impure.lisp +++ b/tests/mop.impure.lisp @@ -507,4 +507,17 @@ (:metaclass funcallable-standard-class)) (compile nil '(lambda (x) (typep x 'funcallable-class-for-typep))) +;;; even anonymous classes should be valid types +(let* ((class1 (make-instance 'standard-class :direct-superclasses (list (find-class 'standard-object)))) + (class2 (make-instance 'standard-class :direct-superclasses (list class1)))) + (assert (subtypep class2 class1)) + (assert (typep (make-instance class2) class1))) + +;;; ensure-class got its treatment of :metaclass wrong. +(ensure-class 'better-be-standard-class :direct-superclasses '(standard-object) + :metaclass 'standard-class + :metaclass 'funcallable-standard-class) +(assert (eq (class-of (find-class 'better-be-standard-class)) + (find-class 'standard-class))) + ;;;; success