Function: byte-optimize-nconc

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

Signature

(byte-optimize-nconc FORM)

Source Code

;; Defined in /usr/src/emacs/lisp/emacs-lisp/byte-opt.el.gz
(defun byte-optimize-nconc (form)
  (pcase (cdr form)
    ('nil nil)                          ; (nconc) -> nil
    (`(,x) x)                           ; (nconc X) -> X
    (_ (named-let loop ((args (cdr form)) (newargs nil))
         (if args
             (let ((arg (car args))
                   (prev (car newargs)))
               (cond
                ;; Elide null args.
                ((and (null arg)
                      ;; Don't elide a terminal nil unless preceded by
                      ;; a nonempty proper list, since that will have
                      ;; its last cdr forced to nil.
                      (or (cdr args)
                          ;; FIXME: prove the 'nonempty proper list' property
                          ;; for more forms than just `list', such as
                          ;; `append', `mapcar' etc.
                          (eq 'list (car-safe (car newargs)))))
                 (loop (cdr args) newargs))
                ;; Merge consecutive `list' args.
                ((and (eq (car-safe arg) 'list)
                      (eq (car-safe prev) 'list))
                 (loop (cons (cons (car prev) (append (cdr prev) (cdr arg)))
                             (cdr args))
                       (cdr newargs)))
                ;; (nconc ... (list A) B ...) -> (nconc ... (cons A B) ...)
                ((and (eq (car-safe prev) 'list) (cdr prev) (null (cddr prev)))
                 (loop (cdr args)
                       (cons (list 'cons (cadr prev) arg)
                             (cdr newargs))))
                (t (loop (cdr args) (cons arg newargs)))))
           (let ((new-form (cons (car form) (nreverse newargs))))
             (if (equal new-form form)
                 form
               new-form)))))))