1.0.29.52: small UCD optimizations and related cleanups
[sbcl.git] / tests / compiler.pure.lisp
index db2bfc4..801db54 100644 (file)
                                           :initial-element x)))
                   10
                   #c(1.0 2.0)))))
+
+(with-test (:name :regression-1.0.28.21)
+  (let ((fun (compile nil `(lambda (x) (typep x '(simple-array * 1))))))
+    (assert (funcall fun (vector 1 2 3)))
+    (assert (funcall fun "abc"))
+    (assert (not (funcall fun (make-array '(2 2)))))))
+
+(with-test (:name :no-silly-compiler-notes-from-character-function)
+  (let (current)
+    (handler-bind ((compiler-note (lambda (e) (error "~S: ~A" current e))))
+      (dolist (name '(char-code char-int character char-name standard-char-p
+                      graphic-char-p alpha-char-p upper-case-p lower-case-p
+                      both-case-p digit-char-p alphanumericp digit-char-p))
+        (setf current name)
+        (compile nil `(lambda (x)
+                        (declare (character x) (optimize speed))
+                        (,name x))))
+      (dolist (name '(char= char/= char< char> char<= char>= char-equal
+                      char-not-equal char-lessp char-greaterp char-not-greaterp
+                      char-not-lessp))
+        (setf current name)
+        (compile nil `(lambda (x y)
+                        (declare (character x y) (optimize speed))
+                        (,name x y)))))))