Format-preserving pretty-printing with replacing expression nodes doesn't work #1115
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.
Hello,
at Infection, we do a lot of nodes replacements during the Mutation Testing process.
For example (see tests in this PR), we replace
+
with-
.So for the following code:
I would expect the following result:
However, as PHPUnit test failure says, we get:
So basically formatting disappears and we get
Notes: the same code saves formatting when we replace number with another one, not the
+
expression. It is tested here:PHP-Parser/test/code/formatPreservation/basic.test
Lines 1 to 19 in 0da2d66
I'm working on a new update for Infection to produce format-preserved diffs for developers, and among 5000+ mutations found more interesting cases where format isn't preserved, but let's keep it simple with this one for now. If this one is a bug, I can create separate issues for other cases.