0.7.12.40:
authorChristophe Rhodes <csr21@cam.ac.uk>
Mon, 17 Feb 2003 15:44:59 +0000 (15:44 +0000)
committerChristophe Rhodes <csr21@cam.ac.uk>
Mon, 17 Feb 2003 15:44:59 +0000 (15:44 +0000)
Fixed a stupid bug in the NOT type translator, revealed by Paul
Dietz' suite:
... properly invert the bound: if it's a CONS, take the CAR;
... now we understand (NOT (RATIONAL (0) (10)) a bit better.

src/code/late-type.lisp
version.lisp-expr

index 1887261..a5e69ac 100644 (file)
           (modified-numeric-type
            not-type
            :low (let ((h (numeric-type-high not-type)))
-                  (if (consp h) h (list h)))
+                  (if (consp h) (car h) (list h)))
            :high nil))
          ((null (numeric-type-high not-type))
           (modified-numeric-type
            not-type
            :low nil
            :high (let ((l (numeric-type-low not-type)))
-                   (if (consp l) l (list l)))))
+                   (if (consp l) (car l) (list l)))))
          (t (type-union
              (modified-numeric-type
               not-type
               :low nil
               :high (let ((l (numeric-type-low not-type)))
-                      (if (consp l) l (list l))))
+                      (if (consp l) (car l) (list l))))
              (modified-numeric-type
               not-type
               :low (let ((h (numeric-type-high not-type)))
-                     (if (consp h) h (list h)))
+                     (if (consp h) (car h) (list h)))
               :high nil))))))
       ((intersection-type-p not-type)
        (apply #'type-union
index 9067b6a..ada9e8b 100644 (file)
@@ -18,4 +18,4 @@
 ;;; versions, especially for internal versions off the main CVS
 ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
 
-"0.7.12.39"
+"0.7.12.40"