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.
Previously, if certain nodes were omitted due to size constraints in the serialization format, than they would not appear at all and the edge to them would be missing as well.
This was confusing, because then some functions would have the wrong number of arguments.
Now, if an edge points to an e-class where all nodes in that e-class were omitted, a dummy
[...]
node is added to that e-class so that they have something to point to.Previously, we discussed implementing this change by modifying the serialization format to allow pointing to
null
node IDs as children. I went with this approach here, by just creating omitted dummy children, so you can still know the sort of the omitted node and if two nodes point to the same omitted e-class, that will also be visible.Example of omitted node (from
tests/combinators.svg
produced bymake graphs
):