Found by Christophe Rhodes:
(defgeneric foo (&rest x &key)) (defmethod foo (&rest x) x) (foo 1) should signal an error. This fix works only for methods defined with DEFMETHOD. MAKE-METHOD-LAMBDA doesn't have enough information available to always do the right thing, alas. * src/pcl/boot.lisp (*make-method-lambda-gf-name*): New variable. (expand-defmethod): Bind it to the gf's name. (gf-key-p): New function. (make-method-lambda-internal): Determine from *make-method-lambda-gf-name* if the gf has &key and add &key to the method function's lambda-list if appropriate.
Loading
Please register or sign in to comment