Function: byte-run--set-compiler-macro
byte-run--set-compiler-macro is a byte-compiled function defined in
byte-run.el.gz.
Signature
(byte-run--set-compiler-macro F ARGS COMPILER-FUNCTION)
Source Code
;; Defined in /usr/src/emacs/lisp/emacs-lisp/byte-run.el.gz
(defalias 'byte-run--set-compiler-macro
#'(lambda (f args compiler-function)
(if (not (eq (car-safe compiler-function) 'lambda))
`(eval-and-compile
(function-put ',f 'compiler-macro #',compiler-function))
(let ((cfname (intern (concat (symbol-name f) "--anon-cmacro")))
;; Avoid cadr/cddr so we can use `compiler-macro' before
;; defining cadr/cddr.
(data (cdr compiler-function)))
`(progn
(eval-and-compile
(function-put ',f 'compiler-macro #',cfname))
;; Don't autoload the compiler-macro itself, since the
;; macroexpander will find this file via `f's autoload,
;; if needed.
:autoload-end
(eval-and-compile
(defun ,cfname (,@(car data) ,@args)
(ignore ,@(delq '&rest (delq '&optional (copy-sequence args))))
,@(cdr data))))))))