diff options
author | Andrea Corallo <akrl@sdf.org> | 2021-02-22 13:58:30 +0100 |
---|---|---|
committer | Andrea Corallo <akrl@sdf.org> | 2021-02-22 13:59:56 +0100 |
commit | d6227f6edcff7be05469e99da4ce541bfc474c3d (patch) | |
tree | fded45fd969f963c21295860dda09c81d09be87c /lisp/emacs-lisp/comp-cstr.el | |
parent | da4da88c76465e30ce974383b182f191553b470a (diff) | |
download | emacs-d6227f6edcff7be05469e99da4ce541bfc474c3d.tar.gz emacs-d6227f6edcff7be05469e99da4ce541bfc474c3d.tar.bz2 emacs-d6227f6edcff7be05469e99da4ce541bfc474c3d.zip |
* Fix union constraint for mixed pos/neg constraints
* lisp/emacs-lisp/comp-cstr.el (comp-cstr-union-1-no-mem): Fix neg
type shadowing pos values.
* test/lisp/emacs-lisp/comp-cstr-tests.el
(comp-cstr-typespec-tests-alist): Add testcase.
* test/src/comp-tests.el (comp-tests-type-spec-tests): Fix testcase.
Diffstat (limited to 'lisp/emacs-lisp/comp-cstr.el')
-rw-r--r-- | lisp/emacs-lisp/comp-cstr.el | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/lisp/emacs-lisp/comp-cstr.el b/lisp/emacs-lisp/comp-cstr.el index 3c00b68d0f6..c294c53b6b0 100644 --- a/lisp/emacs-lisp/comp-cstr.el +++ b/lisp/emacs-lisp/comp-cstr.el @@ -597,6 +597,12 @@ DST is returned." (valset pos))) ;; Pos is a superset of neg. (give-up)) + ((cl-some (lambda (x) + (cl-some (lambda (y) + (comp-subtype-p y x)) + (mapcar #'type-of (valset pos)))) + (typeset neg)) + (give-up)) (t ;; pos is a subset or eq to neg (setf (valset neg) |