You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The `Squiz.WhiteSpace.MemberVarSpacing` sniff checks the number of blank lines before a property declaration.
To determine the number of blank lines before a property, it tries to find the start of the statement by:
* First finding the first modifier keyword before the variable (to skip over a potential type declaration);
* And then walking over the other modifiers until it finds the first one for the statement;
* After that, it checks for potential docblocks and attributes and skips over those.
Only after all that it checks the number of blank lines.
The first step however leads to problems when, during live coding, a property would be declared without a modifier keyword.
In that case, the sniff could walk back much further than it should, potentially misidentifying a modifier keyword for a function for the modifier keyword for the property.
While this is an edge-case as it is not customary for properties to be declared _after_ functions, the sniff should still handle this situation correctly.
Fixed by changing the logic of the sniff to stop searching earlier.
Includes new test case files, both of which demonstrate the bug.
Additionally, the test in the `1` file safeguards that the current behaviour of the sniff for multi-property declarations is not aversely affected by the fix.
0 commit comments