_ownerGrammar = \WeakReference::create($ownerGrammar); } // Used when adopting to change the $ownerGrammar property. public function withOwnerGrammar(Grammar $ownerGrammar): self { $new = clone $this; $new->_ownerGrammar = \WeakReference::create($ownerGrammar); return $new; } }