;;; overconfident primitive type computation leading to bogus type
;;; checking.
-(let* ((form1 '(lambda (x)
- (declare (type (and condition function) x))
+(let* ((form1 '(lambda (x)
+ (declare (type (and condition function) x))
x))
(fun1 (compile nil form1))
- (form2 '(lambda (x)
- (declare (type (and standard-object function) x))
+ (form2 '(lambda (x)
+ (declare (type (and standard-object function) x))
x))
(fun2 (compile nil form2)))
(assert (raises-error? (funcall fun1 (make-condition 'error))))
(assert (raises-error? (funcall fun1 fun1)))
(assert (raises-error? (funcall fun2 fun2)))
(assert (eq (funcall fun2 #'print-object) #'print-object)))
+
+;;; LET* + VALUES declaration: while the declaration is a non-standard
+;;; and possibly a non-conforming extension, as long as we do support
+;;; it, we might as well get it right.
+;;;
+;;; Bug reported by Kaersten Poeck on sbcl-devel 20061023.
+(compile nil '(lambda () (let* () (declare (values list)))))