X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=tests%2Fdeftype.impure.lisp;h=3432997cd85149120b4013b2cf470ecda572bda6;hb=8c6e2e85859766d2c4c6a272b952de2ebe467487;hp=b11b982a25aa1ec874a87e1cacae6ad030cf0071;hpb=aa1a5c6ea31c248587d78f62943ad749ea8fbe2f;p=sbcl.git diff --git a/tests/deftype.impure.lisp b/tests/deftype.impure.lisp index b11b982..3432997 100644 --- a/tests/deftype.impure.lisp +++ b/tests/deftype.impure.lisp @@ -37,4 +37,18 @@ (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)))))