X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;ds=inline;f=tests%2Fdeftype.impure.lisp;h=ee43d3bc5cf906144e73d72a722bf36038ffa091;hb=9d40fd46df9f542c2271d939002400aafb0c9c30;hp=55a133269c79caf37168c56bba05a14ac4f7cb04;hpb=175c318c892b0627b36fa3c4db66f59680242204;p=sbcl.git diff --git a/tests/deftype.impure.lisp b/tests/deftype.impure.lisp index 55a1332..ee43d3b 100644 --- a/tests/deftype.impure.lisp +++ b/tests/deftype.impure.lisp @@ -27,3 +27,20 @@ (assert (typep 1 'key)) (assert (typep 1 'key-singleton)) +;;; empty body +(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)))