diff --git a/src/Standards/Squiz/Sniffs/Arrays/ArrayDeclarationSniff.php b/src/Standards/Squiz/Sniffs/Arrays/ArrayDeclarationSniff.php index 2c59b9f615..17991bd79e 100644 --- a/src/Standards/Squiz/Sniffs/Arrays/ArrayDeclarationSniff.php +++ b/src/Standards/Squiz/Sniffs/Arrays/ArrayDeclarationSniff.php @@ -631,7 +631,9 @@ public function processMultiLineArray($phpcsFile, $stackPtr, $arrayStart, $array ]; $ignoreTokens += Tokens::$castTokens; - if ($tokens[$valuePointer]['code'] === T_CLOSURE) { + if ($tokens[$valuePointer]['code'] === T_CLOSURE + || $tokens[$valuePointer]['code'] === T_FN + ) { $ignoreTokens += [T_STATIC => T_STATIC]; } @@ -667,12 +669,12 @@ public function processMultiLineArray($phpcsFile, $stackPtr, $arrayStart, $array $found, ]; - $fix = $phpcsFile->addFixableError($error, $valuePointer, 'ValueNotAligned', $data); + $fix = $phpcsFile->addFixableError($error, $first, 'ValueNotAligned', $data); if ($fix === true) { if ($found === 0) { - $phpcsFile->fixer->addContent(($valuePointer - 1), str_repeat(' ', $expected)); + $phpcsFile->fixer->addContent(($first - 1), str_repeat(' ', $expected)); } else { - $phpcsFile->fixer->replaceToken(($valuePointer - 1), str_repeat(' ', $expected)); + $phpcsFile->fixer->replaceToken(($first - 1), str_repeat(' ', $expected)); } } } diff --git a/src/Standards/Squiz/Tests/Arrays/ArrayDeclarationUnitTest.1.inc b/src/Standards/Squiz/Tests/Arrays/ArrayDeclarationUnitTest.1.inc index c021b8b305..750aaebcc0 100644 --- a/src/Standards/Squiz/Tests/Arrays/ArrayDeclarationUnitTest.1.inc +++ b/src/Standards/Squiz/Tests/Arrays/ArrayDeclarationUnitTest.1.inc @@ -467,6 +467,14 @@ array( , ); +yield array( + static fn () : string => '', +); + +yield array( + static fn () : string => '', + ); + // Intentional syntax error. $a = array( 'a' => diff --git a/src/Standards/Squiz/Tests/Arrays/ArrayDeclarationUnitTest.1.inc.fixed b/src/Standards/Squiz/Tests/Arrays/ArrayDeclarationUnitTest.1.inc.fixed index 5a2a4e3717..3ecc091da8 100644 --- a/src/Standards/Squiz/Tests/Arrays/ArrayDeclarationUnitTest.1.inc.fixed +++ b/src/Standards/Squiz/Tests/Arrays/ArrayDeclarationUnitTest.1.inc.fixed @@ -503,6 +503,14 @@ array( , ); +yield array( + static fn () : string => '', + ); + +yield array( + static fn () : string => '', + ); + // Intentional syntax error. $a = array( 'a' => diff --git a/src/Standards/Squiz/Tests/Arrays/ArrayDeclarationUnitTest.2.inc b/src/Standards/Squiz/Tests/Arrays/ArrayDeclarationUnitTest.2.inc index f45fba2edf..621970fa1d 100644 --- a/src/Standards/Squiz/Tests/Arrays/ArrayDeclarationUnitTest.2.inc +++ b/src/Standards/Squiz/Tests/Arrays/ArrayDeclarationUnitTest.2.inc @@ -456,6 +456,14 @@ $c]; , ]; +yield [ + static fn () : string => '', +]; + +yield [ + static fn () : string => '', + ]; + // Intentional syntax error. $a = [ 'a' => diff --git a/src/Standards/Squiz/Tests/Arrays/ArrayDeclarationUnitTest.2.inc.fixed b/src/Standards/Squiz/Tests/Arrays/ArrayDeclarationUnitTest.2.inc.fixed index 3a2aaf96e1..efe4c450e9 100644 --- a/src/Standards/Squiz/Tests/Arrays/ArrayDeclarationUnitTest.2.inc.fixed +++ b/src/Standards/Squiz/Tests/Arrays/ArrayDeclarationUnitTest.2.inc.fixed @@ -490,6 +490,14 @@ $foo = [ , ]; +yield [ + static fn () : string => '', + ]; + +yield [ + static fn () : string => '', + ]; + // Intentional syntax error. $a = [ 'a' => diff --git a/src/Standards/Squiz/Tests/Arrays/ArrayDeclarationUnitTest.php b/src/Standards/Squiz/Tests/Arrays/ArrayDeclarationUnitTest.php index e91d86732a..15ce0746ef 100644 --- a/src/Standards/Squiz/Tests/Arrays/ArrayDeclarationUnitTest.php +++ b/src/Standards/Squiz/Tests/Arrays/ArrayDeclarationUnitTest.php @@ -122,6 +122,8 @@ public function getErrorList($testFile='') 447 => 2, 448 => 3, 467 => 1, + 471 => 1, + 472 => 1, ]; case 'ArrayDeclarationUnitTest.2.inc': return [ @@ -206,6 +208,8 @@ public function getErrorList($testFile='') 436 => 2, 437 => 3, 456 => 1, + 460 => 1, + 461 => 1, ]; default: return [];