]> git.eshelyaron.com Git - emacs.git/commitdiff
Symplify type specifier (not t) as nil
authorAndrea Corallo <akrl@sdf.org>
Thu, 17 Dec 2020 17:01:10 +0000 (18:01 +0100)
committerAndrea Corallo <akrl@sdf.org>
Mon, 21 Dec 2020 19:22:03 +0000 (20:22 +0100)
* lisp/emacs-lisp/comp-cstr.el (comp-cstr-intersection-no-mem):
Add logic.
* 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 3f3f4f614516e82b2e18243b393cf97b54d43635..cd8f432412c3e0fafcea06673646754541bf04c2 100644 (file)
@@ -598,6 +598,15 @@ DST is returned."
                   (valset dst) (valset neg)
                   (range dst) (range neg)
                   (neg dst) t)
+
+            ;; (not t) => nil
+            (when (and (null (valset dst))
+                       (null (range dst))
+                       (neg dst)
+                       (equal '(t) (typeset dst)))
+              (setf (typeset dst) ()
+                    (neg dst) nil))
+
             (cl-return-from comp-cstr-intersection-no-mem dst))
 
           (when (cl-some
index 03bf78968f230e21218434725663f077528194b6..f7ea00e86f2a5640d39c0d52aa2d86dc6deb6521 100644 (file)
     ;; 77
     ((and (or symbol string) (or number marker)) . nil)
     ;; 78
-    ((and t t) . t))
+    ((and t t) . t)
+    ;; 80
+    ((and (or marker number) (integer 0 0)) . (integer 0 0))
+    ;; 81
+    ((and t (not t)) . nil))
   "Alist type specifier -> expected type specifier.")
 
 (defmacro comp-cstr-synthesize-tests ()