X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=tests%2Ftype.pure.lisp;h=8b4d624e8116643edb27d55e51441cb364ea54a6;hb=424a1607654dc2fab254b23aa494a7fb50d4f6e0;hp=a7708352c2f0f28161bd5112a967880c6564202e;hpb=ab6263cd50869be699c7afea271d626f83a5a27d;p=sbcl.git diff --git a/tests/type.pure.lisp b/tests/type.pure.lisp index a770835..8b4d624 100644 --- a/tests/type.pure.lisp +++ b/tests/type.pure.lisp @@ -33,7 +33,8 @@ ;;; SINGLE-FLOAT DOUBLE-FLOAT RATIONAL)". We ideally want all of the ;;; defined-by-ANSI types to unparse as themselves or at least ;;; something similar (e.g. CHARACTER can unparse to BASE-CHAR, since -;;; the types are equivalent in current SBCL). +;;; the types are equivalent in current SBCL, and EXTENDED-CHAR can +;;; unparse to NIL, since there are no EXTENDED-CHARs currently). (let ((standard-types '(;; from table 4-2 in section 4.2.3 in the ;; CLHS. arithmetic-error @@ -117,17 +118,7 @@ error readtable two-way-stream - ;; This one's hard: (AND BASE-CHAR (NOT BASE-CHAR)) - ;; - ;; This is because it looks like - ;; (AND CHARACTER (NOT BASE-CHAR)) - ;; but CHARACTER is equivalent to - ;; BASE-CHAR. So if we fix intersection of - ;; obviously disjoint types and then do (the - ;; extended-char foo), we'll get back FOO is - ;; not a NIL. -- CSR, 2002-09-16. - ;; - ;; extended-char + extended-char real type-error file-error @@ -181,3 +172,12 @@ #+nil (assert (and (subtypep 'function '(function)) (subtypep '(function) 'function))) + +;;; Absent any exciting generalizations of |R, the type RATIONAL is +;;; partitioned by RATIO and INTEGER. Ensure that the type system +;;; knows about this. [ the type system is permitted to return NIL, +;;; NIL for these, so if future maintenance breaks these tests that +;;; way, that's fine. What the SUBTYPEP calls are _not_ allowed to +;;; return is NIL, T, because that's completely wrong. ] +(assert (subtypep '(or integer ratio) 'rational)) +(assert (subtypep 'rational '(or integer ratio)))