- (let
- ((symbs nil))
- (do-external-symbols (symb pkg) (push symb symbs))
- (setf symbs (sort symbs #'string< :key #'symbol-name))
- (remove :success
- (mapcar
- (lambda (symb)
- (handler-case
- (progn
- (docgen-func:doc->ast symb)
- :success)
- (validation-failure (v) (list :failure :msg (validation-failure-msg v)))))
- symbs))))
+ (macrolet
+ ((with-success-check (&rest f)
+ `(handler-case
+ (progn ,@f :success)
+ (validation-failure (v) (list :failure :msg (validation-failure-msg v))))))
+ (let
+ ((symbs nil))
+ (do-external-symbols (symb pkg) (push symb symbs))
+ (setf symbs (sort symbs #'string< :key #'symbol-name))
+ (remove :success
+ (append
+ (list (with-success-check (docgen-pkg:doc->ast pkg)))
+ (mapcar
+ (lambda (symb) (with-success-check (docgen-func:doc->ast symb)))
+ symbs))))))