* 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.
(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
;; 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 ()