1.0.18.19: Fix FUNCTION-KEYWORDS, re-add FUNCTION-KEYWORD-PARAMETERS.
authorRichard M Kreuter <kreuter@users.sourceforge.net>
Wed, 16 Jul 2008 17:30:01 +0000 (17:30 +0000)
committerRichard M Kreuter <kreuter@users.sourceforge.net>
Wed, 16 Jul 2008 17:30:01 +0000 (17:30 +0000)
* Recently-renamed FUNCTION-KEYWORD-PARAMETERS did something different
  than what FUNCTION-KEYWORDS is supposed to do.  Fix
  FUNCTION-KEYWORDS, and re-add a distinct FUNCTION-KEYWORD-PARAMETERS
  (used indirectly by DESCRIBE, something in sb-introspect, maybe
  elsewhere).

src/pcl/generic-functions.lisp
src/pcl/methods.lisp
version.lisp-expr

index e0ed65a..7d92d9a 100644 (file)
 
 (defgeneric function-keywords (method))
 
+(defgeneric function-keyword-parameters (method))
+
 (defgeneric generic-function-argument-precedence-order (gf))
 
 (defgeneric generic-function-lambda-list (gf))
index 52d9ece..35f2c35 100644 (file)
                                (early-method-lambda-list method)
                                (method-lambda-list method)))
     (declare (ignore nreq nopt keysp restp keywords))
+    (values keywords allow-other-keys-p)))
+
+(defmethod function-keyword-parameters ((method standard-method))
+  (multiple-value-bind (nreq nopt keysp restp allow-other-keys-p
+                        keywords keyword-parameters)
+      (analyze-lambda-list (if (consp method)
+                               (early-method-lambda-list method)
+                               (method-lambda-list method)))
+    (declare (ignore nreq nopt keysp restp keywords))
     (values keyword-parameters allow-other-keys-p)))
 
 (defun method-ll->generic-function-ll (ll)
           (let ((methods.keys nil) (methods.allowp nil))
             (dolist (m methods)
               (multiple-value-bind (m.keyparams m.allow-other-keys)
-                  (function-keywords m)
+                  (function-keyword-parameters m)
                 (setq methods.keys (union methods.keys m.keyparams :key #'maybe-car))
                 (setq methods.allowp (or methods.allowp m.allow-other-keys))))
             (let ((arglist '()))
index 29808c2..be751d8 100644 (file)
@@ -17,4 +17,4 @@
 ;;; checkins which aren't released. (And occasionally for internal
 ;;; versions, especially for internal versions off the main CVS
 ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
-"1.0.18.18"
+"1.0.18.19"