function RequireNonCapturingCatchSniff::isVariableUsedInCodePart
1 call to RequireNonCapturingCatchSniff::isVariableUsedInCodePart()
- RequireNonCapturingCatchSniff::process in vendor/
slevomat/ coding-standard/ SlevomatCodingStandard/ Sniffs/ Exceptions/ RequireNonCapturingCatchSniff.php - * @phpcsSuppress SlevomatCodingStandard.TypeHints.ParameterTypeHint.MissingNativeTypeHint *
File
-
vendor/
slevomat/ coding-standard/ SlevomatCodingStandard/ Sniffs/ Exceptions/ RequireNonCapturingCatchSniff.php, line 130
Class
Namespace
SlevomatCodingStandard\Sniffs\ExceptionsCode
private function isVariableUsedInCodePart(File $phpcsFile, int $codeStartPointer, int $codeEndPointer, string $variableName) : bool {
$tokens = $phpcsFile->getTokens();
$firstPointerInCode = $codeStartPointer + 1;
for ($i = $firstPointerInCode; $i <= $codeEndPointer; $i++) {
if ($tokens[$i]['code'] === T_VARIABLE) {
if ($tokens[$i]['content'] !== $variableName) {
continue;
}
if (ParameterHelper::isParameter($phpcsFile, $i)) {
continue;
}
if (!ScopeHelper::isInSameScope($phpcsFile, $firstPointerInCode, $i)) {
continue;
}
$catchPointer = TokenHelper::findPrevious($phpcsFile, T_CATCH, $i - 1, $firstPointerInCode);
if ($catchPointer === null) {
return true;
}
if ($tokens[$catchPointer]['parenthesis_closer'] < $i) {
return true;
}
}
elseif (in_array($tokens[$i]['code'], [
T_DOUBLE_QUOTED_STRING,
T_HEREDOC,
], true) && VariableHelper::isUsedInScopeInString($phpcsFile, $variableName, $i)) {
return true;
}
}
return false;
}