Fix a regression in class accessors.
authorStas Boukarev <stassats@gmail.com>
Sat, 16 Nov 2013 21:50:09 +0000 (01:50 +0400)
committerStas Boukarev <stassats@gmail.com>
Sat, 16 Nov 2013 21:50:09 +0000 (01:50 +0400)
A call to accessor-method-p was lost in the rewrite of
accessor-values-internal.

src/pcl/dfun.lisp
tests/clos.impure.lisp

index bb5d890..7fe8491 100644 (file)
@@ -1201,7 +1201,7 @@ Except see also BREAK-VICIOUS-METACIRCLE.  -- CSR, 2003-05-28
             ((and (consp meth)
                   (early-method-standard-accessor-p meth))
              (early-method-standard-accessor-slot-name meth))
-            ((and (atom meth)
+            ((and (accessor-method-p meth)
                   (member *the-class-standard-object*
                           (if early-p
                               (early-class-precedence-list accessor-class)
index bff25d8..b6db2a7 100644 (file)
         (and fasl (delete-file fasl))))
     (test-load "bug-503095-2.lisp")))
 
+(with-test (:name :accessor-and-plain-method)
+  (defclass a-633911 ()
+    ((x-633911 :initform nil
+               :accessor x-633911)))
+
+  (defmethod x-633911 ((b a-633911)) 10)
+
+  (defclass b-633911 ()
+    ((x-633911 :initform nil
+               :accessor x-633911)))
+
+  (assert (= (x-633911 (make-instance 'a-633911)) 10)))
+
 ;;;; success