[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