Ville Voutilainen wrote:
2009/9/26 Ville Voutilainen ville.voutilainen@gmail.com:
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.
Well, it took a lot longer than I hoped to get into fixing this problem, but the fix is committed on trunk, r12178.
Thanks Ville.
There is still at least one case that abcl is not happy with. A keyword argument with a default value.
CL-USER(7): (defclass c1() (x)) #<STANDARD-CLASS C1 {34E5190A}> CL-USER(8): (defmethod initialize-instance :after ((c c1) &key (x2 0)) (setf (slot-value c 'x) x2)) #<STANDARD-METHOD INITIALIZE-INSTANCE :AFTER (C1) {70DFB596}> CL-USER(9): (make-instance 'c1) #<C1 {39CEFFB8}> CL-USER(10): (make-instance 'c1 :x2 11) Debugger invoked on condition of type TYPE-ERROR: (X2 0) cannot be coerced to a string. Restarts: 0: TOP-LEVEL Return to top level. [1] CL-USER(11):