Fix pseudo ret comparison #910
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.
As described in #574 it leads to an exception during the updating of ids if a pseudo return node is matched with a normal return node during CFG comparison. The initial test case added by @sim642 actually now worked without any changes, probably because the CFG creation was changed meanwhile to use an existing return node and avoid the creation of pseudo-return nodes when possible.
So I created the test case
02-cfg-comparison/02-added-return-after-exitwhere the problem was still observable. To fix it, I adjusted the comparison of nodes to only match two return nodes if either both are pseudo-return nodes or both are not. I removed the cfg comparison option from the test's configuration, because with #841 all incremental tests will be tested with both, ast and cfg comparison.Closes #574