function EarlyExitSniff::findEarlyExitInScope
3 calls to EarlyExitSniff::findEarlyExitInScope()
- EarlyExitSniff::isEarlyExitInScope in vendor/
slevomat/ coding-standard/ SlevomatCodingStandard/ Sniffs/ ControlStructures/ EarlyExitSniff.php - EarlyExitSniff::processElse in vendor/
slevomat/ coding-standard/ SlevomatCodingStandard/ Sniffs/ ControlStructures/ EarlyExitSniff.php - EarlyExitSniff::processElseIf in vendor/
slevomat/ coding-standard/ SlevomatCodingStandard/ Sniffs/ ControlStructures/ EarlyExitSniff.php
File
-
vendor/
slevomat/ coding-standard/ SlevomatCodingStandard/ Sniffs/ ControlStructures/ EarlyExitSniff.php, line 391
Class
Namespace
SlevomatCodingStandard\Sniffs\ControlStructuresCode
private function findEarlyExitInScope(File $phpcsFile, int $startPointer, int $endPointer) : ?int {
$tokens = $phpcsFile->getTokens();
$ifPointers = TokenHelper::findNextAll($phpcsFile, T_IF, $startPointer + 1, $endPointer);
foreach ($ifPointers as $ifPointer) {
if ($tokens[$ifPointer]['level'] - 1 !== $tokens[$startPointer]['level']) {
continue;
}
$conditionPointers = $this->getAllConditionsPointers($phpcsFile, $ifPointer);
foreach ($conditionPointers as $conditionPointer) {
if ($this->findEarlyExitInScope($phpcsFile, $tokens[$conditionPointer]['scope_opener'], $tokens[$conditionPointer]['scope_closer']) === null) {
return null;
}
}
}
$lastSemicolonInScopePointer = TokenHelper::findPreviousEffective($phpcsFile, $endPointer - 1, $startPointer);
return $tokens[$lastSemicolonInScopePointer]['code'] === T_SEMICOLON ? TokenHelper::findPreviousLocal($phpcsFile, TokenHelper::$earlyExitTokenCodes, $lastSemicolonInScopePointer - 1, $startPointer) : null;
}