MOS-1864: Fix partial pattern application in matcher #35
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.
Cool Story:
Even if the pattern itself is correct, it may be applied incorrectly if it is partially matched in some cases. During pattern application, the matcher collects the actions that need to be executed. If the pattern cannot be fully applied to a subtree, but there's a partial match, the list of actions may still include actions that were found before it became clear that the pattern couldn't be applied. These actions will remain in the list and be executed, leading to an incorrect final tree. This is a bug.
Task:
Fix the matcher to ensure that when a pattern is only partially applicable, no actions are executed that were collected prior to determining that the pattern cannot be fully applied. This will prevent incorrect actions from being included in the final execution.