Skip to content

Commit f4ac147

Browse files
committed
Replace areAnyConditionsAClass manual loop with Conditions::hasCondition()
Delegates condition checking to PHPCSUtils which provides the same logic with an added isset($tokens[$ptr]) guard.
1 parent 5adc435 commit f4ac147

2 files changed

Lines changed: 7 additions & 11 deletions

File tree

‎VariableAnalysis/Lib/Helpers.php‎

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
use VariableAnalysis\Lib\ScopeType;
1111
use VariableAnalysis\Lib\VariableInfo;
1212
use PHP_CodeSniffer\Util\Tokens;
13+
use PHPCSUtils\Utils\Conditions;
1314
use PHPCSUtils\Utils\Context;
1415
use PHPCSUtils\Utils\Lists;
1516
use PHPCSUtils\Utils\Parentheses;
@@ -101,24 +102,19 @@ public static function findContainingOpeningBracket(File $phpcsFile, $stackPtr)
101102
}
102103

103104
/**
104-
* @param array{conditions: (int|string)[], content: string} $token
105+
* @param File $phpcsFile
106+
* @param int $stackPtr
105107
*
106108
* @return bool
107109
*/
108-
public static function areAnyConditionsAClass(array $token)
110+
public static function areAnyConditionsAClass(File $phpcsFile, $stackPtr)
109111
{
110-
$conditions = $token['conditions'];
111112
$classlikeCodes = [T_CLASS, T_ANON_CLASS, T_TRAIT];
112113
if (defined('T_ENUM')) {
113114
$classlikeCodes[] = T_ENUM;
114115
}
115116
$classlikeCodes[] = 'PHPCS_T_ENUM';
116-
foreach (array_reverse($conditions, true) as $scopeCode) {
117-
if (in_array($scopeCode, $classlikeCodes, true)) {
118-
return true;
119-
}
120-
}
121-
return false;
117+
return Conditions::hasCondition($phpcsFile, $stackPtr, $classlikeCodes);
122118
}
123119

124120
/**

‎VariableAnalysis/Sniffs/CodeAnalysis/VariableAnalysisSniff.php‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -892,7 +892,7 @@ protected function processVariableAsClassProperty(File $phpcsFile, $stackPtr)
892892
/** @var array{conditions?: (int|string)[], content?: string}|null */
893893
$token = $tokens[$stackPtr];
894894
if ($token && !empty($token['conditions']) && !empty($token['content']) && !Helpers::areConditionsWithinFunctionBeforeClass($token)) {
895-
return Helpers::areAnyConditionsAClass($token);
895+
return Helpers::areAnyConditionsAClass($phpcsFile, $stackPtr);
896896
}
897897
return false;
898898
}
@@ -1105,7 +1105,7 @@ protected function processVariableAsStaticOutsideClass(File $phpcsFile, $stackPt
11051105
}
11061106
$errorClass = $code === T_SELF ? 'SelfOutsideClass' : 'StaticOutsideClass';
11071107
$staticRefType = $code === T_SELF ? 'self::' : 'static::';
1108-
if (!empty($token['conditions']) && !empty($token['content']) && Helpers::areAnyConditionsAClass($token)) {
1108+
if ($token && !empty($token['content']) && Helpers::areAnyConditionsAClass($phpcsFile, $stackPtr)) {
11091109
return false;
11101110
}
11111111
$phpcsFile->addError(

0 commit comments

Comments
 (0)