+ (ecase (info :function :where-from name)
+ (:assumed
+ (setf (info :function :where-from name) :defined)
+ (setf (info :function :type name)
+ (extract-function-type def))
+ (when (info :function :assumed-type name)
+ (setf (info :function :assumed-type name) nil)))
+ (:declared)
+ (:defined
+ (setf (info :function :type name)
+ (extract-function-type def))
+ ;; We shouldn't need to clear this here because it should be clear
+ ;; already (cleared when the last definition was processed).
+ (aver (null (info :function :assumed-type name)))))