Squiz/Functionspacing: fix fixer conflict + a fixer bug #2277
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.
[Fixer conflicts series PR]
Fixer conflict can be reproduced by running the below command against
master
:phpcbf -p -s ./src/Standards/Squiz/Tests/WhiteSpace/FunctionOpeningBraceSpaceUnitTest.inc --standard=Squiz
Introduced by me via #2110, which was included in the
3.3.2
release, and didn't take global functions straight after a PHP open tag into account. Mea Culpa.Basically, when a function is on the first line after a PHP open tag at the start of the file, the whitespace would be added before the open tag, not before the function.
This in turn causes a conflict with the
SuperfluousWhiteSpace
sniff which will try to remove whitespace before the open tag at the start of file.While adding unit tests for this, I also discovered a second, more serious bug, where, when there were too many blank lines between a PHP open tag at the start of a file and the first function, the PHP open tag would be removed altogether, which would cause the file to be regarded as inline HTML.
These situations were not covered by unit tests yet and all need separate files to be tested properly. These tests have now been added to prevent this issue from reoccurring in the future.
Additionally, I've added: