Phan\Analysis\AssignmentVisitor::visitDim PHP Method

visitDim() public method

public visitDim ( ast\Node $node ) : Context
$node ast\Node A node to parse
return Phan\Language\Context A new or an unchanged context resulting from parsing the node
    public function visitDim(Node $node) : Context
    {
        // Make the right type a generic (i.e. int -> int[])
        $right_type = $this->right_type->asGenericArrayTypes();
        if ($node->children['expr']->kind == \ast\AST_VAR) {
            $variable_name = (new ContextNode($this->code_base, $this->context, $node))->getVariableName();
            if (Variable::isSuperglobalVariableWithName($variable_name)) {
                return $this->analyzeSuperglobalDim($node, $variable_name);
            }
        }
        // Recurse into whatever we're []'ing
        $context = (new AssignmentVisitor($this->code_base, $this->context, $node, $right_type, true))($node->children['expr']);
        return $context;
    }