Check liveness of bits when computing slice iterator #1707
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #1673 .
Most of this PR is just refactoring: moving
SliceIterator
and related functions into its own source file (and making it no longer a member of theCircuit
class); and combining two versions ofCircuit::next_cut()
with different signatures into one. It was this last refactor that uncovered the source of the bug. In only one of these versions was a certain liveness check being done.So the whole fix is actually in 98862a3 -- the rest is pure refactoring.