rector/rules/DowngradePhp73/Tokenizer/FollowedByCommaAnalyzer.php
Tomas Votruba 46cf4c1774 Updated Rector to commit 0888a92985f8018f486798af0f33928f221e7f0f
0888a92985 [CodeQuality] Skip class with constructor parameter for ClassConstFetch on CallableThisArraToAnonymousFunctionRector (#581)
2021-08-03 10:22:54 +00:00

31 lines
960 B
PHP

<?php
declare (strict_types=1);
namespace Rector\DowngradePhp73\Tokenizer;
use RectorPrefix20210803\Nette\Utils\Strings;
use PhpParser\Node;
use Rector\Core\ValueObject\Application\File;
final class FollowedByCommaAnalyzer
{
public function isFollowed(\Rector\Core\ValueObject\Application\File $file, \PhpParser\Node $node) : bool
{
$oldTokens = $file->getOldTokens();
$nextTokenPosition = $node->getEndTokenPos() + 1;
while (isset($oldTokens[$nextTokenPosition])) {
$currentToken = $oldTokens[$nextTokenPosition];
// only space
if (\is_array($currentToken) || \RectorPrefix20210803\Nette\Utils\Strings::match($currentToken, '#\\s+#')) {
++$nextTokenPosition;
continue;
}
// without comma
if ($currentToken === ')') {
return \false;
}
break;
}
return \true;
}
}