(multiple-value-bind (val2 win2) ,y
(if (and val1 val2)
(values t t)
- (values nil (or win1 win2))))))))
+ (values nil (and win2 (not val2)))))))))
(3and (values-subtypep (fun-type-returns type1)
(fun-type-returns type2))
(cond ((fun-type-wild-args type2) (values t t))
((fun-type-wild-args type1) (values nil t))
- ((not (or (fun-type-simple-p type1)
- (fun-type-simple-p type2)))
+ ((not (and (fun-type-simple-p type1)
+ (fun-type-simple-p type2)))
(values nil nil))
(t (multiple-value-bind (min1 max1) (fun-type-nargs type1)
(multiple-value-bind (min2 max2) (fun-type-nargs type2)
;;; signalled an error on this expression.
(subtypep '(function (fixnum) (values package boolean))
'(function (t) (values package boolean)))
+
+;;; bug reported by Valtteri Vuorik
+(compile nil '(lambda () (member (char "foo" 0) '(#\. #\/) :test #'char=)))
+(assert (not (equal (multiple-value-list
+ (subtypep '(function ()) '(function (&rest t))))
+ '(nil t))))
+(assert (not (equal (multiple-value-list
+ (subtypep '(function (&rest t)) '(function ())))
+ '(t t))))
;;; versions, especially for internal versions off the main CVS
;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
-"0.7.9.63"
+"0.7.9.64"