chiark / gitweb /
src/method-impl.lisp (method-keyword-argument-lists): Check message type.
authorMark Wooding <mdw@distorted.org.uk>
Sun, 26 Mar 2017 14:16:18 +0000 (15:16 +0100)
committerMark Wooding <mdw@distorted.org.uk>
Fri, 8 Jun 2018 18:58:28 +0000 (19:58 +0100)
Check keyword arguments defined in the message as well as all of the
applicable methods.

src/method-impl.lisp

index f24b8c0458efcdd73f83ff5f03257e941245b4ab..e3fb6aef7ea28be5be24e95ed2fb13682579420b 100644 (file)
@@ -253,13 +253,16 @@ (defmethod method-keyword-argument-lists
     ((method effective-method) direct-methods)
   (with-slots (message) method
     (and (keyword-message-p message)
-        (mapcar (lambda (m)
-                  (cons (c-function-keywords (sod-method-type m))
-                        (format nil "method for ~A on ~A (at ~A)"
-                                message
-                                (sod-method-class m)
-                                (file-location m))))
-                direct-methods))))
+        (cons (cons (c-function-keywords (sod-message-type message))
+                    (format nil "message ~A (at ~A)"
+                            message (file-location message)))
+              (mapcar (lambda (m)
+                        (cons (c-function-keywords (sod-method-type m))
+                              (format nil "method for ~A on ~A (at ~A)"
+                                      message
+                                      (sod-method-class m)
+                                      (file-location m))))
+                      direct-methods)))))
 
 (defmethod shared-initialize :after
     ((method effective-method) slot-names &key direct-methods)