From 3b9d0f932481fbc9cf2eabc5bb160452927682b6 Mon Sep 17 00:00:00 2001 From: Stas Boukarev Date: Sun, 17 Nov 2013 01:50:09 +0400 Subject: [PATCH] Fix a regression in class accessors. A call to accessor-method-p was lost in the rewrite of accessor-values-internal. --- src/pcl/dfun.lisp | 2 +- tests/clos.impure.lisp | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) 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 -- 1.7.10.4