1.0.43.57: better handling of derived function types
[sbcl.git] / src / compiler / ir1tran-lambda.lisp
index 93e739e..100c895 100644 (file)
                           :%source-name name
                           :where-from (if (eq where-from :declared)
                                           :declared
-                                          :defined)
+                                          :defined-here)
                           :type (if (eq :declared where-from)
                                     (leaf-type found)
                                     (if lp
     ;; old CMU CL comment:
     ;;   If there is a type from a previous definition, blast it,
     ;;   since it is obsolete.
-    (when (and defined-fun
-               (eq (leaf-where-from defined-fun) :defined))
+    (when (and defined-fun (neq :declared (leaf-where-from defined-fun)))
       (setf (leaf-type defined-fun)
             ;; FIXME: If this is a block compilation thing, shouldn't
             ;; we be setting the type to the full derived type for the