So, I’ve learned enough about generic functions, CLOS, and EIEIO to believe that this should work:
(defclass foo () nil)
(cl-defmethod make-instance ((x foo) &rest args)
(with-temp-message "Is this thing on?"
(sit-for 1))
(cl-call-next-method))
(make-instance 'foo)
But, that just returns a new “foo” object, it doesn’t stop and display a message like I thought it would. Is there something I’m doing wrong here? (Bonus points if there’s a way I can investigate visually what’s going on—eieio-display-method-list
doesn’t seem to work anymore, and I’ve tried to look into the internals of how methods are selected but I just get lost in a maze of structs and functions with names like cl--generic-generalizer-specializers-function
.)
I’m using Emacs 26.2 on Ubuntu 18.04 LTS.