public static function getClientVarsFromVarTypehint()

in src/Fixers/ClientUpgradeFixer/ClientVar.php [157:188]


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

            if (false === strpos($token->getContent(), '@var')) {
                continue;
            }

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

            $regex = sprintf('/@var (.*) \\%s/', $varToken->getContent());
            if (!preg_match($regex, $token->getContent(), $matches)) {
                continue;
            }

            $shortName = $matches[1];
            $varName = $varToken->getContent();
            if ($clientClass = array_search($shortName, $clientShortNames)) {
                $clientVars[$varName] = new ClientVar($varName, $clientClass);
            }
        }

        return $clientVars;
    }