Function: byte-optimize--substitutable-p
byte-optimize--substitutable-p is a byte-compiled function defined in
byte-opt.el.gz.
Signature
(byte-optimize--substitutable-p EXPR)
Documentation
Whether EXPR is a constant that can be propagated.
Source Code
;; Defined in /usr/src/emacs/lisp/emacs-lisp/byte-opt.el.gz
(defun byte-optimize--substitutable-p (expr)
"Whether EXPR is a constant that can be propagated."
;; Only consider numbers, symbols and strings to be values for substitution
;; purposes. Numbers and symbols are immutable, and mutating string
;; literals (or results from constant-evaluated string-returning functions)
;; can be considered undefined.
;; (What about other quoted values, like conses?)
(or (booleanp expr)
(numberp expr)
(stringp expr)
(and (consp expr)
(memq (car expr) '(quote function))
(symbolp (cadr expr)))
(keywordp expr)))