
2009/9/25 Steve Rolls <srolls24@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.