Normalize cstrs for cache hint effectiveness and test stability

* lisp/emacs-lisp/comp-cstr.el (comp-normalize-valset)
	(comp-union-valsets, comp-intersection-valsets)
	(comp-normalize-typeset): New functions.
	(comp-union-typesets, comp-intersect-typesets)
	(comp-cstr-union-homogeneous-no-range, comp-cstr-union-1-no-mem):
	Update to return normalized results.
	* test/lisp/emacs-lisp/comp-cstr-tests.el
	(comp-cstr-typespec-tests-alist): Normalize expected type specifiers.
This commit is contained in:
Andrea Corallo 2020-12-12 10:50:32 +00:00
parent a6295d3150
commit 6286945396
2 changed files with 48 additions and 21 deletions

View file

@ -45,23 +45,23 @@
;; 2
((or string array) . array)
;; 3
((or symbol number) . (or symbol number))
((or symbol number) . (or number symbol))
;; 4
((or cons atom) . (or cons atom)) ;; SBCL return T
((or cons atom) . (or atom cons)) ;; SBCL return T
;; 5
((or integer number) . number)
;; 6
((or (or integer symbol) number) . (or symbol number))
((or (or integer symbol) number) . (or number symbol))
;; 7
((or (or integer symbol) (or number list)) . (or list symbol number))
((or (or integer symbol) (or number list)) . (or list number symbol))
;; 8
((or (or integer number) nil) . number)
;; 9
((member foo) . (member foo))
;; 10
((member foo bar) . (member foo bar))
((member foo bar) . (member bar foo))
;; 11
((or (member foo) (member bar)) . (member foo bar))
((or (member foo) (member bar)) . (member bar foo))
;; 12
((or (member foo) symbol) . symbol) ;; SBCL return (OR SYMBOL (MEMBER FOO))
;; 13