summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/emacs-lisp')
-rw-r--r--lisp/emacs-lisp/cl-extra.el10
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)))))