From 2d224286d05edd9791843dca0e1f46aeb499a6b4 Mon Sep 17 00:00:00 2001 From: wlott <wlott> Date: Fri, 11 May 1990 17:44:14 +0000 Subject: [PATCH] Rob added some stuff to keep inline functions that were let-converted (and therefore had the named type function instead of a function type) from breaking the compiler. --- compiler/ir1final.lisp | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/compiler/ir1final.lisp b/compiler/ir1final.lisp index 15422697a..2d1a5917d 100644 --- a/compiler/ir1final.lisp +++ b/compiler/ir1final.lisp @@ -71,27 +71,27 @@ (etypecase leaf (functional (let* ((where (info function where-from name)) -; (type (info function type name)) (dtype (leaf-type leaf)) (node (lambda-bind (main-entry leaf))) (*compiler-error-context* node)) (note-name-defined name :function) - (ecase where - (:assumed - (let ((approx-type (info function assumed-type name))) - (when approx-type - (valid-approximate-type approx-type dtype)))) - ((:declared :defined) -; ... - )) - - (when (and (eq (function-type-returns dtype) *empty-type*) - (policy node (>= safety brevity))) - (compiler-note "Function does not return.")) + (when (function-type-p dtype) + (ecase where + (:assumed + (let ((approx-type (info function assumed-type name))) + (when approx-type + (valid-approximate-type approx-type dtype)))) + ((:declared :defined) + )) + + (when (and (eq (function-type-returns dtype) *empty-type*) + (policy node (>= safety brevity))) + (compiler-note "Function does not return.")) + + (setf (info function type name) dtype) + (clear-info function assumed-type name)) (setf (info function kind name) :function) - (setf (info function where-from name) :defined) - (setf (info function type name) dtype) - (clear-info function assumed-type name))) + (setf (info function where-from name) :defined))) (global-var))) -- GitLab