X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fproclaim.lisp;h=755467a6f618189d8d0da7f7a93191630ad067ce;hb=7f1e94ae961a198e00daf281eb1dc858e5b2dcc7;hp=d0231ce5a0c20ca14f3554b9cbbe024a92431b98;hpb=4fa1c71c7dfa5c6d361304321cc67069a6410694;p=sbcl.git diff --git a/src/compiler/proclaim.lisp b/src/compiler/proclaim.lisp index d0231ce..755467a 100644 --- a/src/compiler/proclaim.lisp +++ b/src/compiler/proclaim.lisp @@ -231,11 +231,18 @@ (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))))) - + (if (info :function :info name) + ;; Allow for tightening of known function types + (unless (csubtypep ctype old-type) + (cerror "Continue" + "~@" + name (type-specifier ctype) (type-specifier old-type))) + (#+sb-xc-host warn + #-sb-xc-host 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.