Function: comp--cstr-union-homogeneous

comp--cstr-union-homogeneous is a byte-compiled function defined in comp-cstr.el.gz.

Signature

(comp--cstr-union-homogeneous RANGE DST &rest SRCS)

Documentation

Combine SRCS by union set operation setting the result in DST.

Do range propagation when RANGE is non-nil. All SRCS constraints must be homogeneously negated or non-negated. DST is returned.

Source Code

;; Defined in /usr/src/emacs/lisp/emacs-lisp/comp-cstr.el.gz
(defun comp--cstr-union-homogeneous (range dst &rest srcs)
  "Combine SRCS by union set operation setting the result in DST.
Do range propagation when RANGE is non-nil.
All SRCS constraints must be homogeneously negated or non-negated.
DST is returned."
  (apply #'comp--cstr-union-homogeneous-no-range dst srcs)
  ;; Range propagation.
  (setf (comp-cstr-neg dst)
        (when srcs
          (comp-cstr-neg (car srcs)))

        (comp-cstr-range dst)
        (when (cl-notany (lambda (x)
                           (comp-subtype-p 'integer x))
                         (comp-cstr-typeset dst))
          (if range
              (apply #'comp--range-union
                     (mapcar #'comp-cstr-range srcs))
            '((- . +)))))
  dst)