public function process(Tokens $tokens, Token $token, $index)
    {
        if ($token->isGivenKind(T_USE) && $this->isUseForLambda($tokens, $index)) {
            $tokens[$index] = new Token([CT::T_USE_LAMBDA, $token->getContent()]);

            return;
        }

        // Only search inside class/trait body for `T_USE` for traits.
        // Cannot import traits inside interfaces or anywhere else

        if (!$token->isGivenKind([T_CLASS, T_TRAIT])) {
            return;
        }

        if ($tokens[$tokens->getPrevMeaningfulToken($index)]->isGivenKind(T_DOUBLE_COLON)) {
            return;
        }

        $index = $tokens->getNextTokenOfKind($index, ['{']);
        $innerLimit = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_CURLY_BRACE, $index);

        while ($index < $innerLimit) {
            $token = $tokens[++$index];

            if (!$token->isGivenKind(T_USE)) {
                continue;
            }

            if ($this->isUseForLambda($tokens, $index)) {
                $tokens[$index] = new Token([CT::T_USE_LAMBDA, $token->getContent()]);
            } else {
                $tokens[$index] = new Token([CT::T_USE_TRAIT, $token->getContent()]);
            }
        }
    }
public function process(Tokens $tokens, Token $token, $index)
    {
        if ($token->isGivenKind(T_USE) && $this->isUseForLambda($tokens, $index)) {
            $tokens[$index] = new Token([CT::T_USE_LAMBDA, $token->getContent()]);

            return;
        }

        
        

        if (!$token->isGivenKind([T_CLASS, T_TRAIT])) {
            return;
        }

        if ($tokens[$tokens->getPrevMeaningfulToken($index)]->isGivenKind(T_DOUBLE_COLON)) {
            return;
        }

        $index = $tokens->getNextTokenOfKind($index, ['{']);
        $innerLimit = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_CURLY_BRACE, $index);

        while ($index < $innerLimit) {
            $token = $tokens[++$index];

            if (!$token->isGivenKind(T_USE)) {
                continue;
            }

            if ($this->isUseForLambda($tokens, $index)) {
                $tokens[$index] = new Token([CT::T_USE_LAMBDA, $token->getContent()]);
            } else {
                $tokens[$index] = new Token([CT::T_USE_TRAIT, $token->getContent()]);
            }
        }
    }
public function process ( Tokens $ tokens , Token $ token , $ index ) { if ( $ token -> isGivenKind ( T_USE ) && $ this -> isUseForLambda ( $ tokens , $ index ) ) { $ tokens [ $ index ] = new Token ( [ CT :: T_USE_LAMBDA , $ token -> getContent ( ) ] ) ; return ; } // Only search inside class/trait body for `T_USE` for traits. // Cannot import traits inside interfaces or anywhere else if ( ! $ token -> isGivenKind ( [ T_CLASS , T_TRAIT ] ) ) { return ; } if ( $ tokens [ $ tokens -> getPrevMeaningfulToken ( $ index ) ] -> isGivenKind ( T_DOUBLE_COLON ) ) { return ; } $ index = $ tokens -> getNextTokenOfKind ( $ index , [ '{' ] ) ; $ innerLimit = $ tokens -> findBlockEnd ( Tokens :: BLOCK_TYPE_CURLY_BRACE , $ index ) ; while ( $ index < $ innerLimit ) { $ token = $ tokens [ ++ $ index ] ; if ( ! $ token -> isGivenKind ( T_USE ) ) { continue ; } if ( $ this -> isUseForLambda ( $ tokens , $ index ) ) { $ tokens [ $ index ] = new Token ( [ CT :: T_USE_LAMBDA , $ token -> getContent ( ) ] ) ; } else { $ tokens [ $ index ] = new Token ( [ CT :: T_USE_TRAIT , $ token -> getContent ( ) ] ) ; } } }
{@inheritdoc}
{