Function: comp--union-typesets
comp--union-typesets is a byte-compiled function defined in
comp-cstr.el.gz.
Signature
(comp--union-typesets &rest TYPESETS)
Documentation
Union types present into TYPESETS.
Source Code
;; Defined in /usr/src/emacs/lisp/emacs-lisp/comp-cstr.el.gz
(defun comp--union-typesets (&rest typesets)
"Union types present into TYPESETS."
(or (gethash typesets (comp-cstr-ctxt-union-typesets-mem comp-ctxt))
(puthash typesets
(cl-loop
;; List of (TYPE . SUPERTYPES)", ordered from
;; "most general" to "least general"
with typess = (sort (mapcar #'comp-supertypes
(apply #'append typesets))
(lambda (l1 l2)
(<= (length l1) (length l2))))
with res = '()
for types in typess
;; Don't keep this type if it's a subtype of one of
;; the other types.
unless (comp--intersection types res)
do (push (car types) res)
finally return (comp--normalize-typeset res))
(comp-cstr-ctxt-union-typesets-mem comp-ctxt))))