X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fproclaim.lisp;h=8a616d003d1d2c509c9277d3c76390f2edc526b4;hb=4eb1a6d3ad2b7dcc19ac0ec979a1eb1eb049659a;hp=3bedcb539461ecb03f5a6d8c08e98d7739e76804;hpb=416152f084604094445a758ff399871132dff2bd;p=sbcl.git diff --git a/src/compiler/proclaim.lisp b/src/compiler/proclaim.lisp index 3bedcb5..8a616d0 100644 --- a/src/compiler/proclaim.lisp +++ b/src/compiler/proclaim.lisp @@ -81,6 +81,8 @@ decl-spec))))) (defun sb!xc:proclaim (raw-form) + #+sb-xc (/show0 "entering PROCLAIM, RAW-FORM=..") + #+sb-xc (/hexstr raw-form) (let* ((form (canonized-decl-spec raw-form)) (kind (first form)) (args (rest form))) @@ -151,12 +153,12 @@ ;; Now references to this function shouldn't be warned ;; about as undefined, since even if we haven't seen a - ;; definition yet, we know one is planned. (But if this - ;; function name was already declared as a structure - ;; accessor, then that was already been taken care of.) - (unless (info :function :accessor-for name) - (proclaim-as-function-name name) - (note-name-defined name :function)) + ;; definition yet, we know one is planned. + ;; + ;; Other consequences of we-know-you're-a-function-now + ;; are appropriate too, e.g. any MACRO-FUNCTION goes away. + (proclaim-as-fun-name name) + (note-name-defined name :function) ;; the actual type declaration (setf (info :function :type name) type @@ -175,9 +177,7 @@ (setq *policy* (process-optimize-decl form *policy*))) ((inline notinline maybe-inline) (dolist (name args) - ;; (CMU CL did (PROCLAIM-AS-FUNCTION-NAME NAME) here, but that - ;; seems more likely to surprise the user than to help him, so - ;; we don't do it.) + (proclaim-as-fun-name name) ; since implicitly it is a function (setf (info :function :inlinep name) (ecase kind (inline :inline) @@ -193,4 +193,5 @@ (t (unless (info :declaration :recognized kind) (compiler-warning "unrecognized declaration ~S" raw-form))))) + #+sb-xc (/show0 "returning from PROCLAIM") (values))