Am Sun, 12 Sep 2004 21:50:37 +0200 schrieb Thomas Schilling tjs_ng@yahoo.de:
- makunbound, fmakunbound, remove-method from within inspector.
hm, removing method has one problem though: it doesn't remove the method at point (instead it always removes the last method.)
fixed it. Looks like an Allegro bug. (No diff cause I don't know how to diff to your applied patch.)
In
(defmethod inspected-parts ((gf standard-generic-function))
the line
collect `(:action "[remove method]" ,(lambda () (remove-method gf method)))
must be replaced with
collect `(:action "[remove method]" ,(create-method-remover gf method))
and this must be added
(defun create-method-remover (gf m) ;; acl62 didn't treat the inlined lambda correctly (lambda () (remove-method gf m)))
because the inlined closure was modified in each loop. Dunno, if this is a bug or a feature or simply depends on the loop implementation (in which case it would probably also be a bug).
In order to handle unfinalized classes i modified inspected-parts (standard-class) a little bit. See attachment (note: it also is no diff)
Furthermore, we need a method for inspected-parts for cl:structure-class (i simply copied the one for standard-class) and for excl::structure-direct-slot-definition (allegro package), though I don't know how to do this portably. Maybe we can just add it to swank-mop and create a dummy class for all implementations that don't support/need this class.
-ts