X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Finfo-functions.lisp;h=b4f3c2e17386581f59c901266ec0e76949e11be0;hb=e511ed14d4a20cb9de2523f052b0f23a1dde1115;hp=8d51a9746343cc7a66709d8ec0c7a7c7c51ebfa5;hpb=e38cf29945f9ff0cfbf614c0c216be60e2515175;p=sbcl.git diff --git a/src/compiler/info-functions.lisp b/src/compiler/info-functions.lisp index 8d51a97..b4f3c2e 100644 --- a/src/compiler/info-functions.lisp +++ b/src/compiler/info-functions.lisp @@ -134,9 +134,17 @@ ;; (Note that the following test on INFO catches KEYWORDs as well as ;; explicitly DEFCONSTANT symbols.) (symbol (eq (info :variable :kind object) :constant)) - (list (eq (car object) 'quote)) + (list (and (eq (car object) 'quote) + (consp (cdr object)))) (t t))) +(defun constant-form-value (form) + (typecase form + (symbol (info :variable :constant-value form)) + ((cons (eql quote) cons) + (second form)) + (t form))) + (declaim (ftype (function (symbol &optional (or null sb!c::lexenv))) sb!xc:macro-function)) (defun sb!xc:macro-function (symbol &optional env) #!+sb-doc @@ -250,7 +258,7 @@ (typecase x (structure-class (values (info :type :documentation (class-name x)))) (t (and (typep x 'symbol) (values (info :type :documentation x)))))) - (setf (info :setf :documentation x)) + (setf (values (info :setf :documentation x))) ((t) (typecase x (function (%fun-doc x))