[armedbear-devel] bug with initialize-instance and keyword arguments

Ville Voutilainen ville.voutilainen at gmail.com
Fri Sep 25 21:45:08 UTC 2009


2009/9/25 Steve Rolls <srolls24 at gmail.com>:
> This is present in 0.16 and latest from svn, but not in 0.15. Specifying
> a keyword arg in an initialize-instance method does not make the keyword
> a valid initarg for make-instance.

> CL-USER(2): (defmethod initialize-instance :after ((c c1) &key x2) (setf
> (slot-value c 'x) x2))
> #<STANDARD-METHOD INITIALIZE-INSTANCE :AFTER (C1) {79A1EA46}>
> CL-USER(3): (make-instance 'c1 :x2 1)
> Debugger invoked on condition of type PROGRAM-ERROR:
>  Invalid initarg :X2.

Thanks for the report, we check the initargs for shared-initialize
methods, but not for methods of initialize-instance
itself. Therefore, we don't find that :x2 initarg (because we only
look into shared-initialize methods) and thus the
arg check fails. I'll hopefully be able to fix this during the weekend.




More information about the armedbear-devel mailing list