From b9b941e624906e3121447dc074cdedff1c0e86ff Mon Sep 17 00:00:00 2001 From: jrfnl Date: Tue, 18 Feb 2020 01:52:56 +0100 Subject: [PATCH] VariableAnalysisSniff::checkForAssignment(): fix comment tolerance PHP ignores comments in unexpected/unconventional places and so should the sniff. Includes adjusting an existing unit test. Without the fix, the adjusted unit test would cause test failures. --- .../Sniffs/CodeAnalysis/VariableAnalysisSniff.php | 4 ++-- .../CodeAnalysis/fixtures/AssignmentByReferenceFixture.php | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/VariableAnalysis/Sniffs/CodeAnalysis/VariableAnalysisSniff.php b/VariableAnalysis/Sniffs/CodeAnalysis/VariableAnalysisSniff.php index 1a1e7824..b56253d5 100644 --- a/VariableAnalysis/Sniffs/CodeAnalysis/VariableAnalysisSniff.php +++ b/VariableAnalysis/Sniffs/CodeAnalysis/VariableAnalysisSniff.php @@ -763,9 +763,9 @@ protected function checkForAssignment(File $phpcsFile, $stackPtr, $varName, $cur // Are we are reference variable? $tokens = $tokens = $phpcsFile->getTokens(); - $referencePtr = $phpcsFile->findNext(T_WHITESPACE, $assignPtr + 1, null, true, null, true); + $referencePtr = $phpcsFile->findNext(Tokens::$emptyTokens, $assignPtr + 1, null, true, null, true); $varInfo = $this->getOrCreateVariableInfo($varName, $currScope); - if (($referencePtr !== false) && ($tokens[$referencePtr]['code'] === T_BITWISE_AND)) { + if ($referencePtr !== false && $tokens[$referencePtr]['code'] === T_BITWISE_AND) { $varInfo->isReference = true; } elseif ($varInfo->isReference) { // If this is an assigment to a reference variable then that variable is diff --git a/VariableAnalysis/Tests/CodeAnalysis/fixtures/AssignmentByReferenceFixture.php b/VariableAnalysis/Tests/CodeAnalysis/fixtures/AssignmentByReferenceFixture.php index 504e2c7f..0871a3f3 100644 --- a/VariableAnalysis/Tests/CodeAnalysis/fixtures/AssignmentByReferenceFixture.php +++ b/VariableAnalysis/Tests/CodeAnalysis/fixtures/AssignmentByReferenceFixture.php @@ -15,7 +15,7 @@ public function &getProp() { function usedAssignmentByReference() { $a = new A(); - $var = &$a->getProp(); + $var = /*comment*/ &$a->getProp(); $var = ['bar']; return $a; }