X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fctype.lisp;h=8ec2cfc5d4f56be1cca4c9d4128cb0d5f3b466ac;hb=c3d4cd43d7cd8e0495dbb9c11fd9c121ea069a45;hp=3fb91d173db646da3fa5b97bda7d2cbc308f203e;hpb=a0a198faba322eccaf947862b59946aed99b2347;p=sbcl.git diff --git a/src/compiler/ctype.lisp b/src/compiler/ctype.lisp index 3fb91d1..8ec2cfc 100644 --- a/src/compiler/ctype.lisp +++ b/src/compiler/ctype.lisp @@ -672,7 +672,7 @@ (try-type-intersections (vars) (res) where)))) -;;; Check that Type doesn't specify any funny args, and do the +;;; Check that TYPE doesn't specify any funny args, and do the ;;; intersection. (defun find-lambda-types (lambda type where) (declare (type clambda lambda) (type fun-type type) (string where)) @@ -760,6 +760,17 @@ (derive-node-type ref type))))) t)))))) +(defun assert-global-function-definition-type (name fun) + (declare (type functional fun)) + (let ((type (info :function :type name)) + (where (info :function :where-from name))) + (when (eq where :declared) + (setf (leaf-type fun) type) + (assert-definition-type fun type + :unwinnage-fun #'compiler-note + :where "proclamation")))) + +;;;; (defun check-catch-tag-type (tag) (declare (type continuation tag)) (let ((ctype (continuation-type tag)))