[armedbear-ticket] [armedbear] #279: default-initargs not respected for funcallable-standard-class

armedbear armedbear-devel at common-lisp.net
Sun Dec 9 18:01:23 UTC 2012


#279: default-initargs not respected for funcallable-standard-class
-----------------------+----------------------------------------------------
 Reporter:  rschlatte  |       Owner:  rschlatte
     Type:  defect     |      Status:  new      
 Priority:  major      |   Milestone:           
Component:  (A)MOP     |     Version:           
 Keywords:             |  
-----------------------+----------------------------------------------------
 Report by Pascal Costanza:

 Here is a test case:
 {{{
 CL-USER(1): (use-package :mop)
 T
 CL-USER(2): (defclass my-method (standard-method) ())
 #<STANDARD-CLASS MY-METHOD {1EE9DE5F}>
 CL-USER(3): (defclass my-generic-function (standard-generic-function) ()
              (:metaclass funcallable-standard-class)
              (:default-initargs :method-class (find-class 'my-method)))
 #<FUNCALLABLE-STANDARD-CLASS MY-GENERIC-FUNCTION {6E06D676}>
 CL-USER(4): (defgeneric my-function ()
              (:generic-function-class my-generic-function))
 #<MY-GENERIC-FUNCTION MY-FUNCTION {2EA1569}>
 CL-USER(5): (generic-function-method-class #'my-function)
 #<STANDARD-CLASS STANDARD-METHOD {4E513D61}>
 }}}

 The reason is that the defaulting happens in the keyword arguments for
 ensure-generic-function (in clos.lisp), which thus overrides any default
 initargs. However, the defaulting should be left to the class.

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


More information about the armedbear-ticket mailing list