Fix printing of defclass documentation slots again

* lisp/emacs-lisp/cl-extra.el (cl--describe-class-slots): Fix
printing defclass slots, and retain printing of defstruct slots
(bug#30998 and bug#46662).
This commit is contained in:
Lars Ingebrigtsen 2021-06-24 20:13:08 +02:00
parent 8e6d6daacf
commit bf21aba533

View file

@ -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)))))