[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
master 4e1e0b9: Have `comp-cstr-intersection-no-mem' intersect pos neg v
From: |
Andrea Corallo |
Subject: |
master 4e1e0b9: Have `comp-cstr-intersection-no-mem' intersect pos neg value sets |
Date: |
Tue, 27 Apr 2021 16:58:55 -0400 (EDT) |
branch: master
commit 4e1e0b9decfa2c8cb90b91d619ca078412513ba5
Author: Andrea Corallo <akrl@sdf.org>
Commit: Andrea Corallo <akrl@sdf.org>
Have `comp-cstr-intersection-no-mem' intersect pos neg value sets
* lisp/emacs-lisp/comp-cstr.el (comp-cstr-intersection-no-mem):
intersect pos and neg value sets
* test/lisp/emacs-lisp/comp-cstr-tests.el
(comp-cstr-typespec-tests-alist): Add two tests and fix some
test number.
---
lisp/emacs-lisp/comp-cstr.el | 4 +++-
test/lisp/emacs-lisp/comp-cstr-tests.el | 20 ++++++++++++--------
2 files changed, 15 insertions(+), 9 deletions(-)
diff --git a/lisp/emacs-lisp/comp-cstr.el b/lisp/emacs-lisp/comp-cstr.el
index 2a50ceb..73b78a3 100644
--- a/lisp/emacs-lisp/comp-cstr.el
+++ b/lisp/emacs-lisp/comp-cstr.el
@@ -790,7 +790,9 @@ Non memoized version of `comp-cstr-intersection-no-mem'."
(setf (range pos)
(comp-range-intersection (range pos)
- (comp-range-negation (range neg))))
+ (comp-range-negation (range neg)))
+ (valset pos)
+ (cl-set-difference (valset pos) (valset neg)))
;; Return a non negated form.
(setf (typeset dst) (typeset pos)
diff --git a/test/lisp/emacs-lisp/comp-cstr-tests.el
b/test/lisp/emacs-lisp/comp-cstr-tests.el
index 2e46285..59e1b69 100644
--- a/test/lisp/emacs-lisp/comp-cstr-tests.el
+++ b/test/lisp/emacs-lisp/comp-cstr-tests.el
@@ -198,22 +198,26 @@
((and (or symbol string) (or number marker)) . nil)
;; 78
((and t t) . t)
- ;; 80
+ ;; 79
((and (or marker number) (integer 0 0)) . (integer 0 0))
- ;; 81
+ ;; 80
((and t (not t)) . nil)
- ;; 82
+ ;; 81
((or (integer 1 1) (not (integer 1 1))) . t)
- ;; 83
+ ;; 82
((not t) . nil)
- ;; 84
+ ;; 83
((not nil) . t)
- ;; 85
+ ;; 84
((or (not string) t) . t)
- ;; 86
+ ;; 85
((or (not vector) sequence) . sequence)
+ ;; 86
+ ((or (not symbol) null) . t)
;; 87
- ((or (not symbol) null) . t))
+ ((and (or null integer) (not (or null integer))) . nil)
+ ;; 88
+ ((and (or (member a b c)) (not (or (member a b)))) . (member c)))
"Alist type specifier -> expected type specifier."))
(defmacro comp-cstr-synthesize-tests ()
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- master 4e1e0b9: Have `comp-cstr-intersection-no-mem' intersect pos neg value sets,
Andrea Corallo <=