rector/rules/DowngradePhp73/Tokenizer/FollowedByCommaAnalyzer.php

31 lines
960 B
PHP
Raw Normal View History

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