Function: byte-compile-nilconstp

byte-compile-nilconstp is a byte-compiled function defined in byte-opt.el.gz.

Signature

(byte-compile-nilconstp FORM)

Documentation

Return non-nil if FORM always evaluates to a nil value.

Source Code

;; Defined in /usr/src/emacs/lisp/emacs-lisp/byte-opt.el.gz
(defun byte-compile-nilconstp (form)
  "Return non-nil if FORM always evaluates to a nil value."
  (setq form (byte-opt--bool-value-form form))
  (or (not form)   ; assume (quote nil) always being normalized to nil
      (and (consp form)
           (let ((head (car form)))
             ;; FIXME: There are many other expressions that are statically nil.
             (cond ((memq head '(while ignore)) t)
                   ((eq head 'if)
                    (and (byte-compile-nilconstp (nth 2 form))
                         (byte-compile-nilconstp (car (last (cdddr form))))))
                   ((memq head '(not null))
                    (byte-compile-trueconstp (cadr form)))
                   ((eq head 'and)
                    (and (cdr form)
                         (byte-compile-nilconstp (car (last (cdr form)))))))))))