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 inlining clojure--make-form.

Source Code

;; Defined in ~/.emacs.d/elpa/clojure-mode-20261103.1226/clojure-mode.el
;; Closure converted to defun by helpful.
(defun clojure--make-form--cmacro
    (cl-whole &rest --cl-rest--)
  "compiler-macro for inlining `clojure--make-form'.\n\n\\(fn CL-WHOLE &cl-quote &key TYPE START END CHILDREN NAME NAMESPACE META-START)"
  (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)))))