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)))))))))))