I have some CLOS classes which I have defined with read-only slots 
(i.e., only reader methods, not accessor methods).   I do this because I 
want only certain special methods to alter those slot values.  So those 
methods use
(setf (slot-value <object> '<slotname>) value)

When I compile those methods I get messages like the following  from the 
compiler:

==>
   (SLOT-ACCESSOR-NAME::|COMMON-LISP-USER METHOD-STATUS slot WRITER|
    (COPY-ARRAY (METHOD-STATUS STATE)) #:G7)
Warning: Undefined function: SLOT-ACCESSOR-NAME::|COMMON-LISP-USER 
METHOD-STATUS slot WRITER|

This seems wrong, since I'm not actually using a writer method:

(setf (slot-value x 'method-status) (copy-array (method-status state)))

Does anybody know why this happens?  is it a bug?  will those forms be 
compiled correctly?

Thanks,
R




Reply via email to