]> git.eshelyaron.com Git - emacs.git/commitdiff
Symplify (not t) => nil and (not nil) => t
authorAndrea Corallo <akrl@sdf.org>
Tue, 22 Dec 2020 19:39:24 +0000 (20:39 +0100)
committerAndrea Corallo <akrl@sdf.org>
Thu, 24 Dec 2020 14:36:46 +0000 (15:36 +0100)
* lisp/emacs-lisp/comp-cstr.el (comp-cstr-negation): Symplify (not
t) => nil and (not nil) => t.
* test/lisp/emacs-lisp/comp-cstr-tests.el
(comp-cstr-typespec-tests-alist): Add two tests.

lisp/emacs-lisp/comp-cstr.el
test/lisp/emacs-lisp/comp-cstr-tests.el

index 8b5639c8a4dd314fa60ff36ae6a6cac5e496e8ad..19905950b5a57cc075e05d0c4f72156dff1f08c4 100644 (file)
@@ -695,10 +695,27 @@ DST is returned."
   "Negate SRC setting the result in DST.
 DST is returned."
   (with-comp-cstr-accessors
-    (setf (typeset dst) (typeset src)
-          (valset dst) (valset src)
-          (range dst) (range src)
-          (neg dst) (not (neg src)))
+    (cond
+     ((and (null (valset src))
+           (null (range src))
+           (null (neg src))
+           (equal (typeset src) '(t)))
+      (setf (typeset dst) ()
+            (valset dst) ()
+            (range dst) nil
+            (neg dst) nil))
+     ((and (null (valset src))
+           (null (range src))
+           (null (neg src))
+           (null (typeset src)))
+      (setf (typeset dst) '(t)
+            (valset dst) ()
+            (range dst) nil
+            (neg dst) nil))
+     (t (setf (typeset dst) (typeset src)
+              (valset dst) (valset src)
+              (range dst) (range src)
+              (neg dst) (not (neg src)))))
     dst))
 
 (defun comp-cstr-value-negation (dst src)
index 834f4401d9ff1a789b82073f46218b1a9104691b..1e1376b363b9ddff8bdb886339f33cf0cd2648db 100644 (file)
       ;; 81
       ((and t (not t)) . nil)
       ;; 82
-      ((or (integer 1 1) (not (integer 1 1))) . t))
+      ((or (integer 1 1) (not (integer 1 1))) . t)
+      ;; 83
+      ((not t) . nil)
+      ;; 84
+      ((not nil) . t))
     "Alist type specifier -> expected type specifier."))
 
 (defmacro comp-cstr-synthesize-tests ()