X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fcompiler%2Fproclaim.lisp;h=6e7fc387617ae82201407f9966970cb98167c370;hb=ea6c9e2eb0f0a270d83e8c94c0daa934d1058f0f;hp=acaa660b7b7bbf51d003b0e48720e1e85286ac3e;hpb=79a8e51bf4b06a5bd57bc90233605f98fee3b041;p=sbcl.git diff --git a/src/compiler/proclaim.lisp b/src/compiler/proclaim.lisp index acaa660..6e7fc38 100644 --- a/src/compiler/proclaim.lisp +++ b/src/compiler/proclaim.lisp @@ -212,10 +212,10 @@ (when (type/= type old-type) ;; FIXME: changing to TYPE-PROCLAMATION-MISMATCH ;; broke late-proclaim.lisp. - (style-warn "The new TYPE proclamation~% ~S~@ - for ~S does not match the old TYPE~@ - proclamation ~S" - type name old-type)))) + (style-warn + "~@" + name (type-specifier type) (type-specifier old-type))))) (setf (info :variable :type name) type) (setf (info :variable :where-from name) :declared))) (push raw-form *queued-proclaims*))) @@ -226,31 +226,29 @@ (error "not a function type: ~S" (first args))) (dolist (name (rest args)) (with-single-package-locked-error - (:symbol name "globally declaring the ftype of ~A")) - (when (eq (info :function :where-from name) :declared) - (let ((old-type (info :function :type name))) - (when (type/= ctype old-type) - ;; FIXME: changing to FTYPE-PROCLAMATION-MISMATCH - ;; broke late-proclaim.lisp. - (style-warn - "new FTYPE proclamation~@ - ~S~@ - for ~S does not match old FTYPE proclamation~@ - ~S" - ctype name old-type)))) + (:symbol name "globally declaring the ftype of ~A") + (when (eq (info :function :where-from name) :declared) + (let ((old-type (info :function :type name))) + (when (type/= ctype old-type) + ;; FIXME: changing to FTYPE-PROCLAMATION-MISMATCH + ;; broke late-proclaim.lisp. + (style-warn + "~@" + name (type-specifier ctype) (type-specifier old-type))))) - ;; 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. - ;; - ;; 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) + ;; 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. + ;; + ;; 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) ctype - (info :function :where-from name) :declared))) + ;; the actual type declaration + (setf (info :function :type name) ctype + (info :function :where-from name) :declared)))) (push raw-form *queued-proclaims*))) (freeze-type (dolist (type args)