From 3a094b732de00a4d922ec6c71cfef9bcc7a421ed Mon Sep 17 00:00:00 2001 From: jrfnl Date: Sat, 1 Aug 2020 01:54:36 +0200 Subject: [PATCH] PHP 8.0 | Squiz/DisallowSizeFunctionsInLoops: allow for nullsafe object operator Includes unit test. --- .../Squiz/Sniffs/PHP/DisallowSizeFunctionsInLoopsSniff.php | 4 +++- .../Squiz/Tests/PHP/DisallowSizeFunctionsInLoopsUnitTest.inc | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/Standards/Squiz/Sniffs/PHP/DisallowSizeFunctionsInLoopsSniff.php b/src/Standards/Squiz/Sniffs/PHP/DisallowSizeFunctionsInLoopsSniff.php index cb1436631a..a0f1161c6a 100644 --- a/src/Standards/Squiz/Sniffs/PHP/DisallowSizeFunctionsInLoopsSniff.php +++ b/src/Standards/Squiz/Sniffs/PHP/DisallowSizeFunctionsInLoopsSniff.php @@ -95,7 +95,9 @@ public function process(File $phpcsFile, $stackPtr) $functionName = 'object.'.$functionName; } else { // Make sure it isn't a member var. - if ($tokens[($i - 1)]['code'] === T_OBJECT_OPERATOR) { + if ($tokens[($i - 1)]['code'] === T_OBJECT_OPERATOR + || $tokens[($i - 1)]['code'] === T_NULLSAFE_OBJECT_OPERATOR + ) { continue; } diff --git a/src/Standards/Squiz/Tests/PHP/DisallowSizeFunctionsInLoopsUnitTest.inc b/src/Standards/Squiz/Tests/PHP/DisallowSizeFunctionsInLoopsUnitTest.inc index 76ec49962c..56802e37aa 100644 --- a/src/Standards/Squiz/Tests/PHP/DisallowSizeFunctionsInLoopsUnitTest.inc +++ b/src/Standards/Squiz/Tests/PHP/DisallowSizeFunctionsInLoopsUnitTest.inc @@ -55,4 +55,4 @@ do { } while($a->count); for ($i = 0; $i < $a->count; $i++) {} -?> +for ($i = 0; $i < $a?->count; $i++) {}