From 1622ed8e30b05ba9025520cde3e68d186c8c7e50 Mon Sep 17 00:00:00 2001 From: Mark Wooding Date: Wed, 16 Dec 2015 10:43:47 +0000 Subject: [PATCH] src/method-{proto,impl}.lisp: Abolish `sod-message-no-varargs-tail'. 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 | 3 --- doc/layout.tex | 3 --- src/method-impl.lisp | 12 ++++-------- src/method-proto.lisp | 9 --------- 4 files changed, 4 insertions(+), 23 deletions(-) diff --git a/doc/SYMBOLS b/doc/SYMBOLS index 1dc1b28..f165c35 100644 --- a/doc/SYMBOLS +++ b/doc/SYMBOLS @@ -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 diff --git a/doc/layout.tex b/doc/layout.tex index e4ffe10..c52989c 100644 --- a/doc/layout.tex +++ b/doc/layout.tex @@ -259,9 +259,6 @@ \begin{describe}{gf}{sod-message-argument-tail @ @> @} \end{describe} -\begin{describe}{gf}{sod-message-no-varargs-tail @ @> @} -\end{describe} - \begin{describe}{gf}{sod-method-function-type @ @> @} \end{describe} diff --git a/src/method-impl.lisp b/src/method-impl.lisp index 963f2fe..1256376 100644 --- a/src/method-impl.lisp +++ b/src/method-impl.lisp @@ -30,8 +30,7 @@ (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 @@ (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 @@ 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)) diff --git a/src/method-proto.lisp b/src/method-proto.lisp index 629e8a7..f5d8be7 100644 --- a/src/method-proto.lisp +++ b/src/method-proto.lisp @@ -138,15 +138,6 @@ 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 -- 2.11.0