Function: byte-optimize-letX

byte-optimize-letX is a byte-compiled function defined in byte-opt.el.gz.

Signature

(byte-optimize-letX FORM)

Source Code

;; Defined in /usr/src/emacs/lisp/emacs-lisp/byte-opt.el.gz
(defun byte-optimize-letX (form)
  (pcase form
    ;; No bindings.
    (`(,_ () . ,body)
     `(progn . ,body))

    ;; Body is empty or just contains a constant.
    (`(,head ,bindings . ,(or '() `(,(and const (pred macroexp-const-p)))))
     (if (eq head 'let)
         `(progn ,@(mapcar (lambda (binding)
                             (and (consp binding) (cadr binding)))
                           bindings)
                 ,const)
       `(let* ,(butlast bindings)
          ,@(and (consp (car (last bindings)))
                 (cdar (last bindings)))
          ,const)))

    ;; Body is last variable.
    (`(,head ,(and bindings
                   (let last-var (let ((last (car (last bindings))))
                                   (if (consp last) (car last) last))))
             ,(and last-var             ; non-linear pattern
                   (pred symbolp) (pred (not keywordp)) (pred (not booleanp))))
     (if (eq head 'let)
         `(progn ,@(mapcar (lambda (binding)
                             (and (consp binding) (cadr binding)))
                           bindings))
       `(let* ,(butlast bindings)
          ,@(and (consp (car (last bindings)))
                 (cdar (last bindings))))))

    (_ form)))