1.0.24.19: COMPILE-TIME reports timings at millisecond accuracy
[sbcl.git] / src / compiler / ir1tran.lisp
index d09ddce..ca8904d 100644 (file)
     (make-global-var
      :kind :global-function
      :%source-name name
-     :type (if (and (not latep)
-                    (or *derive-function-types*
-                        (member where '(:declared :defined-method))
-                        (and (member name *fun-names-in-this-file*
-                                     :test #'equal)
-                             (not (fun-lexically-notinline-p name)))))
+     :type (if (or (eq where :declared)
+                   (and (not latep)
+                        (or *derive-function-types*
+                            (eq where :defined-method)
+                            (and (not (fun-lexically-notinline-p name))
+                                 (member name *fun-names-in-this-file*
+                                         :test #'equal)))))
                (progn
                  (maybe-update-info-for-gf name)
                  (info :function :type name))
                                  (type-specifier old-type)
                                  (type-specifier type)
                                  var-name))))
-                            (bound-var (setf (leaf-type bound-var) int))
+                            (bound-var
+                             (setf (leaf-type bound-var) int
+                                   (leaf-where-from bound-var) :declared))
                             (t
                              (restr (cons var int)))))))
                (process-var var bound-var)