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
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
\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}
(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.
(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)))
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))
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