(make-global-var
:kind :global-function
:%source-name name
- :type (if (and (not latep)
- (or *derive-function-types*
- (member where '(:declared :defined-method))
- (and (member name *fun-names-in-this-file*
- :test #'equal)
- (not (fun-lexically-notinline-p name)))))
+ :type (if (or (eq where :declared)
+ (and (not latep)
+ (or *derive-function-types*
+ (eq where :defined-method)
+ (and (not (fun-lexically-notinline-p name))
+ (member name *fun-names-in-this-file*
+ :test #'equal)))))
(progn
(maybe-update-info-for-gf name)
(info :function :type name))
i)
i))))))
(assert (equal '(1 2 1) (funcall fun 1))))))
+
+;;; It used to be possible to confuse the compiler into
+;;; IR2-converting such a call to CONS
+(with-test (:name :late-bound-primitive)
+ (compile nil `(lambda ()
+ (funcall 'cons 1))))
;;; checkins which aren't released. (And occasionally for internal
;;; versions, especially for internal versions off the main CVS
;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
-"1.0.23.10"
+"1.0.23.11"