X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;ds=inline;f=src%2Fpcl%2Fdocumentation.lisp;h=f1ab48b15374606564d61f2a90eb9ae2051801aa;hb=bb756e3d4b19c30d4a9cd4250b606c5969613ad9;hp=df24ea81ca2244087b23375110daf57797c2cfc7;hpb=a57db6f5ee029a4c9817ae239d7bbefd3fb8374e;p=sbcl.git diff --git a/src/pcl/documentation.lisp b/src/pcl/documentation.lisp index df24ea8..f1ab48b 100644 --- a/src/pcl/documentation.lisp +++ b/src/pcl/documentation.lisp @@ -144,8 +144,12 @@ (slot-value class 'documentation))))) (defmethod documentation ((x symbol) (doc-type (eql 'structure))) - (when (eq (info :type :kind x) :instance) - (values (info :type :documentation x)))) + (cond ((eq (info :type :kind x) :instance) + (values (info :type :documentation x))) + ((info :typed-structure :info x) + (values (info :typed-structure :documentation x))) + (t + (error "~S is not the name of a structure type." x)))) (defmethod (setf documentation) (new-value (x structure-class) @@ -178,9 +182,13 @@ (defmethod (setf documentation) (new-value (x symbol) (doc-type (eql 'structure))) - (unless (eq (info :type :kind x) :instance) - (error "~S is not the name of a structure type." x)) - (setf (info :type :documentation x) new-value)) + (cond ((eq (info :type :kind x) :instance) + (setf (info :type :documentation x) new-value)) + ((info :typed-structure :info x) + (setf (info :typed-structure :documentation x) new-value)) + (t + (error "~S is not the name of a structure type." x)))) + ;;; variables (defmethod documentation ((x symbol) (doc-type (eql 'variable)))