[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: with-slots bug (still)
- To: Michael Sokolov <sokolov@waterloo.media.mit.edu>
- Subject: Re: with-slots bug (still)
- From: Gregor.pa@Xerox.COM
- Date: Wed, 17 Aug 88 13:47 PDT
- Cc: CommonLoops.pa@Xerox.COM
- Fcc: BD:>Gregor>mail>outgoing-mail-3.text.newest
- In-reply-to: <8807051641.AA01642@waterloo>
- Line-fold: no
Date: Tue, 5 Jul 88 12:41:28 EDT
From: Michael Sokolov <sokolov@waterloo.media.mit.edu>
In the 8/1 PCL, running in Lucid, the following error occurs:
(defclass foo () (x y) (:accessor-prefix))
(defclass bar () (z w) (:accessor-prefix))
(defmethod foobar ((f foo) (b bar))
(with-slots (x y) f
(setf y (+ x (w b)))))
(setq f (make-instance 'foo :x 1 :y 1))
(setq b (make-instance 'bar :w 1 :z 1))
Now, (foobar f b) produces the following:
OOPS> >>Error: X has no global value
Two comments.
1) This error doesn't happen in the version of PCL we are about to
release.
2) This code uses the now obsolete :accessor-prefix feature. You should
not use :accessor-prefix anymore, it will be going away shortly.
Your defclass forms should be updated as follows:
(defclass foo ()
((x :accessor x)
(y :accessor y)))
(defclass bar ()
((z :accessor z)
(w :accessor w)))
-------