PHPStan\Rules\Arrays\AppendedArrayItemTypeRule::processNode PHP Method

processNode() public method

public processNode ( PhpParser\Node $node, Scope $scope ) : array
$node PhpParser\Node
$scope PHPStan\Analyser\Scope
return array
    public function processNode(\PhpParser\Node $node, Scope $scope) : array
    {
        if (!$node->var instanceof ArrayDimFetch) {
            return [];
        }
        $assignedToType = $scope->getType($node->var->var);
        if (!$assignedToType instanceof ArrayType) {
            return [];
        }
        if ($assignedToType->isItemTypeInferredFromLiteralArray()) {
            return [];
        }
        $assignedValueType = $scope->getType($node->expr);
        if (!$assignedToType->getItemType()->accepts($assignedValueType)) {
            return [sprintf('Array (%s) does not accept %s.', $assignedToType->describe(), $assignedValueType->describe())];
        }
        return [];
    }
AppendedArrayItemTypeRule