Describe the new feature:
There is an additional assumption that is made beyond the assumption that all minimal sets are of size one. That assumption is actually checked currently by an assertion at the end of the bisect run. However, if that assertion passes, we could still have a situation where there are minimal sets that are bigger than one, but that overlap with some of the found elements.
Suggested change:
To check to see if this is the case, we would need the following assertion after we have the set of found elements:
assert test(found) == test(items)
This builds on the assumption that errors never exactly cancel each other out. This would need to be done after finding the set of files, after finding the set of functions within a file, and once more after finding all functions. If these assertions pass, then there still can be minimal sets of size bigger than one, but they would need to be contained within the set of found elements, in which case we wouldn't care none.
Feature Request
Describe the new feature: There is an additional assumption that is made beyond the assumption that all minimal sets are of size one. That assumption is actually checked currently by an assertion at the end of the bisect run. However, if that assertion passes, we could still have a situation where there are minimal sets that are bigger than one, but that overlap with some of the found elements.
Suggested change: To check to see if this is the case, we would need the following assertion after we have the set of found elements:
This builds on the assumption that errors never exactly cancel each other out. This would need to be done after finding the set of files, after finding the set of functions within a file, and once more after finding all functions. If these assertions pass, then there still can be minimal sets of size bigger than one, but they would need to be contained within the set of found elements, in which case we wouldn't care none.