Function: clojure--make-form--cmacro

clojure--make-form--cmacro is a function defined in clojure-mode.el.

Signature

(clojure--make-form--cmacro CL-WHOLE &cl-quote &key TYPE START END CHILDREN NAME NAMESPACE META-START)

Documentation

compiler-macro for clojure--make-form.

Source Code

;; Defined in ~/.emacs.d/elpa/clojure-mode-20261103.1226/clojure-mode.el
;; Could not find source code, showing raw function object.
#[(cl-whole &rest --cl-rest--)
  ((let*
       ((type (car (cdr (plist-member --cl-rest-- ':type))))
	(start (car (cdr (plist-member --cl-rest-- ':start))))
	(end (car (cdr (plist-member --cl-rest-- ':end))))
	(children (car (cdr (plist-member --cl-rest-- ':children))))
	(name (car (cdr (plist-member --cl-rest-- ':name))))
	(namespace (car (cdr (plist-member --cl-rest-- ':namespace))))
	(meta-start
	 (car (cdr (plist-member --cl-rest-- ':meta-start)))))
     (progn
       (let ((--cl-keys-- --cl-rest--))
	 (while --cl-keys--
	   (cond
	    ((memq (car --cl-keys--)
		   '(:type :start :end :children :name :namespace
			   :meta-start :allow-other-keys))
	     (unless (cdr --cl-keys--)
	       (error "Missing argument for %s" (car --cl-keys--)))
	     (setq --cl-keys-- (cdr (cdr --cl-keys--))))
	    ((car (cdr (memq ':allow-other-keys --cl-rest--)))
	     (setq --cl-keys-- nil))
	    (t
	     (error
	      "Keyword argument %S not one of (:type :start :end :children :name :namespace :meta-start)"
	      (car --cl-keys--))))))
       (cl-block clojure--make-form--cmacro
	 (cl--defsubst-expand
	  '(type start end children name namespace meta-start)
	  '(cl-block clojure--make-form
	     (record 'clojure--form type start end children name
		     namespace meta-start))
	  nil cl-whole nil type start end children name namespace
	  meta-start)))))
  (cl-struct-clojure--form-tags) nil
  "compiler-macro for `clojure--make-form'.\n\n(fn CL-WHOLE &cl-quote &key TYPE START END CHILDREN NAME NAMESPACE META-START)"]