[armedbear-ticket] [armedbear] #276: defmethod doesn't call add-method

armedbear armedbear-devel at common-lisp.net
Mon Dec 3 07:35:17 UTC 2012


#276: defmethod doesn't call add-method
-----------------------+----------------------------------------------------
 Reporter:  rschlatte  |       Owner:  rschlatte
     Type:  defect     |      Status:  new      
 Priority:  major      |   Milestone:           
Component:  (A)MOP     |     Version:           
 Keywords:             |  
-----------------------+----------------------------------------------------
 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…

-- 
Ticket URL: <http://trac.common-lisp.net/armedbear/ticket/276>
armedbear <http://common-lisp.net/project/armedbear>
armedbear


More information about the armedbear-ticket mailing list