for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace Xiag\Rql\Parser\NodeParser;
use Xiag\Rql\Parser\Token;
use Xiag\Rql\Parser\TokenStream;
use Xiag\Rql\Parser\NodeParserInterface;
use Xiag\Rql\Parser\Node\LimitNode;
use Xiag\Rql\Parser\SubParserInterface;
class LimitNodeParser implements NodeParserInterface
{
/**
* @var SubParserInterface
*/
protected $valueParser;
* @param SubParserInterface $valueParser
public function __construct(SubParserInterface $valueParser)
$this->valueParser = $valueParser;
}
* @inheritdoc
public function parse(TokenStream $tokenStream)
$limit = null;
$limit
This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.
$myVar = 'Value'; $higher = false; if (rand(1, 6) > 3) { $higher = true; } else { $higher = false; }
Both the $myVar assignment in line 1 and the $higher assignment in line 2 are dead. The first because $myVar is never used and the second because $higher is always overwritten for every possible time line.
$myVar
$higher
$offset = null;
$tokenStream->expect(Token::T_OPERATOR, 'limit');
$tokenStream->expect(Token::T_OPEN_PARENTHESIS);
$limit = $this->valueParser->parse($tokenStream);
if ($tokenStream->nextIf(Token::T_COMMA)) {
$offset = $this->valueParser->parse($tokenStream);
$tokenStream->expect(Token::T_CLOSE_PARENTHESIS);
return new LimitNode($limit, $offset);
public function supports(TokenStream $tokenStream)
return $tokenStream->test(Token::T_OPERATOR, 'limit');
This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.
Both the
$myVarassignment in line 1 and the$higherassignment in line 2 are dead. The first because$myVaris never used and the second because$higheris always overwritten for every possible time line.