Function: help-fns--compiler-macro

help-fns--compiler-macro is a byte-compiled function defined in help-fns.el.gz.

Signature

(help-fns--compiler-macro FUNCTION)

Source Code

;; Defined in /usr/src/emacs/lisp/help-fns.el.gz
(defun help-fns--compiler-macro (function)
  (pcase-dolist (`(,type . ,handler)
                 (list (cons "compiler macro"
                             (function-get function 'compiler-macro))
                       (cons (substitute-command-keys "`byte-compile' property")
                             (function-get function 'byte-compile))
                       (cons "byte-code optimizer"
                             (function-get function 'byte-optimizer))))
    (when handler
      (if (bolp)
          (insert "  This function has a ")
        (insert " and a "))
      (insert type)
      (if (symbolp handler)
          (progn
            (insert (format-message " `%s'" handler))
            (save-excursion
              (re-search-backward (substitute-command-keys "`\\([^`']+\\)'"))
              (help-xref-button 1 'help-function handler)))
        ;; FIXME: Obsolete since 24.4.
        (let ((lib (get function 'compiler-macro-file)))
          (when (stringp lib)
            (insert (format-message " in `%s'" lib))
            (save-excursion
              (re-search-backward (substitute-command-keys "`\\([^`']+\\)'"))
              (help-xref-button 1 'help-function-cmacro function lib)))))))
  (unless (bolp)
    (insert ".  See "
            (buttonize "the manual"
                       (lambda (_) (info "(elisp)Advice and Byte Code")))
            " for details.\n")
    (save-restriction
      (let ((fill-prefix "    "))
        (narrow-to-region (line-beginning-position -1) (point))
        (fill-region (point-min) (point-max)))
      (goto-char (point-max)))))