(get-info-value ,name
,(type-info-number info)
,@(when env-list-p `(,env-list)))
- (values (the ,(type-info-type info) ,value)
- ,foundp)))
+ (declare (type ,(type-info-type info) ,value))
+ (values ,value ,foundp)))
whole))
(defun (setf info) (new-value
class
:type :inline-expansion-designator
:type-spec (or list function)
:default nil)
-;;; Decode any raw (INFO :FUNCTION :INLINE-EXPANSION-DESIGNATOR FUN-NAME)
-;;; value into a lambda expression, or return NIL if there is none.
-(declaim (ftype (function ((or symbol cons)) list) fun-name-inline-expansion))
-(defun fun-name-inline-expansion (fun-name)
- (let ((info (info :function :inline-expansion-designator fun-name)))
- (if (functionp info)
- (funcall info)
- info)))
;;; This specifies whether this function may be expanded inline. If
;;; null, we don't care.
(in-package "SB!C")
\f
+;;;; internal utilities defined in terms of INFO
+
;;; Check that NAME is a valid function name, returning the name if
;;; OK, and signalling an error if not. In addition to checking for
;;; basic well-formedness, we also check that symbol names are not NIL
(setf (info :function :where-from name) :defined)
(if (info :function :assumed-type name)
(setf (info :function :assumed-type name) nil))))
+
+;;; Decode any raw (INFO :FUNCTION :INLINE-EXPANSION-DESIGNATOR FUN-NAME)
+;;; value into a lambda expression, or return NIL if there is none.
+(declaim (ftype (function ((or symbol cons)) list) fun-name-inline-expansion))
+(defun fun-name-inline-expansion (fun-name)
+ (let ((info (info :function :inline-expansion-designator fun-name)))
+ (if (functionp info)
+ (funcall info)
+ info)))
\f
;;;; ANSI Common Lisp functions which are defined in terms of the info
;;;; database
;;; for internal versions, especially for internal versions off the
;;; main CVS branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
-"0.pre7.69"
+"0.pre7.70"