From 77885d7f5a302bc4bfee46dc9b61805635d769e0 Mon Sep 17 00:00:00 2001 From: Sergii Ivashchenko Date: Fri, 19 Nov 2021 13:07:59 +0000 Subject: [PATCH] Fixed AutogeneratedClassNotInConstructorSniff for specific code constructions --- .../PHP/AutogeneratedClassNotInConstructorSniff.php | 11 +++++++---- ...togeneratedClassNotInConstructorUnitTest.2.php.inc | 5 +++++ 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/Magento2/Sniffs/PHP/AutogeneratedClassNotInConstructorSniff.php b/Magento2/Sniffs/PHP/AutogeneratedClassNotInConstructorSniff.php index 0b397523..6b074a2e 100644 --- a/Magento2/Sniffs/PHP/AutogeneratedClassNotInConstructorSniff.php +++ b/Magento2/Sniffs/PHP/AutogeneratedClassNotInConstructorSniff.php @@ -47,10 +47,13 @@ public function process(File $phpcsFile, $stackPtr) } if (!isset($tokens[$stackPtr + 4]) || $tokens[$stackPtr + 4]['code'] !== T_SEMICOLON) { - $this->validateRequestedClass( - $phpcsFile, - $phpcsFile->findNext(T_OBJECT_OPERATOR, $stackPtr) - ); + $arrowPosition = $phpcsFile->findNext(T_OBJECT_OPERATOR, $stackPtr); + if ($arrowPosition !== false) { + $this->validateRequestedClass( + $phpcsFile, + $arrowPosition + ); + } return; } diff --git a/Magento2/Tests/PHP/AutogeneratedClassNotInConstructorUnitTest.2.php.inc b/Magento2/Tests/PHP/AutogeneratedClassNotInConstructorUnitTest.2.php.inc index 0e474247..f8e57de8 100644 --- a/Magento2/Tests/PHP/AutogeneratedClassNotInConstructorUnitTest.2.php.inc +++ b/Magento2/Tests/PHP/AutogeneratedClassNotInConstructorUnitTest.2.php.inc @@ -36,5 +36,10 @@ class Bad ObjectManager::getInstance() ->get(\Full\Class\NameFactory::class); } + + private function foo(): void + { + ObjectManager::getInstance() ; + } }