diff --git a/Universal/Sniffs/Arrays/MixedKeyedUnkeyedArraySniff.php b/Universal/Sniffs/Arrays/MixedKeyedUnkeyedArraySniff.php index ee7679d..236bb68 100644 --- a/Universal/Sniffs/Arrays/MixedKeyedUnkeyedArraySniff.php +++ b/Universal/Sniffs/Arrays/MixedKeyedUnkeyedArraySniff.php @@ -112,8 +112,8 @@ public function processKey(File $phpcsFile, $startPtr, $endPtr, $itemNr) public function processNoKey(File $phpcsFile, $startPtr, $itemNr) { $firstNonEmpty = $phpcsFile->findNext(Tokens::$emptyTokens, $startPtr, null, true); - if ($firstNonEmpty === false) { - // Shouldn't be possible. + if ($firstNonEmpty === false || $this->tokens[$firstNonEmpty]['code'] === \T_COMMA) { + // Shouldn't really be possible, but this must be a parse error (empty array item). return; } diff --git a/Universal/Tests/Arrays/MixedKeyedUnkeyedArrayUnitTest.inc b/Universal/Tests/Arrays/MixedKeyedUnkeyedArrayUnitTest.inc index 513d606..e0f2e12 100644 --- a/Universal/Tests/Arrays/MixedKeyedUnkeyedArrayUnitTest.inc +++ b/Universal/Tests/Arrays/MixedKeyedUnkeyedArrayUnitTest.inc @@ -18,3 +18,9 @@ $array = [ 'string' => 'string key', 'value', ]; + +// Test handling of empty array item. +$array = [ + 'value', /*comment*/, + 'another value', +];