src/Composer/DependencyResolver/RuleWatchGraph.php
public function insert(RuleWatchNode $node)
    {
        if ($node->getRule()->isAssertion()) {
            return;
        }

        foreach (array($node->watch1, $node->watch2) as $literal) {
            if (!isset($this->watchChains[$literal])) {
                $this->watchChains[$literal] = new RuleWatchChain;
            }

            $this->watchChains[$literal]->unshift($node);
        }
    }
public function insert(RuleWatchNode $node)
    {
        if ($node->getRule()->isAssertion()) {
            return;
        }

        foreach (array($node->watch1, $node->watch2) as $literal) {
            if (!isset($this->watchChains[$literal])) {
                $this->watchChains[$literal] = new RuleWatchChain;
            }

            $this->watchChains[$literal]->unshift($node);
        }
    }
Inserts a rule node into the appropriate chains within the graph

The node is prepended to the watch chains for each of the two literals it
watches.

Assertions are skipped because they only depend on a single package and
have no alternative literal that could be true, so there is no need to
watch changes in any literals.

@param RuleWatchNode $node The rule node to be inserted into the graph