X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fir1tran.lisp;h=d09ddcef5aaf04779c5a63d8dd8c31aa85135ef9;hb=0cff6b0b7e6f1d148586f81f620b9c86ed217caa;hp=e78d86b14f96692e5484cf7e59b9aeff76954f7f;hpb=6822034325136cde4e14773c83c3769b42721306;p=sbcl.git diff --git a/src/compiler/ir1tran.lisp b/src/compiler/ir1tran.lisp index e78d86b..d09ddce 100644 --- a/src/compiler/ir1tran.lisp +++ b/src/compiler/ir1tran.lisp @@ -87,6 +87,12 @@ (eq (defined-fun-inlinep fun) :notinline) (eq (info :function :inlinep name) :notinline)))) +;; This will get redefined in PCL boot. +(declaim (notinline update-info-for-gf)) +(defun maybe-update-info-for-gf (name) + (declare (ignorable name)) + (values)) + ;;; Return a GLOBAL-VAR structure usable for referencing the global ;;; function NAME. (defun find-global-fun (name latep) @@ -112,11 +118,13 @@ :%source-name name :type (if (and (not latep) (or *derive-function-types* - (eq where :declared) + (member where '(:declared :defined-method)) (and (member name *fun-names-in-this-file* :test #'equal) (not (fun-lexically-notinline-p name))))) - (info :function :type name) + (progn + (maybe-update-info-for-gf name) + (info :function :type name)) (specifier-type 'function)) :defined-type (if (eq where :defined) (info :function :type name)