Fix up a theoretical bug in the COMPILE DERIVE-TYPE-OPTIMIZER
... '(VALUES FUNCTION BOOLEAN BOOLEAN), not 'FUNCTION
(why only a "theoretical" bug? Well, at present, SBCL's type
engine returns (VALUES FUNCTION BOOLEAN BOOLEAN) for
(VALUES-TYPE-INTERSECTION
'FUNCTION
'(VALUES (OR FUNCTION SYMBOL) BOOLEAN BOOLEAN))
so it DWIM. However, CMUCL doesn't (it returns the empty type
instead), which led to the discovery of this error by Raymond
Toy when he tried to port the optimizer.)
(defoptimizer (compile derive-type) ((nameoid function))
(when (csubtypep (continuation-type nameoid)
(specifier-type 'null))
- (specifier-type 'function)))
+ (values-specifier-type '(values function boolean boolean))))
;;; FIXME: Maybe also STREAM-ELEMENT-TYPE should be given some loving
;;; treatment along these lines? (See discussion in COERCE DERIVE-TYPE
;;; versions, especially for internal versions off the main CVS
;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
-"0.7.10.25"
+"0.7.10.26"