(let* ((specifier (continuation-value type))
(result-typeoid (careful-specifier-type specifier)))
(cond
+ ((null result-typeoid) nil)
((csubtypep result-typeoid (specifier-type 'number))
;; the difficult case: we have to cope with ANSI 12.1.5.3
;; Rule of Canonical Representation for Complex Rationals,
(assert (equal (bug223-int 4) '(ext int 3)))
(bug223-wrap)
(assert (equal (bug223-int 4) '(ext ext int 2)))
-
+\f
+;;; COERCE got its own DEFOPTIMIZER which has to reimplement most of
+;;; SPECIFIER-TYPE-NTH-ARG. For a while, an illegal type would throw
+;;; you into the debugger on compilation.
+(defun coerce-defopt (x)
+ ;; illegal, but should be compilable.
+ (coerce x '(values t)))
+(assert (null (ignore-errors (coerce-defopt 3))))
\f
;;;; tests not in the problem domain, but of the consistency of the
;;;; compiler machinery itself
;;; versions, especially for internal versions off the main CVS
;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
-"0.7.10.28"
+"0.7.10.29"