#276 closed defect (fixed)
defmethod doesn't call add-method
Reported by: | rschlatte | Owned by: | rschlatte |
---|---|---|---|
Priority: | blocker | Milestone: | 1.1.0 |
Component: | (A)MOP | Version: | |
Keywords: | Cc: | ||
Parent Tickets: |
Description
Reported by Pascal Costanza:
There is a problem that a defmethod may not call add-method as it should. Here is a transcript:
CL-USER(1): (use-package :mop) T CL-USER(2): (defclass my-generic-function (standard-generic-function) () (:metaclass funcallable-standard-class)) #<FUNCALLABLE-STANDARD-CLASS MY-GENERIC-FUNCTION {3606AFA2}> CL-USER(3): (defgeneric f (x) (:generic-function-class my-generic-function)) #<MY-GENERIC-FUNCTION F {589D4D84}> CL-USER(4): (defmethod add-method :after ((gf my-generic-function) (m standard-method)) (print :foo)) #<STANDARD-METHOD ADD-METHOD :AFTER (MY-GENERIC-FUNCTION STANDARD-METHOD) {3F4C428F}> CL-USER(5): (defmethod f ((x integer)) (+ x x)) #<STANDARD-METHOD F (INTEGER) {27A5DAC0}> CL-USER(6): (add-method #'f *) :FOO #<MY-GENERIC-FUNCTION F {589D4D84}> CL-USER(7): (f 5) 10
…or maybe just :after methods on add-method are not called…
Change History (3)
comment:1 Changed 12 years ago by
Milestone: | → 1.1.0 |
---|---|
Priority: | major → blocker |
comment:2 Changed 12 years ago by
Resolution: | → fixed |
---|---|
Status: | new → closed |
comment:3 Changed 12 years ago by
Note: See
TracTickets for help on using
tickets.
(In [14289]) Don't shortcut add-method for subclasses of standard-generic-function