chiark / gitweb /
src/method-{proto,impl}.lisp: Abolish `sod-message-no-varargs-tail'.
authorMark Wooding <mdw@distorted.org.uk>
Wed, 16 Dec 2015 10:43:47 +0000 (10:43 +0000)
committerMark Wooding <mdw@distorted.org.uk>
Sun, 29 May 2016 14:09:03 +0000 (15:09 +0100)
This was promised earlier.  All but one of the callers of this method
were lost during the introduction of keyword-argument messages, and it
doesn't seem worth keeping this corner of the method protocol just for
that.

doc/SYMBOLS
doc/layout.tex
src/method-impl.lisp
src/method-proto.lisp

index 1dc1b2814212bae3a00abede606631e70333c478..f165c3520ce14b0a276d02a956028a82ba1ca239 100644 (file)
@@ -503,7 +503,6 @@ method-proto.lisp
   simple-method-body                            generic
   sod-message-argument-tail                     generic
   sod-message-effective-method-class            generic
-  sod-message-no-varargs-tail                   generic
   sod-method-function-name                      generic
   sod-method-function-type                      generic
   sod-method-next-method-type                   generic
@@ -1391,8 +1390,6 @@ sod-message-method-class
   sod-message sod-class t
 sod-message-name
   sod-message
-sod-message-no-varargs-tail
-  basic-message
 sod-message-type
   sod-message
 sod-method-body
index e4ffe102d4a17f3e53a89d8fc0a4c3a0b773a981..c52989cd82901f8a50f388f4551a90c8b401fe2a 100644 (file)
 \begin{describe}{gf}{sod-message-argument-tail @<message> @> @<list>}
 \end{describe}
 
-\begin{describe}{gf}{sod-message-no-varargs-tail @<message> @> @<list>}
-\end{describe}
-
 \begin{describe}{gf}{sod-method-function-type @<method> @> @<c-type>}
 \end{describe}
 
index 963f2fef8f12f4c98a7f557323539bdaa1e9453d..1256376158091721c45106d0044ca1e0b16ef79c 100644 (file)
@@ -30,8 +30,7 @@ (cl:in-package #:sod)
 
 (export 'basic-message)
 (defclass basic-message (sod-message)
-  ((argument-tail :type list :reader sod-message-argument-tail)
-   (no-varargs-tail :type list :reader sod-message-no-varargs-tail))
+  ((argument-tail :type list :reader sod-message-argument-tail))
   (:documentation
    "Base class for built-in message classes.
 
@@ -52,9 +51,6 @@ (define-on-demand-slot basic-message argument-tail (message)
                                 (argument-type arg))))
            (c-function-arguments (sod-message-type message)))))
 
-(define-on-demand-slot basic-message no-varargs-tail (message)
-  (reify-variable-argument-tail (sod-message-argument-tail message)))
-
 (defmethod sod-message-method-class
     ((message basic-message) (class sod-class) pset)
   (let ((role (get-property pset :role :keyword nil)))
@@ -288,9 +284,9 @@ (defclass basic-effective-method (effective-method)
    using a slot reader method."))
 
 (define-on-demand-slot basic-effective-method basic-argument-names (method)
-  (let ((message (effective-method-message method)))
-    (mapcar #'argument-name
-           (sod-message-no-varargs-tail message))))
+  (let* ((message (effective-method-message method))
+        (raw-tail (sod-message-argument-tail message)))
+    (mapcar #'argument-name (reify-variable-argument-tail raw-tail))))
 
 (defmethod effective-method-function-name ((method effective-method))
   (let* ((class (effective-method-class method))
index 629e8a75efd87cda46c3d630397eca7c297e15f9..f5d8be7a228f737136ee21c809eba410d08eb0d3 100644 (file)
@@ -138,15 +138,6 @@ (defgeneric sod-message-argument-tail (message)
 
    No `me' argument is prepended; any `:ellipsis' is left as it is."))
 
-(export 'sod-message-no-varargs-tail)
-(defgeneric sod-message-no-varargs-tail (message)
-  (:documentation
-   "Return the argument tail for the message with `:ellipsis' substituted.
-
-   As with `sod-message-argument-tail', no `me' argument is prepended.
-   However, an `:ellipsis' is replaced by an argument of type `va_list',
-   named `sod__ap'."))
-
 (export 'sod-method-function-type)
 (defgeneric sod-method-function-type (method)
   (:documentation