public static function haveIntersections(ConstraintInterface
$a, ConstraintInterface
$b) { if ($a instanceof MatchAllConstraint ||
$b instanceof MatchAllConstraint
) { return true;
} if ($a instanceof MatchNoneConstraint ||
$b instanceof MatchNoneConstraint
) { return false;
} $intersectionIntervals = self::
generateIntervals(new MultiConstraint(array
($a,
$b), true
), true
);
return \
count($intersectionIntervals['numeric'
]) > 0 ||
$intersectionIntervals['branches'
]['exclude'
] || \
count($intersectionIntervals['branches'
]['names'
]) > 0;
} /**
* Attempts to optimize a MultiConstraint
*
* When merging MultiConstraints together they can get very large, this will
* compact it by looking at the real intervals covered by all the constraints
* and then creates a new constraint containing only the smallest amount of rules
* to match the same intervals.
*
* @return ConstraintInterface
*/