Function: elisp-scope-cl-lambda-1
elisp-scope-cl-lambda-1 is a byte-compiled function defined in
elisp-scope.el.gz.
Signature
(elisp-scope-cl-lambda-1 ARGLIST MORE BODY)
Source Code
;; Defined in /usr/src/emacs/lisp/emacs-lisp/elisp-scope.el.gz
(defun elisp-scope-cl-lambda-1 (arglist more body)
(cond
(arglist
(if (consp arglist)
(let ((head (car arglist)))
(if (consp head)
(elisp-scope-cl-lambda-1 head (cons (cdr arglist) more) body)
(let ((bare (elisp-scope--sym-bare head)))
(if (memq bare '(&optional &rest &body &key &aux &whole &cl-defs &cl-quote))
(progn
(when-let* ((beg (elisp-scope--sym-pos head)))
(elisp-scope--report 'ampersand beg bare))
(cl-case bare
(&optional (elisp-scope-cl-lambda-optional (cadr arglist) (cddr arglist) more body))
(&cl-defs (elisp-scope-cl-lambda-defs (cadr arglist) (cddr arglist) more body))
((&rest &body) (elisp-scope-cl-lambda-rest (cadr arglist) (cddr arglist) more body))
(&key (elisp-scope-cl-lambda-key (cadr arglist) (cddr arglist) more body))
(&aux (elisp-scope-cl-lambda-aux (cadr arglist) (cddr arglist) more body))
(&whole (elisp-scope-cl-lambda-1 (cdr arglist) more body))))
(when-let* ((beg (elisp-scope--sym-pos head)))
(elisp-scope--binding bare beg))
(let ((elisp-scope-local-bindings
(elisp-scope--local-new bare (elisp-scope--sym-pos head)
elisp-scope-local-bindings)))
(elisp-scope-cl-lambda-1 (cdr arglist) more body))))))
(elisp-scope-cl-lambda-1 (list '&rest arglist) more body)))
(more (elisp-scope-cl-lambda-1 (car more) (cdr more) body))
(t (elisp-scope-lambda nil body))))