/** * @param string $name * * @return SimpleSlot|null */ public function getSlot($name) { if (in_array($name, $this->cache->dirtySymbols, true)) { for ($slot = $this->lastSlot; $slot !== null; $slot = $slot->parent) { if ($slot->getName() === $name) { return $slot; } } } return $this->cache->getSlot($name); }
public static function createJoinOperation() { return new BinaryJoinOp(function (LinkedFlowScope $a, LinkedFlowScope $b) { $a->frozen = true; $b->frozen = true; if ($a->optimize() === $b->optimize()) { return $a->createChildFlowScope(); } return new LinkedFlowScope(FlatFlowScopeCache::createFromLinkedScopes($a, $b)); }); }