From: Christophe R. <cr...@us...> - 2006-07-13 10:03:43
|
Update of /cvsroot/sbcl/sbcl/tests In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv28372/tests Modified Files: clos.impure.lisp Log Message: 0.9.14.12: Fix bug in SB-PCL::COMPUTE-CLASS-SLOTS, exposed by CHANGE-CLASS. ... test case ... this bug fix means that we no longer have to walk the inherits vector looking for class slots from superclasses, hooray. Index: clos.impure.lisp =================================================================== RCS file: /cvsroot/sbcl/sbcl/tests/clos.impure.lisp,v retrieving revision 1.80 retrieving revision 1.81 diff -u -d -r1.80 -r1.81 --- clos.impure.lisp 7 Jun 2006 19:08:31 -0000 1.80 +++ clos.impure.lisp 13 Jul 2006 10:03:38 -0000 1.81 @@ -1290,6 +1290,15 @@ (defmethod class-as-specializer-test2 ((x ,(find-class 'class-as-specializer-test))) 'bar)))) (assert (eq 'bar (class-as-specializer-test2 (make-instance 'class-as-specializer-test)))) - + +;;; CHANGE-CLASS and tricky allocation. +(defclass foo () + ((a :allocation :class :initform 1))) +(defclass bar (foo) ()) +(defvar *bar* (make-instance 'bar)) +(defclass baz () + ((a :allocation :instance :initform 2))) +(change-class *bar* 'baz) +(assert (= (slot-value *bar* 'a) 1)) ;;;; success |