src/Fixer/LanguageConstruct/CombineConsecutiveIssetsFixer.php
protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $tokenCount = $tokens->count();

        for ($index = 1; $index < $tokenCount; ++$index) {
            if (!$tokens[$index]->isGivenKind(T_ISSET) || $tokens[$tokens->getPrevMeaningfulToken($index)]->equals('!')) {
                continue;
            }

            $issetInfo = $this->getIssetInfo($tokens, $index);
            $issetCloseBraceIndex = end($issetInfo); // ')' token
            $insertLocation = prev($issetInfo) + 1; // one index after the previous meaningful of ')'

            $booleanAndTokenIndex = $tokens->getNextMeaningfulToken($issetCloseBraceIndex);

            while ($tokens[$booleanAndTokenIndex]->isGivenKind(T_BOOLEAN_AND)) {
                $issetIndex = $tokens->getNextMeaningfulToken($booleanAndTokenIndex);
                if (!$tokens[$issetIndex]->isGivenKind(T_ISSET)) {
                    $index = $issetIndex;

                    break;
                }

                // fetch info about the 'isset' statement that we're merging
                $nextIssetInfo = $this->getIssetInfo($tokens, $issetIndex);

                // clone what we want to move, do not clone '(' and ')' of the 'isset' statement we're merging
                $clones = $this->getTokenClones($tokens, \array_slice($nextIssetInfo, 1, -1));

                // clean up no the tokens of the 'isset' statement we're merging
                $this->clearTokens($tokens, array_merge($nextIssetInfo, [$issetIndex, $booleanAndTokenIndex]));

                // insert the tokens to create the new statement
                array_unshift($clones, new Token(','), new Token([T_WHITESPACE, ' ']));
                $tokens->insertAt($insertLocation, $clones);

                // correct some counts and offset based on # of tokens inserted
                $numberOfTokensInserted = \count($clones);
                $tokenCount += $numberOfTokensInserted;
                $issetCloseBraceIndex += $numberOfTokensInserted;
                $insertLocation += $numberOfTokensInserted;

                $booleanAndTokenIndex = $tokens->getNextMeaningfulToken($issetCloseBraceIndex);
            }
        }
    }
protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        $tokenCount = $tokens->count();

        for ($index = 1; $index < $tokenCount; ++$index) {
            if (!$tokens[$index]->isGivenKind(T_ISSET) || $tokens[$tokens->getPrevMeaningfulToken($index)]->equals('!')) {
                continue;
            }

            $issetInfo = $this->getIssetInfo($tokens, $index);
            $issetCloseBraceIndex = end($issetInfo); // ')' token
            $insertLocation = prev($issetInfo) + 1; // one index after the previous meaningful of ')'

            $booleanAndTokenIndex = $tokens->getNextMeaningfulToken($issetCloseBraceIndex);

            while ($tokens[$booleanAndTokenIndex]->isGivenKind(T_BOOLEAN_AND)) {
                $issetIndex = $tokens->getNextMeaningfulToken($booleanAndTokenIndex);
                if (!$tokens[$issetIndex]->isGivenKind(T_ISSET)) {
                    $index = $issetIndex;

                    break;
                }

                // fetch info about the 'isset' statement that we're merging
                $nextIssetInfo = $this->getIssetInfo($tokens, $issetIndex);

                // clone what we want to move, do not clone '(' and ')' of the 'isset' statement we're merging
                $clones = $this->getTokenClones($tokens, \array_slice($nextIssetInfo, 1, -1));

                // clean up no the tokens of the 'isset' statement we're merging
                $this->clearTokens($tokens, array_merge($nextIssetInfo, [$issetIndex, $booleanAndTokenIndex]));

                // insert the tokens to create the new statement
                array_unshift($clones, new Token(','), new Token([T_WHITESPACE, ' ']));
                $tokens->insertAt($insertLocation, $clones);

                // correct some counts and offset based on # of tokens inserted
                $numberOfTokensInserted = \count($clones);
                $tokenCount += $numberOfTokensInserted;
                $issetCloseBraceIndex += $numberOfTokensInserted;
                $insertLocation += $numberOfTokensInserted;

                $booleanAndTokenIndex = $tokens->getNextMeaningfulToken($issetCloseBraceIndex);
            }
        }
    }
protected function applyFix ( \ SplFileInfo $ file , Tokens $ tokens ) { $ tokenCount = $ tokens -> count ( ) ; for ( $ index = 1 ; $ index < $ tokenCount ; ++ $ index ) { if ( ! $ tokens [ $ index ] -> isGivenKind ( T_ISSET ) || $ tokens [ $ tokens -> getPrevMeaningfulToken ( $ index ) ] -> equals ( '!' ) ) { continue ; } $ issetInfo = $ this -> getIssetInfo ( $ tokens , $ index ) ; $ issetCloseBraceIndex = end ( $ issetInfo ) ; // ')' token $ insertLocation = prev ( $ issetInfo ) + 1 ; // one index after the previous meaningful of ')' $ booleanAndTokenIndex = $ tokens -> getNextMeaningfulToken ( $ issetCloseBraceIndex ) ; while ( $ tokens [ $ booleanAndTokenIndex ] -> isGivenKind ( T_BOOLEAN_AND ) ) { $ issetIndex = $ tokens -> getNextMeaningfulToken ( $ booleanAndTokenIndex ) ; if ( ! $ tokens [ $ issetIndex ] -> isGivenKind ( T_ISSET ) ) { $ index = $ issetIndex ; break ; } // fetch info about the 'isset' statement that we're merging $ nextIssetInfo = $ this -> getIssetInfo ( $ tokens , $ issetIndex ) ; // clone what we want to move, do not clone '(' and ')' of the 'isset' statement we're merging $ clones = $ this -> getTokenClones ( $ tokens , \ array_slice ( $ nextIssetInfo , 1 , - 1 ) ) ; // clean up no the tokens of the 'isset' statement we're merging $ this -> clearTokens ( $ tokens , array_merge ( $ nextIssetInfo , [ $ issetIndex , $ booleanAndTokenIndex ] ) ) ; // insert the tokens to create the new statement array_unshift ( $ clones , new Token ( ',' ) , new Token ( [ T_WHITESPACE , ' ' ] ) ) ; $ tokens -> insertAt ( $ insertLocation , $ clones ) ; // correct some counts and offset based on # of tokens inserted $ numberOfTokensInserted = \ count ( $ clones ) ; $ tokenCount += $ numberOfTokensInserted ; $ issetCloseBraceIndex += $ numberOfTokensInserted ; $ insertLocation += $ numberOfTokensInserted ; $ booleanAndTokenIndex = $ tokens -> getNextMeaningfulToken ( $ issetCloseBraceIndex ) ; } } }
{@inheritdoc}
{