simpleCallableNodeTraverser = $simpleCallableNodeTraverser; } public function enterNode(Node $node) : ?Node { if (!$node instanceof FunctionLike) { return null; } if (!$node->returnsByRef()) { return null; } $stmts = $node->getStmts(); if ($stmts === null) { return null; } $this->simpleCallableNodeTraverser->traverseNodesWithCallable($stmts, static function (Node $node) { if ($node instanceof Class_ || $node instanceof FunctionLike) { return NodeTraverser::DONT_TRAVERSE_CURRENT_AND_CHILDREN; } if (!$node instanceof Return_) { return null; } $node->setAttribute(AttributeKey::IS_BYREF_RETURN, \true); return $node; }); return null; } }