[eieio] :before and :after methods not called
drkm <[email protected]> Mon, 07 Mar 2005 14:17:17 +0100
| Newsgroups | gmane.emacs.cedet,gmane.emacs.eieio |
|---|---|
| Organization | None |
| Message-ID | <[email protected]> |
Hi
It seems that the generic dispatcher doesn't call all :before
and :after methods as it would have to. For example, this:
(defclass A () ())
(defclass AA (A) ())
(defclass AAA (AA) ())
(defmethod F ((p A))
(message "F A"))
(defmethod F ((p AA))
(message "F AA"))
(defmethod F :BEFORE ((p A))
(message "F A before"))
(defmethod F :BEFORE ((p AA))
(message "F AA before"))
(defmethod F :BEFORE ((p AAA))
(message "F AAA before"))
(defmethod F :AFTER ((p A))
(message "F A after"))
(defmethod F :AFTER ((p AA))
(message "F AA after"))
(defmethod F :AFTER ((p AAA))
(message "F AAA after"))
(F (AAA nil))
prints:
F AAA before
F AA
F AAA after
instead of:
F AAA before
F AA before
F A before
F AA
F A after
F AA after
F AAA after
--drkm
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click