public static function getClientVarsFromTypehint()

in src/Fixers/ClientUpgradeFixer/ClientVar.php [190:219]


    public static function getClientVarsFromTypehint(Tokens $tokens, array $clientShortNames): array
    {
        $clientVars = [];
        foreach ($tokens as $index => $token) {
            // get variables which are set directly
            if (!in_array($token->getContent(), $clientShortNames)) {
                continue;
            }

            $varToken = $tokens[$tokens->getNextMeaningfulToken($index)];
            if (!$varToken->isGivenKind(T_VARIABLE)) {
                continue;
            }

            $prevToken = $tokens[$tokens->getPrevMeaningfulToken($index)];
            $varName = $varToken->getContent();
            $parent = null;
            if (in_array($prevToken->getContent(), ['protected', 'private', 'public'])) {
                $parent = '$this';
                $varName = substr($varName, 1);
            } elseif ($prevToken->getContent() === 'static') {
                $parent = 'self';
            }
            if ($clientClass = array_search($token->getContent(), $clientShortNames)) {
                $clientVars[] = new ClientVar($varName, $clientClass, $parent);
            }
        }

        return $clientVars;
    }