Function: cl-struct-slot-value--inliner
cl-struct-slot-value--inliner is a function defined in cl-macs.el.gz.
Signature
(cl-struct-slot-value--inliner INLINE--FORM STRUCT-TYPE SLOT-NAME INST)
Source Code
;; Defined in /usr/src/emacs/lisp/emacs-lisp/cl-macs.el.gz
;; Closure converted to defun by helpful.
(defun cl-struct-slot-value--inliner
(inline--form struct-type slot-name inst)
(ignore inline--form)
(catch 'inline--just-use
(let*
((exp struct-type)
(struct-type
(if
(macroexp-copyable-p exp)
exp
(make-symbol "struct-type")))
(body
(let*
((exp slot-name)
(slot-name
(if
(macroexp-copyable-p exp)
exp
(make-symbol "slot-name")))
(body
(let*
((exp inst)
(inst
(if
(macroexp-copyable-p exp)
exp
(make-symbol "inst")))
(body
(list 'progn
(list 'unless
(list 'cl-typep inst struct-type)
(list 'signal
(list 'quote 'wrong-type-argument)
(list 'list struct-type inst)))
(list 'if
(list 'eq
(list 'cl-struct-sequence-type struct-type)
(list 'quote 'list))
(list 'nth
(list 'cl-struct-slot-offset struct-type slot-name)
inst)
(list 'aref inst
(list 'cl-struct-slot-offset struct-type slot-name))))))
(if
(eq inst exp)
body
(macroexp-let*
(list
(list inst exp))
body)))))
(if
(eq slot-name exp)
body
(macroexp-let*
(list
(list slot-name exp))
body)))))
(if
(eq struct-type exp)
body
(macroexp-let*
(list
(list struct-type exp))
body)))))