Fix make-array transforms.
[sbcl.git] / tests / deftype.impure.lisp
index b11b982..3432997 100644 (file)
 (defstruct foo)
 (assert (progn (deftype foo () 'integer)
                (null (find-class 'foo nil))
-               t))
\ No newline at end of file
+               t))
+
+;; Ensure that DEFCLASS after DEFTYPE nukes the lambda-list.
+(deftype bar (x) `(integer ,x))
+(assert (equal '(x) (sb-int:info :type :lambda-list 'bar)))
+(defclass bar () ())
+(assert (not (sb-int:info :type :lambda-list 'bar)))
+
+;; Need to work with plain symbols as the body.
+(defconstant whatever 't)
+(deftype anything () whatever)
+(assert (typep 42 'anything))
+
+(with-test (:name :deftype-not-list-lambda-list)
+  (assert (raises-error? (eval `(deftype ,(gensym) non-list-argument)))))