From: Stas Boukarev Date: Sat, 16 Nov 2013 21:50:09 +0000 (+0400) Subject: Fix a regression in class accessors. X-Git-Url: http://repo.macrolet.net/gitweb/?a=commitdiff_plain;h=3b9d0f932481fbc9cf2eabc5bb160452927682b6;p=sbcl.git Fix a regression in class accessors. A call to accessor-method-p was lost in the rewrite of accessor-values-internal. --- diff --git a/src/pcl/dfun.lisp b/src/pcl/dfun.lisp index bb5d890..7fe8491 100644 --- a/src/pcl/dfun.lisp +++ b/src/pcl/dfun.lisp @@ -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) diff --git a/tests/clos.impure.lisp b/tests/clos.impure.lisp index bff25d8..b6db2a7 100644 --- a/tests/clos.impure.lisp +++ b/tests/clos.impure.lisp @@ -2119,4 +2119,17 @@ (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