Function: cl--slet
cl--slet is a byte-compiled function defined in cl-macs.el.gz.
Signature
(cl--slet BINDINGS BODY &optional NOWARN)
Documentation
Like cl--slet* but for "parallel let".
Source Code
;; Defined in /usr/src/emacs/lisp/emacs-lisp/cl-macs.el.gz
(defun cl--slet (bindings body &optional nowarn)
"Like `cl--slet*' but for \"parallel let\"."
(let ((dyns nil)) ;Vars declared as dynbound among the bindings?
(when lexical-binding
(dolist (binding bindings) ;; `seq-some' lead to bootstrap problems.
(when (macroexp--dynamic-variable-p (car binding))
(push (car binding) dyns))))
(cond
(dyns
(let ((form `(funcall (lambda (,@(mapcar #'car bindings))
,@(macroexp-unprogn body))
,@(mapcar #'cadr bindings))))
(if (not nowarn) form
`(with-suppressed-warnings ((lexical ,@dyns)) ,form))))
((null (cdr bindings))
(macroexp-let* bindings body))
(t `(let ,bindings ,@(macroexp-unprogn body))))))