diff --git a/PHPCSUtils/Utils/Operators.php b/PHPCSUtils/Utils/Operators.php index 041c39d2..42541849 100644 --- a/PHPCSUtils/Utils/Operators.php +++ b/PHPCSUtils/Utils/Operators.php @@ -408,6 +408,7 @@ public static function isUnaryPlusMinus(File $phpcsFile, $stackPtr) || isset(BCTokens::assignmentTokens()[$tokens[$prev]['code']]) === true || isset(Tokens::$castTokens[$tokens[$prev]['code']]) === true || isset(self::$extraUnaryIndicators[$tokens[$prev]['code']]) === true + || $tokens[$prev]['type'] === 'T_FN_ARROW' ) { return true; } diff --git a/Tests/Utils/Operators/IsUnaryPlusMinusTest.inc b/Tests/Utils/Operators/IsUnaryPlusMinusTest.inc index 85926d7e..a12a4dd7 100644 --- a/Tests/Utils/Operators/IsUnaryPlusMinusTest.inc +++ b/Tests/Utils/Operators/IsUnaryPlusMinusTest.inc @@ -138,6 +138,9 @@ switch ($a) { break +1; } +/* testUnaryMinusArrowFunction */ +$fn = static fn(DateTime $a, DateTime $b): int => -($a->getTimestamp() <=> $b->getTimestamp()); + // Testing `$a = -+-+10`; $a = /* testSequenceNonUnary1 */ diff --git a/Tests/Utils/Operators/IsUnaryPlusMinusTest.php b/Tests/Utils/Operators/IsUnaryPlusMinusTest.php index 760fcda7..3bbe204b 100644 --- a/Tests/Utils/Operators/IsUnaryPlusMinusTest.php +++ b/Tests/Utils/Operators/IsUnaryPlusMinusTest.php @@ -268,10 +268,14 @@ public function dataIsUnaryPlusMinus() '/* testUnaryMinusCase */', true, ], - 'unary-minus-break' => [ + 'unary-plus-break' => [ '/* testUnaryPlusBreak */', true, ], + 'unary-minus-arrow-function' => [ + '/* testUnaryMinusArrowFunction */', + true, + ], 'operator-sequence-non-unary-1' => [ '/* testSequenceNonUnary1 */', false,