From: Christophe Rhodes Date: Wed, 19 Jul 2006 20:44:38 +0000 (+0000) Subject: 0.9.14.26: X-Git-Url: http://repo.macrolet.net/gitweb/?a=commitdiff_plain;h=6e7800ef504e95cc5ce4d10d1e974ff09b2023ec;p=sbcl.git 0.9.14.26: Make anonymous classes type specifiers. (Reported by Pascal Costanza sbcl-devel 2006-07-19) --- diff --git a/src/pcl/std-class.lisp b/src/pcl/std-class.lisp index 3acc5db..28bbf00 100644 --- a/src/pcl/std-class.lisp +++ b/src/pcl/std-class.lisp @@ -310,8 +310,6 @@ (defmethod ensure-class-using-class ((class null) name &rest args &key) (multiple-value-bind (meta initargs) (ensure-class-values class args) - #+nil - (set-class-type-translation (class-prototype meta) name) (setf class (apply #'make-instance meta :name name initargs)) (without-package-locks (setf (find-class name) class)) @@ -462,7 +460,8 @@ (order-layout-inherits (map 'simple-vector #'class-wrapper (reverse (rest cpl)))))) - (register-layout layout :invalidate t)))) + (register-layout layout :invalidate t) + (set-class-type-translation class (layout-classoid layout))))) (mapc #'make-preliminary-layout (class-direct-subclasses class))))) diff --git a/tests/mop.impure.lisp b/tests/mop.impure.lisp index a2c85ef..d1b4172 100644 --- a/tests/mop.impure.lisp +++ b/tests/mop.impure.lisp @@ -507,4 +507,10 @@ (: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))) + ;;;; success diff --git a/version.lisp-expr b/version.lisp-expr index e0713f0..703c542 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -17,4 +17,4 @@ ;;; checkins which aren't released. (And occasionally for internal ;;; versions, especially for internal versions off the main CVS ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".) -"0.9.14.25" +"0.9.14.26"