diff options
Diffstat (limited to 'lisp/emacs-lisp')
-rw-r--r-- | lisp/emacs-lisp/cl-extra.el | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/lisp/emacs-lisp/cl-extra.el b/lisp/emacs-lisp/cl-extra.el index eabba27d229..13036544825 100644 --- a/lisp/emacs-lisp/cl-extra.el +++ b/lisp/emacs-lisp/cl-extra.el @@ -897,8 +897,14 @@ Outputs to the current buffer." (list (cl-prin1-to-string (cl--slot-descriptor-name slot)) (cl-prin1-to-string (cl--slot-descriptor-type slot)) (cl-prin1-to-string (cl--slot-descriptor-initform slot)) - (let ((doc (plist-get (cl--slot-descriptor-props slot) - :documentation))) + (let ((doc + ;; The props are an alist in a `defclass', + ;; but a plist when describing a `cl-defstruct'. + (if (consp (car (cl--slot-descriptor-props slot))) + (alist-get :documentation + (cl--slot-descriptor-props slot)) + (plist-get (cl--slot-descriptor-props slot) + :documentation)))) (if (not doc) "" (setq has-doc t) (substitute-command-keys doc))))) |