- (let* ((where (info :function :where-from source-name))
- (*compiler-error-context* (lambda-bind (main-entry leaf)))
- (global-def (gethash source-name *free-funs*))
- (global-p (defined-fun-p global-def)))
- (note-name-defined source-name :function)
- (when global-p
- (remhash source-name *free-funs*))
- (ecase where
- (:assumed
- (let ((approx-type (info :function :assumed-type source-name)))
- (when (and approx-type (fun-type-p defined-ftype))
- (valid-approximate-type approx-type defined-ftype))
- (setf (info :function :type source-name) defined-ftype)
- (setf (info :function :assumed-type source-name) nil))
- (setf (info :function :where-from source-name) :defined))
- (:declared
- (let ((declared-ftype (info :function :type source-name)))
- (unless (defined-ftype-matches-declared-ftype-p
- defined-ftype declared-ftype)
- (compiler-style-warn
+ (let* ((where (info :function :where-from source-name))
+ (*compiler-error-context* (lambda-bind (main-entry leaf)))
+ (global-def (gethash source-name *free-funs*))
+ (global-p (defined-fun-p global-def)))
+ (note-name-defined source-name :function)
+ (when global-p
+ (remhash source-name *free-funs*))
+ (ecase where
+ (:assumed
+ (let ((approx-type (info :function :assumed-type source-name)))
+ (when (and approx-type (fun-type-p defined-ftype))
+ (valid-approximate-type approx-type defined-ftype))
+ (setf (info :function :type source-name) defined-ftype)
+ (setf (info :function :assumed-type source-name) nil))
+ (setf (info :function :where-from source-name) :defined))
+ (:declared
+ (let ((declared-ftype (info :function :type source-name)))
+ (unless (defined-ftype-matches-declared-ftype-p
+ defined-ftype declared-ftype)
+ (compiler-style-warn