Work at SourceForge, help us to make it a better place! We have an immediate need for a Support Technician in our San Francisco or Denver office.
Update of /cvsroot/sbcl/sbcl/tests
In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv1617/tests
Fix bug (reported by Jasko on #lisp) regarding
TYPEP on funcallable-standard-classes with accessors.
... make a STANDARD-CLASSOID for funcallable-standard-classes,
too, as they behave (wrt the type system) in the same
... STD-CLASSOID is now useless; delete it.
... simplify MAKE-PRELIMINARY-LAYOUT a bit, since MAKE-WRAPPER
now does the right thing.
RCS file: /cvsroot/sbcl/sbcl/tests/mop.impure.lisp,v
retrieving revision 1.33
retrieving revision 1.34
diff -u -d -r1.33 -r1.34
--- mop.impure.lisp 19 Jul 2006 11:13:02 -0000 1.33
+++ mop.impure.lisp 19 Jul 2006 18:30:28 -0000 1.34
@@ -489,15 +489,22 @@
;;; classes (including anonymous ones) and eql-specializers should be
;;; allowed to be specializers.
- (make-instance 'standard-class
+ (make-instance 'standard-class
:direct-superclasses (list (find-class 'standard-object))))
(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*)))
(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)))