Source
(defcode-info-collector cl:defun (name lambda-list &body body)
(multiple-value-bind (lambda-list env)
(arnesi::walk-lambda-list lambda-list nil nil)
(multiple-value-bind (body docstring declarations)
(handler-bind ((arnesi::return-from-unknown-block
(lambda (c)
(declare (ignore c))
(invoke-restart 'arnesi::add-block))))
(arnesi::walk-implict-progn nil body env :docstring t :declare t))
(declare (ignore declarations))
(make-instance 'defun-descriptor
:name name
:lambda-list lambda-list
:body body
:docstring docstring))))
Source Context