Function: mode-local--expand-overrides
mode-local--expand-overrides is a byte-compiled function defined in
mode-local.el.gz.
Signature
(mode-local--expand-overrides NAME ARGS BODY)
Documentation
Expand override forms that overload function NAME.
ARGS are the arguments to the function NAME.
BODY is code where override forms are searched for expansion.
Return result of expansion, or BODY if no expansion occurred.
See also the function define-overload.
Source Code
;; Defined in /usr/src/emacs/lisp/cedet/mode-local.el.gz
(defun mode-local--expand-overrides (name args body)
"Expand override forms that overload function NAME.
ARGS are the arguments to the function NAME.
BODY is code where override forms are searched for expansion.
Return result of expansion, or BODY if no expansion occurred.
See also the function `define-overload'."
(let ((forms body)
(ditto t)
form xbody)
(while forms
(setq form (car forms))
(cond
((atom form))
((eq (car form) :override)
(setq form (mode-local--override name args (cdr form))))
((eq (car form) :override-with-args)
(setq form (mode-local--override name (cadr form) (cddr form))))
((setq form (mode-local--expand-overrides name args form))))
(setq ditto (and ditto (eq (car forms) form))
xbody (cons form xbody)
forms (cdr forms)))
(if ditto body (nreverse xbody))))