Squiz/NonExecutableCode: fix undefined index during live coding reviews #1706
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.
Came across this error when running fixer conflict checks for the various standards. (See #1645 (comment) )
First fix in a series to fix the issues found.
Error encountered:
Undefined index: scope_closer in phpcs/src/Standards/Squiz/Sniffs/PHP/NonExecutableCodeSniff.php on line 238
Error occurs when an unfinished function or OO structure is encountered.
While looking at the code, I saw three more minor improvements which I have included in this PR:
The sniff is designed to skip over declarations, but only accounted for functions, classes and interfaces.
This has been updated to include closures, traits and anonymous classes.
In this context a 'lone' semi-colon is most often encountered at the end of a closure or anonymous class, so this might as well be skipped over.
I've adjusted the error message to also report on the line where the "exit" command was encountered to make it easier to fix/debug these type of errors.
Includes unit tests.
To reproduce/test: take the updated unit test file and just run the original sniff over it.