Skip to content

Commit 1100d89

Browse files
committed
2 parents 3ad377e + d24aeba commit 1100d89

File tree

3 files changed

+36
-1
lines changed

3 files changed

+36
-1
lines changed

src/Standards/Squiz/Sniffs/Arrays/ArrayDeclarationSniff.php

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -620,7 +620,16 @@ public function processMultiLineArray($phpcsFile, $stackPtr, $arrayStart, $array
620620

621621
$valuePointer = $value['value'];
622622

623-
$previous = $phpcsFile->findPrevious([T_WHITESPACE, T_COMMA], ($valuePointer - 1), ($arrayStart + 1), true);
623+
$ignoreTokens = ([
624+
T_WHITESPACE => T_WHITESPACE,
625+
T_COMMA => T_COMMA,
626+
] + Tokens::$castTokens);
627+
628+
if ($tokens[$valuePointer]['code'] === T_CLOSURE) {
629+
$ignoreTokens += [T_STATIC => T_STATIC];
630+
}
631+
632+
$previous = $phpcsFile->findPrevious($ignoreTokens, ($valuePointer - 1), ($arrayStart + 1), true);
624633
if ($previous === false) {
625634
$previous = $stackPtr;
626635
}

src/Standards/Squiz/Tests/Arrays/ArrayDeclarationUnitTest.2.inc

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -436,6 +436,19 @@ $c];
436436
['a' => $a, 'b' => $b,
437437
'c' => $c];
438438

439+
[
440+
static function() {
441+
return null;
442+
},
443+
(array) [],
444+
(bool) [],
445+
(double) [],
446+
(int) [],
447+
(object) [],
448+
(string) [],
449+
(unset) [],
450+
];
451+
439452
// Intentional syntax error.
440453
$a = [
441454
'a' =>

src/Standards/Squiz/Tests/Arrays/ArrayDeclarationUnitTest.2.inc.fixed

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -470,6 +470,19 @@ $foo = [
470470
'c' => $c,
471471
];
472472

473+
[
474+
static function() {
475+
return null;
476+
},
477+
(array) [],
478+
(bool) [],
479+
(double) [],
480+
(int) [],
481+
(object) [],
482+
(string) [],
483+
(unset) [],
484+
];
485+
473486
// Intentional syntax error.
474487
$a = [
475488
'a' =>

0 commit comments

Comments
 (0)