X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=tests%2Ftype.pure.lisp;h=1e0b27a442ce824178fe7365643a32426d65c268;hb=5c6b1ed3209c4cbd7ad7a97719c4518264a87b22;hp=46a4bd643d3f20fa183d86a80a4f50b41450a5c3;hpb=e541b374b64104a47bb5e547778fbc81d5e0e0cb;p=sbcl.git diff --git a/tests/type.pure.lisp b/tests/type.pure.lisp index 46a4bd6..1e0b27a 100644 --- a/tests/type.pure.lisp +++ b/tests/type.pure.lisp @@ -377,6 +377,22 @@ ACTUAL ~D DERIVED ~D~%" (check-type (car a) integer)) (assert (eql (car a) 1)))) - - - +;;; The VOP FIXNUMP/UNSIGNED-BYTE-64 was broken on x86-64, failing +;;; the first ASSERT below. The second ASSERT takes care that the fix +;;; doesn't overshoot the mark. +(with-test (:name (:typep :fixnum-if-unsigned-byte)) + (let ((f (compile nil + (lambda (x) + (declare (type (unsigned-byte #.sb-vm:n-word-bits) x)) + (typep x (quote fixnum)))))) + (assert (not (funcall f (1+ most-positive-fixnum)))) + (assert (funcall f most-positive-fixnum)))) + +(with-test (:name (:typep :member-uses-eql)) + (assert (eval '(typep 1/3 '(member 1/3 nil)))) + (assert (eval '(typep 1.0 '(member 1.0 t)))) + (assert (eval '(typep #c(1.1 1.2) '(member #c(1.1 1.2))))) + (assert (eval '(typep #c(1 1) '(member #c(1 1))))) + (let ((bignum1 (+ 12 most-positive-fixnum)) + (bignum2 (- (+ 15 most-positive-fixnum) 3))) + (assert (eval `(typep ,bignum1 '(member ,bignum2))))))