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."
  (or (booleanp expr)
      (numberp expr)
      (arrayp expr)
      (let ((head (car-safe expr)))
        (cond ((eq head 'quote) t)
              ;; Don't substitute #'(lambda ...) since that would enable
              ;; uncontrolled inlining.
              ((eq head 'function) (symbolp (cadr expr)))
              ;; (internal-get-closed-var N) can be considered constant for
              ;; const-prop purposes.
              ((eq head 'internal-get-closed-var) (integerp (cadr expr)))))
      (keywordp expr)))