nil))
nil)))
+(defun lvar-fun-debug-name (lvar)
+ (declare (type lvar lvar))
+ (let ((uses (lvar-uses lvar)))
+ (flet ((name1 (use)
+ (leaf-debug-name (ref-leaf use))))
+ (if (ref-p uses)
+ (name1 uses)
+ (mapcar #'name1 uses)))))
+
;;; Return the source name of a combination. (This is an idiom
;;; which was used in CMU CL. I gather it always works. -- WHN)
(defun combination-fun-source-name (combination)
(setf (node-reoptimize node) t)
(setf (block-reoptimize (node-block node)) t)
(reoptimize-component (node-component node) :maybe)))))))
+
+;;; True if LVAR is for 'NAME, or #'NAME (global, not local)
+(defun lvar-for-named-function (lvar name)
+ (if (constant-lvar-p lvar)
+ (eq name (lvar-value lvar))
+ (let ((use (lvar-uses lvar)))
+ (and (not (listp use))
+ (ref-p use)
+ (let ((leaf (ref-leaf use)))
+ (and (global-var-p leaf)
+ (eq :global-function (global-var-kind leaf))
+ (eq name (leaf-source-name leaf))))))))