From: <fa...@gm...> - 2006-06-02 18:22:17
|
In sbcl 0.9.12.26, our application had a problem that could be reduce to the following: (defmethod foo ((x string) &key bar baz) (list '1 x bar baz)) (defmethod foo ((x cons) &rest keys) (list '2 x keys)) (foo "abc" :bar 3) ;ok (foo '(a) :bar 4) ;error invalid keyword argument: :BAR (valid keys are ). 3: (SB-PCL::CHECK-APPLICABLE-KEYWORDS (:BAR 4) 0 NIL) Works well with CMUCL, clisp. Also works well if I first do a (defgeneric foo (x &key bar baz)) I believe it's a bug in SBCL. (But maybe you'll tell me that it's perfectly conformant for the implementation to throw an error in such a case.) [ Fran=E7ois-Ren=E9 =D0VB Rideau | Reflection&Cybernethics | http://fare.tu= nes.org ] Every program has at least one bug and can be shortened by at least one instruction -- from which, by induction, one can deduce that every program can be reduced to one instruction which doesn't work. |