diff --git a/SlevomatCodingStandard/Sniffs/Classes/DisallowMultiPropertyDefinitionSniff.php b/SlevomatCodingStandard/Sniffs/Classes/DisallowMultiPropertyDefinitionSniff.php index 848545442..dcfea19cd 100644 --- a/SlevomatCodingStandard/Sniffs/Classes/DisallowMultiPropertyDefinitionSniff.php +++ b/SlevomatCodingStandard/Sniffs/Classes/DisallowMultiPropertyDefinitionSniff.php @@ -11,6 +11,7 @@ use function count; use function sprintf; use function trim; +use const T_ARRAY; use const T_AS; use const T_COMMA; use const T_FUNCTION; @@ -61,7 +62,7 @@ public function process(File $phpcsFile, $visibilityPointer): void $commaPointers = []; $nextPointer = $propertyPointer; do { - $nextPointer = TokenHelper::findNext($phpcsFile, [T_COMMA, T_OPEN_SHORT_ARRAY], $nextPointer + 1, $semicolonPointer); + $nextPointer = TokenHelper::findNext($phpcsFile, [T_COMMA, T_OPEN_SHORT_ARRAY, T_ARRAY], $nextPointer + 1, $semicolonPointer); if ($nextPointer === null) { break; @@ -72,6 +73,11 @@ public function process(File $phpcsFile, $visibilityPointer): void continue; } + if ($tokens[$nextPointer]['code'] === T_ARRAY) { + $nextPointer = $tokens[$nextPointer]['parenthesis_closer']; + continue; + } + $commaPointers[] = $nextPointer; } while (true); diff --git a/tests/Sniffs/Classes/DisallowMultiPropertyDefinitionSniffTest.php b/tests/Sniffs/Classes/DisallowMultiPropertyDefinitionSniffTest.php index 3a3bc30cb..1b1ef0874 100644 --- a/tests/Sniffs/Classes/DisallowMultiPropertyDefinitionSniffTest.php +++ b/tests/Sniffs/Classes/DisallowMultiPropertyDefinitionSniffTest.php @@ -17,7 +17,7 @@ public function testErrors(): void { $report = self::checkFile(__DIR__ . '/data/disallowMultiPropertyDefinitionErrors.php'); - self::assertSame(6, $report->getErrorCount()); + self::assertSame(7, $report->getErrorCount()); self::assertSniffError($report, 6, DisallowMultiPropertyDefinitionSniff::CODE_DISALLOWED_MULTI_PROPERTY_DEFINITION); self::assertSniffError($report, 8, DisallowMultiPropertyDefinitionSniff::CODE_DISALLOWED_MULTI_PROPERTY_DEFINITION); @@ -25,6 +25,7 @@ public function testErrors(): void self::assertSniffError($report, 13, DisallowMultiPropertyDefinitionSniff::CODE_DISALLOWED_MULTI_PROPERTY_DEFINITION); self::assertSniffError($report, 24, DisallowMultiPropertyDefinitionSniff::CODE_DISALLOWED_MULTI_PROPERTY_DEFINITION); self::assertSniffError($report, 26, DisallowMultiPropertyDefinitionSniff::CODE_DISALLOWED_MULTI_PROPERTY_DEFINITION); + self::assertSniffError($report, 32, DisallowMultiPropertyDefinitionSniff::CODE_DISALLOWED_MULTI_PROPERTY_DEFINITION); self::assertAllFixedInFile($report); } diff --git a/tests/Sniffs/Classes/data/disallowMultiPropertyDefinitionErrors.fixed.php b/tests/Sniffs/Classes/data/disallowMultiPropertyDefinitionErrors.fixed.php index 3afe7f2ed..eb4ca3f88 100644 --- a/tests/Sniffs/Classes/data/disallowMultiPropertyDefinitionErrors.fixed.php +++ b/tests/Sniffs/Classes/data/disallowMultiPropertyDefinitionErrors.fixed.php @@ -33,4 +33,6 @@ class Foo private $b = ['b']; private $c = ['c']; + private $aa = array('a', 'aa'); + private $bb = array('b', 'bb'); } diff --git a/tests/Sniffs/Classes/data/disallowMultiPropertyDefinitionErrors.php b/tests/Sniffs/Classes/data/disallowMultiPropertyDefinitionErrors.php index 14355776a..ccec9c334 100644 --- a/tests/Sniffs/Classes/data/disallowMultiPropertyDefinitionErrors.php +++ b/tests/Sniffs/Classes/data/disallowMultiPropertyDefinitionErrors.php @@ -29,4 +29,5 @@ class Foo $c = ['c'] ; + private $aa = array('a', 'aa'), $bb = array('b', 'bb'); } diff --git a/tests/Sniffs/Classes/data/disallowMultiPropertyDefinitionNoErrors.php b/tests/Sniffs/Classes/data/disallowMultiPropertyDefinitionNoErrors.php index f8013f9b5..f4ea1cfc6 100644 --- a/tests/Sniffs/Classes/data/disallowMultiPropertyDefinitionNoErrors.php +++ b/tests/Sniffs/Classes/data/disallowMultiPropertyDefinitionNoErrors.php @@ -17,6 +17,11 @@ class Foo 'c', ]; + public $oldArray = array( + 'a', + 'b', + ); + public function __construct(private string $propertyPromotion, private int $propertyPromotion2) { }