PEAR/PSR2/FunctionCallSignature: support anonymous classes #3636
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.
The function call spacing for anonymous class instantiations was so far not checked by these
or any other PHPCS nativesniffs.In my opinion, object instantiations of anonymous classes should be treated the same an object instantiations of non-anonymous classes.
The
PEAR.Functions.FunctionCallSignature
and thePSR2.Methods.FunctionCallSignature
sniffs check the object instantiation spacing for non-anonymous classes, so seem like the logical place to also check the spacing for anonymous class object instantiations.To add this support, the
T_ANON_CLASS
token has been added to theTokens::$functionNameTokens
array.Notes:
class
keyword and the open parenthesis (or rather is unclear about it), I am explicitly excluding anonymous classes from the "space before open parenthesis" check.Related: Unexpected spacing for anonymous classes with constructor arguments #3200
Tokens::$functionNameTokens
array within PHPCS.Generic.WhiteSpace.ArbitraryParenthesesSpacing
sniff is not affected by the change and already contains a test to verify this.Squiz.Operators.ComparisonOperatorUsage
sniff also is not affected by the change. I have added tests to confirm this in a separate commit.The only sniff using the array, which looks to be using it correctly and which may be affected, is the
WebImpressCodingStandard.WhiteSpace.ScopeIndent
sniff. Whether this is positive or negative is up to @michalbundyra to determine.Includes unit tests for both the
PEAR.Functions.FunctionCallSignature
and thePSR2.Methods.FunctionCallSignature
sniffs .