X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fir1final.lisp;h=50e9cc20800f9de2aa6d8cd666b8313cefee6e97;hb=683874b497a99cd2c11b6c5d9b47e2785b1ede5f;hp=2eab2758622f4da37d320fe161450f866cb5ccdd;hpb=0a82f2db352cc348d2107a882e50af222ff97ed3;p=sbcl.git diff --git a/src/compiler/ir1final.lisp b/src/compiler/ir1final.lisp index 2eab275..50e9cc2 100644 --- a/src/compiler/ir1final.lisp +++ b/src/compiler/ir1final.lisp @@ -56,37 +56,37 @@ ;;; also delete the FUNCTIONAL from *FREE-FUNCTIONS* to eliminate the ;;; possibility that new references might be converted to it. (defun finalize-xep-definition (fun) - (let* ((leaf (functional-entry-function fun)) - (name (leaf-name leaf)) + (let* ((leaf (functional-entry-fun fun)) (defined-ftype (definition-type leaf))) (setf (leaf-type leaf) defined-ftype) - (when (legal-fun-name-p name) - (let* ((where (info :function :where-from name)) - (*compiler-error-context* (lambda-bind (main-entry leaf))) - (global-def (gethash name *free-functions*)) - (global-p (defined-function-p global-def))) - (note-name-defined name :function) - (when global-p - (remhash name *free-functions*)) - (ecase where - (:assumed - (let ((approx-type (info :function :assumed-type name))) - (when (and approx-type (fun-type-p defined-ftype)) - (valid-approximate-type approx-type defined-ftype)) - (setf (info :function :type name) defined-ftype) - (setf (info :function :assumed-type name) nil)) - (setf (info :function :where-from name) :defined)) - (:declared - (let ((declared-ftype (info :function :type name))) - (unless (defined-ftype-matches-declared-ftype-p - defined-ftype declared-ftype) - (note-lossage "~@" - (type-specifier declared-ftype) - (type-specifier defined-ftype))))) - (:defined - (when global-p - (setf (info :function :type name) defined-ftype))))))) + (type-specifier declared-ftype) + (type-specifier defined-ftype))))) + (:defined + (when global-p + (setf (info :function :type source-name) defined-ftype)))))))) (values)) ;;; Find all calls in COMPONENT to assumed functions and update the @@ -95,8 +95,8 @@ ;;; types. (defun note-assumed-types (component name var) (when (and (eq (leaf-where-from var) :assumed) - (not (and (defined-function-p var) - (eq (defined-function-inlinep var) :notinline))) + (not (and (defined-fun-p var) + (eq (defined-fun-inlinep var) :notinline))) (eq (info :function :where-from name) :assumed) (eq (info :function :kind name) :function)) (let ((atype (info :function :assumed-type name)))