BetterReflection\Reflection\ReflectionFunctionAbstract::nodeIsOrContainsYield PHP Method

nodeIsOrContainsYield() private method

Recursively search an array of statements (PhpParser nodes) to find if a yield expression exists anywhere (thus indicating this is a generator).
private nodeIsOrContainsYield ( PhpParser\Node $node ) : boolean
$node PhpParser\Node
return boolean
    private function nodeIsOrContainsYield(Node $node)
    {
        if ($node instanceof YieldNode) {
            return true;
        }
        foreach ($node as $nodeProperty) {
            if ($nodeProperty instanceof Node && $this->nodeIsOrContainsYield($nodeProperty)) {
                return true;
            }
            if (is_array($nodeProperty)) {
                foreach ($nodeProperty as $nodePropertyArrayItem) {
                    if ($nodePropertyArrayItem instanceof Node && $this->nodeIsOrContainsYield($nodePropertyArrayItem)) {
                        return true;
                    }
                }
            }
        }
        return false;
    }