X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=tests%2Fdeftype.impure.lisp;h=c2602648f86c6d3840368fcd822d766b4c4c23e8;hb=bd93f052f95371f613fb913c1cac2b01c8ff2a5c;hp=373f6d43548ed62a8aa76c0bf089da846302b99e;hpb=c0efffb03a7246a75ab6c8793da758556b213f0d;p=sbcl.git diff --git a/tests/deftype.impure.lisp b/tests/deftype.impure.lisp index 373f6d4..c260264 100644 --- a/tests/deftype.impure.lisp +++ b/tests/deftype.impure.lisp @@ -31,3 +31,21 @@ (deftype deftype-with-empty-body ()) (assert (subtypep 'deftype-with-empty-body nil)) (assert (subtypep nil 'deftype-with-empty-body)) + +;; Ensure that DEFTYPE can successfully replace a DEFSTRUCT type +;; definition. +(defstruct foo) +(assert (progn (deftype foo () 'integer) + (null (find-class 'foo nil)) + 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))