Simplify correctly (or (integer 1 1) (not (integer 1 1))) as t
* lisp/emacs-lisp/comp-cstr.el (comp-cstr-union-1-no-mem): Logic update. * test/lisp/emacs-lisp/comp-cstr-tests.el (comp-cstr-typespec-tests-alist): Add a test.
This commit is contained in:
parent
3540b1f167
commit
e0f20da6ec
2 changed files with 14 additions and 7 deletions
|
@ -474,12 +474,17 @@ DST is returned."
|
|||
(cl-nset-difference (valset neg) (valset pos)))))
|
||||
|
||||
;; Range propagation
|
||||
(setf (range neg)
|
||||
(when range
|
||||
(comp-range-negation
|
||||
(comp-range-union
|
||||
(comp-range-negation (range neg))
|
||||
(range pos)))))
|
||||
(when range
|
||||
;; Handle apart (or (integer 1 1) (not (integer 1 1)))
|
||||
;; like cases.
|
||||
(if (and (range pos) (range neg)
|
||||
(equal (range pos) (range neg)))
|
||||
(give-up)
|
||||
(setf (range neg)
|
||||
(comp-range-negation
|
||||
(comp-range-union
|
||||
(comp-range-negation (range neg))
|
||||
(range pos))))))
|
||||
|
||||
(if (comp-cstr-empty-p neg)
|
||||
(setf (typeset dst) (typeset pos)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue