Function: macroexp--const-symbol-p

macroexp--const-symbol-p is a byte-compiled function defined in macroexp.el.gz.

Signature

(macroexp--const-symbol-p SYMBOL &optional ANY-VALUE)

Documentation

Non-nil if SYMBOL is constant.

If ANY-VALUE is nil, only return non-nil if the value of the symbol is the symbol itself.

Source Code

;; Defined in /usr/src/emacs/lisp/emacs-lisp/macroexp.el.gz
(defsubst macroexp--const-symbol-p (symbol &optional any-value)
  "Non-nil if SYMBOL is constant.
If ANY-VALUE is nil, only return non-nil if the value of the symbol is the
symbol itself."
  (or (memq symbol '(nil t))
      (keywordp symbol)
      (if any-value
	  (or (memq symbol byte-compile-const-variables)
	      ;; FIXME: We should provide a less intrusive way to find out
	      ;; if a variable is "constant".
	      (and (boundp symbol)
		   (condition-case nil
		       (progn (set symbol (symbol-value symbol)) nil)
		     (setting-constant t)))))))