PHPStan\Analyser\NodeScopeResolver::lookForEnterVariableAssign PHP Method

lookForEnterVariableAssign() private method

private lookForEnterVariableAssign ( Scope $scope, PhpParser\Node $node ) : Scope
$scope Scope
$node PhpParser\Node
return Scope
    private function lookForEnterVariableAssign(Scope $scope, Node $node) : Scope
    {
        if ($node instanceof Variable && is_string($node->name)) {
            $scope = $scope->enterVariableAssign($node->name);
        } elseif ($node instanceof ArrayDimFetch) {
            while ($node instanceof ArrayDimFetch) {
                $node = $node->var;
            }
            if ($node instanceof Variable && is_string($node->name)) {
                $scope = $scope->enterVariableAssign($node->name);
            }
        } elseif ($node instanceof List_ || $node instanceof Array_) {
            $listItems = isset($node->items) ? $node->items : $node->vars;
            foreach ($listItems as $listItem) {
                if ($listItem === null) {
                    continue;
                }
                $listItemValue = $listItem;
                if ($listItemValue instanceof Expr\ArrayItem) {
                    $listItemValue = $listItemValue->value;
                }
                $scope = $this->lookForEnterVariableAssign($scope, $listItemValue);
            }
        }
        return $scope;
    }