Function: macroexp-macroexpand

macroexp-macroexpand is a byte-compiled function defined in macroexp.el.gz.

Signature

(macroexp-macroexpand FORM ENV)

Documentation

Like macroexpand but checking obsolescence.

Source Code

;; Defined in /usr/src/emacs/lisp/emacs-lisp/macroexp.el.gz
(defun macroexp-macroexpand (form env)
  "Like `macroexpand' but checking obsolescence."
  (let* ((macroexpand-all-environment env)
         (new-form
          (macroexpand form env)))
    (if (and (not (eq form new-form))   ;It was a macro call.
             (car-safe form)
             (symbolp (car form))
             (get (car form) 'byte-obsolete-info))
        (let* ((fun (car form))
               (obsolete (get fun 'byte-obsolete-info)))
          (macroexp-warn-and-return
           (macroexp--obsolete-warning
            fun obsolete
            (if (symbolp (symbol-function fun))
                "alias" "macro"))
           new-form 'obsolete))
      new-form)))