Function: cl-generic-call-method
cl-generic-call-method is a byte-compiled function defined in
cl-generic.el.gz.
Signature
(cl-generic-call-method GENERIC METHOD &optional FUN)
Documentation
Return a function that calls METHOD.
FUN is the function that should be called when METHOD calls
call-next-method.
Source Code
;; Defined in /usr/src/emacs/lisp/emacs-lisp/cl-generic.el.gz
(defun cl-generic-call-method (generic method &optional fun)
"Return a function that calls METHOD.
FUN is the function that should be called when METHOD calls
`call-next-method'."
(if (not (cl--generic-method-uses-cnm method))
(cl--generic-method-function method)
(let ((met-fun (cl--generic-method-function method))
(next (or fun (cl--generic-no-next-method-function
generic method))))
(lambda (&rest args)
(apply met-fun
;; FIXME: This sucks: passing just `next' would
;; be a lot more efficient than the lambda+apply
;; quasi-η, but we need this to implement the
;; "if call-next-method is called with no
;; arguments, then use the previous arguments".
(lambda (&rest cnm-args)
(apply next (or cnm-args args)))
args)))))